Re: USB Joystick driver
Posted: Sun Apr 15, 2018 11:49 am
@Jon: It was the disk protection, yes. Mounted the disk and everything's fine now with the installed game. Sorry.
The Archimedes Software Preservation Project
https://forums.jaspp.org.uk/forum/
Excellent work Richard. I was testing Drop Ship earlier in the week wondering how on earth to add support for Voltmace which requires three buttons and Joystick translation to the mouse. By adding multiple buttons, the first issue is covered so we just need to figure out how the Voltmace X/Y axis affect the mouse position.
I'll need to modify ADFFS to pass though 16bit as it currently does the translation from 8bit.richw wrote: ↑Wed Sep 12, 2018 9:05 pm I have started adding support for the 16-bit Acorn SWIs, and the XBOX 360 controller (well, at least the cheap Chinese clone that I have!). I could do with more feedback on this. I am not sure if I have the axis set up in the correct directions for the Acorn APIs (8 and 16 bit) when it comes to analogue inputs.
Can anyone with an analogue (non-HAT) device please explain what happens to your axis readings when you move the sticks in the different directions? And if you run the AcornTest program in the Utils directory, what sort of values do you see in reported?
Code: Select all
*USBJoystick_Map 0 0 3 4 0 1 2 3 4 5 6 7
Good idea
Quite, which is part of the reason why I want to write a configuration utility. It could easily prompt the user to move to Joystick to the four corners and work out the directions.
Windows seems to auto-map HID devices, so there must be something in the descriptors to indicate both the axis and direction.
None of the buttons work. I'll post up the descriptors later today.richw wrote: ↑Fri Sep 14, 2018 4:46 pm When you say the 'buttons don't work', is that the HAT switch? Or all the buttons? If the axis are being corrupted, then that would suggest that my baked-in report descriptor is incorrect (although it is fine for my 'clone'). Maybe I need multiple descriptors? Can you run USBDescriptors on yours at some point, so I can see what it looks like compared to mine?
If you want scary, look at what's involved to support the keypad you can plug into the controller. I tried coding a driver many years ago and had to give up. Proprietary interfaces suck big time. HID is there for a reason!
Get one off eBay along with the official wireless dongle.
Code: Select all
=============================================
Device USB5
=============================================
: 0 : 2 : total size of ServiceCall block : 373
: 2 : 2 : offset to descriptor list : 0x20
: 4 : 20 : name : USB5
: 24 : 1 : bus number : 1
: 25 : 1 : device address : 5
: 26 : 1 : host address : 2
: 27 : 1 : host port : 5
: 28 : 1 : speed : 2 full speed
---------------------------------------------
Standard Device Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 12 : 18 :
: 1 : 1 : bDescriptorType : 1 : 1 :
: 2 : 2 : bcdUSB : 200 : 512 :
: 4 : 1 : bDeviceClass : ff : 255 : Vendor Specific
: 5 : 1 : bDeviceSubClass : ff : 255 :
: 6 : 1 : bDeviceProtocol : ff : 255 :
: 7 : 1 : bMaxPacketSize : 8 : 8 :
: 8 : 2 : idVendor : 45e : 1118 :
: 10 : 2 : idProduct : 719 : 1817 :
: 12 : 2 : bcdDevice : 100 : 256 :
: 14 : 1 : iManufacturer : 1 : 1 : 'Microsoft'
: 15 : 1 : iProduct : 2 : 2 : 'Xbox 360 Wireless Receiver for Windows'
: 16 : 1 : iSerialNumber : 3 : 3 : 'FD8EAC00'
: 17 : 1 : bNumConfigurations : 1 : 1 :
+----+----+---------------------------+----------+------------+
Standard Configuration Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 2 : 2 :
: 2 : 2 : wTotalLength : 141 : 321 :
: 4 : 1 : bNumInterfaces : 8 : 8 :
: 5 : 1 : bConfigurationValue : 1 : 1 :
: 6 : 1 : iConfiguration : 0 : 0 : ''
: 7 : 1 : bmAttributes : a0 : 160 : (bit7) USB 1.0 bus powered (bit6) Bus powered, (bit5) Remote wakeup
: 8 : 1 : bMaxPower : 82 : 130 : 260mA
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 0 : 0 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 81 : 129 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 20
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x13 (19)
Byte 5: 0x81 (129)
Byte 6: 0x1d (29)
Byte 7: 0x00 (0)
Byte 8: 0x17 (23)
Byte 9: 0x01 (1)
Byte 10: 0x02 (2)
Byte 11: 0x08 (8)
Byte 12: 0x13 (19)
Byte 13: 0x01 (1)
Byte 14: 0x0c (12)
Byte 15: 0x00 (0)
Byte 16: 0x0c (12)
Byte 17: 0x01 (1)
Byte 18: 0x02 (2)
Byte 19: 0x08 (8)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 81 : 129 : Endpoint 1 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 1 : 1 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 1 : 1 : Endpoint 1 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 8 : 8 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 1 : 1 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 82 : 130 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 12
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x01 (1)
Byte 5: 0x82 (130)
Byte 6: 0x00 (0)
Byte 7: 0x40 (64)
Byte 8: 0x01 (1)
Byte 9: 0x02 (2)
Byte 10: 0x20 (32)
Byte 11: 0x00 (0)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 82 : 130 : Endpoint 2 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 2 : 2 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 2 : 2 : Endpoint 2 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 4 : 4 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 2 : 2 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 81 : 129 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 20
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x13 (19)
Byte 5: 0x83 (131)
Byte 6: 0x1d (29)
Byte 7: 0x00 (0)
Byte 8: 0x17 (23)
Byte 9: 0x01 (1)
Byte 10: 0x02 (2)
Byte 11: 0x08 (8)
Byte 12: 0x13 (19)
Byte 13: 0x03 (3)
Byte 14: 0x0c (12)
Byte 15: 0x00 (0)
Byte 16: 0x0c (12)
Byte 17: 0x01 (1)
Byte 18: 0x02 (2)
Byte 19: 0x08 (8)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 83 : 131 : Endpoint 3 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 1 : 1 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 3 : 3 : Endpoint 3 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 8 : 8 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 3 : 3 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 82 : 130 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 12
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x01 (1)
Byte 5: 0x84 (132)
Byte 6: 0x00 (0)
Byte 7: 0x40 (64)
Byte 8: 0x01 (1)
Byte 9: 0x04 (4)
Byte 10: 0x20 (32)
Byte 11: 0x00 (0)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 84 : 132 : Endpoint 4 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 2 : 2 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 4 : 4 : Endpoint 4 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 4 : 4 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 4 : 4 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 81 : 129 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 20
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x13 (19)
Byte 5: 0x85 (133)
Byte 6: 0x1d (29)
Byte 7: 0x00 (0)
Byte 8: 0x17 (23)
Byte 9: 0x01 (1)
Byte 10: 0x02 (2)
Byte 11: 0x08 (8)
Byte 12: 0x13 (19)
Byte 13: 0x05 (5)
Byte 14: 0x0c (12)
Byte 15: 0x00 (0)
Byte 16: 0x0c (12)
Byte 17: 0x01 (1)
Byte 18: 0x02 (2)
Byte 19: 0x08 (8)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 85 : 133 : Endpoint 5 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 1 : 1 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 5 : 5 : Endpoint 5 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 8 : 8 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 5 : 5 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 82 : 130 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 12
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x01 (1)
Byte 5: 0x86 (134)
Byte 6: 0x00 (0)
Byte 7: 0x40 (64)
Byte 8: 0x01 (1)
Byte 9: 0x06 (6)
Byte 10: 0x20 (32)
Byte 11: 0x00 (0)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 86 : 134 : Endpoint 6 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 2 : 2 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 6 : 6 : Endpoint 6 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 4 : 4 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 6 : 6 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 81 : 129 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 20
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x13 (19)
Byte 5: 0x87 (135)
Byte 6: 0x1d (29)
Byte 7: 0x00 (0)
Byte 8: 0x17 (23)
Byte 9: 0x01 (1)
Byte 10: 0x02 (2)
Byte 11: 0x08 (8)
Byte 12: 0x13 (19)
Byte 13: 0x07 (7)
Byte 14: 0x0c (12)
Byte 15: 0x00 (0)
Byte 16: 0x0c (12)
Byte 17: 0x01 (1)
Byte 18: 0x02 (2)
Byte 19: 0x08 (8)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 87 : 135 : Endpoint 7 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 1 : 1 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 7 : 7 : Endpoint 7 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 8 : 8 :
+----+----+---------------------------+----------+------------+
Standard Interface Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 9 : 9 :
: 1 : 1 : bDescriptorType : 4 : 4 :
: 2 : 1 : bInterfaceNumber : 7 : 7 :
: 3 : 1 : bAlternateSetting : 0 : 0 :
: 4 : 1 : bNumEndpoints : 2 : 2 :
: 5 : 1 : bInterfaceClass : ff : 255 : Vendor Specific
: 6 : 1 : bInterfaceSubClass : 5d : 93 :
: 7 : 1 : bInterfaceProtocol : 82 : 130 :
: 8 : 1 : iInterface : 0 : 0 : ''
+----+----+---------------------------+----------+------------+
*** Unknown Descriptor ***
bLength: 12
bDescriptorType: 0x22 (34)
Byte 2: 0x00 (0)
Byte 3: 0x01 (1)
Byte 4: 0x01 (1)
Byte 5: 0x88 (136)
Byte 6: 0x00 (0)
Byte 7: 0x40 (64)
Byte 8: 0x01 (1)
Byte 9: 0x08 (8)
Byte 10: 0x20 (32)
Byte 11: 0x00 (0)
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 88 : 136 : Endpoint 8 - IN
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 2 : 2 :
+----+----+---------------------------+----------+------------+
Standard Endpoint Descriptor
+----+----+---------------------------+----------+------------+
:Off :Sz :Name :Value hex :Value dec :
+----+----+---------------------------+----------+------------+
: 0 : 1 : bLength : 7 : 7 :
: 1 : 1 : bDescriptorType : 5 : 5 :
: 2 : 1 : bEndpointAddress : 8 : 8 : Endpoint 8 - OUT
: 3 : 1 : bmAttributes : 3 : 3 : Interrupt
: 4 : 2 : wMaxPacketSize : 20 : 32 : 1 x 32 byte max packets
: 6 : 1 : bInterval : 4 : 4 :
+----+----+---------------------------+----------+------------+