0
votes

I'm trying to send isochronous transfers to the microcontroller on an Arduino Due using the Libusb 1.0 library and the libusk driver installed using zadig_2.2.

Bulk transfers work perfectly, but when I'm trying to initiate an isochronous transfer I get the error code "error not supported". The way I understand it, libusb should support isochronous transfers for Windows now.

I'm using Visual Studio 2015.

Any ideas?

1

1 Answers

1
votes

It can be two problems from the Arduino side. You should configure:

  1. Endpoint configuration.
  2. USB descriptor configuration (endpoint should be configured like an Isochronous Transfer Type)

For example:

          ===>Endpoint Descriptor<===    // <-------- This is the one I'm using.
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x01  -> Isochronous Transfer Type, Synchronization Type = No Synchronization, Usage Type = Data Endpoint
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 max bytes
bInterval:                         0x01

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x01  -> Isochronous Transfer Type, Synchronization Type = No Synchronization, Usage Type = Data Endpoint
wMaxPacketSize:                  0x0040 = 1 transactions per microframe, 0x40 max bytes
bInterval:                         0x01