Hello,
I have a requirement such that Endpoint In and Endpoint Out have the following addresses:
IN - 0x81
OUT - 0x01
However, if I use the EndpointResolver like below:
EndpointResolver resolver(endpoint_table());
resolver.endpoint_ctrl(64);
this->_intIn = resolver.endpoint_in(USB_EP_TYPE_INT, MAX_HID_REPORT_SIZE);
this->_intOut = resolver.endpoint_out(USB_EP_TYPE_INT, MAX_HID_REPORT_SIZE);
MBED_ASSERT(resolver.valid());
I get the following addresses: 0x81 and 0x02.
When I use the endpoint resolver I can communicate with the board from python (hid package) and works as expected. But if I hardcode the intIn and intOut addresses to my requirement then I can no longer communicate with the board from python. Python can write to the board but it doesn’t receive any data (reading timesout).
Could you explain how things work with the endpoint addresses? Why can’t I set my own addresses like 0x01 instead of what the resolver provides 0x02?
I need it to work with 0x81 and 0x01 (the board should interface with an old GUI software that has those addresses hardcoded in it). Do you have any workarounds to make it work?
Thanks!