I'm new with USB.
I want to implement a pointing device on a PIC microcontroller. USB will be used for communications between the pointing device and the host.
I would like to do the following:
Send deltas to the host's HID class driver, so the device can function as a simple mouse immediately after plug-in.
Send other data to the host using the CDC class for it to be post-processed by an application running on user space.
My main questions are:
What is the best way to implement this? Should I define 2 distinct interfaces?
What descriptors should I define?
I'm thinking of the following:
Device descriptor
Config descriptor
Interface 0 descriptor
Functional descriptors
EP descriptor
Interface 1 descriptor (CDC)
EP descriptors
Interface 2 descriptor (HID)
EP descriptors
How should I define the "functional descriptors" that go after Interface 0 descriptor? Should I define interfaces 1 and 2 as slaves of interface 0?

lsusbon a Linux computer to list its descriptors in detail. - David Grayson