I'm learning a bit here but still no luck, here is what I learned.
1) HID can only have 3 Endpoints but has a default (0) that can do in and out.
2) my controller payload to the OS should be on Endpoint 1 in
3) pretty sure all ForceFeedback stuff form the PID needs to be on its own Endpoint (i.e. 2) out but it does work on the default endpoint. I think that is unwise...
I set my device up to match this.
#define JOYSTICK_EPADDR_IN (ENDPOINT_DIR_IN | EPNUM1)
#define JOYSTICK_EPADDR_OUT (ENDPOINT_DIR_OUT | EPNUM2)
Endpoint_ConfigureEndpoint(JOYSTICK_EPADDR_IN, EP_TYPE_INTERRUPT, JOYSTICK_EPSIZE, 1);
Endpoint_ConfigureEndpoint(JOYSTICK_EPADDR_OUT, EP_TYPE_INTERRUPT, JOYSTICK_EPSIZE, 1);
and the FFB works, the paddata works, and control transfers will get but not set. I think I need to configure my default out because its not sending data. If I remove the Endpoint 2, then the sets start to work but now the FFB does not. So how do you do this? I tried something like this with no luck.
Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP | ENDPOINT_DIR_OUT, EP_TYPE_CONTROL, 64, 1);