The device driver I am writing is for a USB Servo
Controller card. This uses the HID interface.
Originally, the device will appear as VID "Vendor ID"
0x0C6A, and PID "Product ID" 0x0004. This is it's
bootloader mode. It then needs to have a fairly large
Intel HEX firmware download set of messages sent (2
large parts), and various messages to cause chip resets
and the like. After that, the controller card reboots
and it then appears as VID 0x0C6A, and PID 0x0003.
This is it's Servo Controller mode. Then it is supposed
to respond to USB HID class messages to set the servo
positions. Is there anyone with experience in the two
stage USB interface models? I have several questions:
Should the INTEL HEX firmware that needs to be
downloaded be sent automatically from the driver, or
would it be more common/appropriate to have the
application do a connection to the bootloader PID and
initiate the transfer?
I have a code reference example for a MAC system, but
the API interfaces are slightly different. Is there
someone that can look at some code I have written and
see if it looks like I am doing the arguments to
usb_control_msg() correctly, and what if anything
unusual do I need to do for the HID functionality?