I set up my pipes long ago. I really do not understand this anymore but know a lot more about sending and reading data. So I know I need:
to poll interrupt data from the device
Allow control transfers feature set/get 's
Allow FFB ( it uses control outs/ins )
So why do I need the second pipe? It looks like all my data uses the 0 pipe.
7, /* sizeof(usbDescrEndpoint) */
USBDESCR_ENDPOINT, /* descriptor type = endpoint */
0x81, // bulk IN endpoint number 1
0x03, // attrib: Interrupt endpoint :1async 2:bulk 3:int 0:control
8, 0, /* maximum packet size */
0x08, /* in ms*/
//the output. ( i'd like to know what this really is? like for FFB outs, if so why ints?
7, // sizeof(usbDescrEndpoint)
USBDESCR_ENDPOINT, // descriptor type = endpoint
0x02, // out endpoint
0x03, // attrib: Interrupt endpoint :1async 2:bulk 3:int 0:control
8, 0, // maximum packet size
0x08, // in ms