08-10-2021, 01:10 PM
Since the last thread dealing with that problem was maerked as "solved" (which it wasn't) I open a new one.
Jesse said, that not all keyboards work, and that should not be the case, since there are standards for USB HID devices and if the HID descriptor says "Type: keyboard" it should work.
I encountered the same problem and as with the NDLR, it seems to be another USB descriptor issue. Maybe the library used is the problem, but it needs to be adressed and solved.
I tried that with my mini USB ASCII keyboard and that didnt work, also my old Mac Extended II Keyboard with iMate ADB to USB adaptor. Both keyboards work on the Akai Force and on the Roland Fantom (where it is not officially stated to do so).
So I tried my cheap asian 9key keybed and that worked. So I did another USB readout, and it seems that the library only accepts keyboards with the Microsoft OS Descriptor.
Here are both readouts, with the essential parts marked in red.
9 key keybed, works:
Information for device ps2avrGB (VID=0x20A0 PID=0x422D):
------------------------------
Connection Information:
------------------------------
Device current bus speed: LowSpeed
Device address: 0x0001
Current configuration value: 0x00
Number of open pipes: 0
------------------------------
Device Descriptor:
------------------------------
0x12 bLength
0x01 bDescriptorType
0x0110 bcdUSB
0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x08 bMaxPacketSize0 (8 bytes)
0x20A0 idVendor
0x422D idProduct
0x0105 bcdDevice
0x01 iManufacturer "winkeyless.kr"
0x02 iProduct "ps2avrGB"
0x00 iSerialNumber
0x01 bNumConfigurations
-------------------------
Configuration Descriptor:
-------------------------
0x09 bLength
0x02 bDescriptorType
0x003B wTotalLength (59 bytes)
0x02 bNumInterfaces
0x01 bConfigurationValue
0x00 iConfiguration
0xA0 bmAttributes (Bus-powered Device, Remote-Wakeup)
0xFA bMaxPower (500 mA)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x00 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x01 bInterfaceSubClass
0x01 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0101 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x0040 bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x81 bEndpointAddress (IN endpoint 1)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x01 bInterval (1 frames)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x01 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x00 bInterfaceSubClass
0x00 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0101 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x0051 bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x83 bEndpointAddress (IN endpoint 3)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x01 bInterval (1 frames)
Microsoft OS Descriptor:
------------------------------
0x00 bLength
0x00 bDescriptorType
Hex dump:
--------------------------------
String Descriptor Table
--------------------------------
Index LANGID String
0x00 0x0000 0x0409
0x01 0x0409 "winkeyless.kr"
0x02 0x0409 "ps2avrGB"
------------------------------
Connection path for device:
Intel® ICH9-Familie USB universeller Hostcontroller - 2934
Root Hub
ps2avrGB (VID=0x20A0 PID=0x422D) Port: 2
Running on: Windows 7 with Service Pack 1
Brought to you by TDD v2.17.0, Feb 23 2021, 14:04:02
-----------------------------------------------------------------------------------
USB Mini Keyboard (aka MS-Tech or others), does not work
Information for device USB\Vendor_1241_Product_1203:
------------------------------
Connection Information:
------------------------------
Device current bus speed: LowSpeed
Device address: 0x0001
Current configuration value: 0x00
Number of open pipes: 0
------------------------------
Device Descriptor:
------------------------------
0x12 bLength
0x01 bDescriptorType
0x0200 bcdUSB
0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x08 bMaxPacketSize0 (8 bytes)
0x1241 idVendor
0x1203 idProduct
0x0230 bcdDevice
0x00 iManufacturer
0x00 iProduct
0x00 iSerialNumber
0x01 bNumConfigurations
-------------------------
Configuration Descriptor:
-------------------------
0x09 bLength
0x02 bDescriptorType
0x003B wTotalLength (59 bytes)
0x02 bNumInterfaces
0x01 bConfigurationValue
0x00 iConfiguration
0xA0 bmAttributes (Bus-powered Device, Remote-Wakeup)
0x32 bMaxPower (100 mA)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x00 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x01 bInterfaceSubClass
0x01 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0111 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x003E bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x81 bEndpointAddress (IN endpoint 1)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x0A bInterval (10 frames)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x01 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x00 bInterfaceSubClass
0x00 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0111 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x0065 bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x82 bEndpointAddress (IN endpoint 2)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x0A bInterval (10 frames)
Microsoft OS Descriptor is not available. Error code: 0x0000001F
--------------------------------
String Descriptor Table
--------------------------------
Index LANGID String
0x00 0x0000 0x0409
------------------------------
Connection path for device:
Intel® ICH9-Familie USB universeller Hostcontroller - 2934
Root Hub
USB\Vendor_1241_Product_1203 Port: 1
Running on: Windows 7 with Service Pack 1
Brought to you by TDD v2.17.0, Feb 23 2021, 14:04:02
-----------------------------------------------------------------------------------
If others like to contribute Descriptor-Dumps, so that this issue can be resolved, here is the link to that tool (Windows only, dont know any Mac equivalent yet):
https://www.thesycon.de/eng/usb_descriptordumper.shtml
Jesse said, that not all keyboards work, and that should not be the case, since there are standards for USB HID devices and if the HID descriptor says "Type: keyboard" it should work.
I encountered the same problem and as with the NDLR, it seems to be another USB descriptor issue. Maybe the library used is the problem, but it needs to be adressed and solved.
I tried that with my mini USB ASCII keyboard and that didnt work, also my old Mac Extended II Keyboard with iMate ADB to USB adaptor. Both keyboards work on the Akai Force and on the Roland Fantom (where it is not officially stated to do so).
So I tried my cheap asian 9key keybed and that worked. So I did another USB readout, and it seems that the library only accepts keyboards with the Microsoft OS Descriptor.
Here are both readouts, with the essential parts marked in red.
9 key keybed, works:
Information for device ps2avrGB (VID=0x20A0 PID=0x422D):
------------------------------
Connection Information:
------------------------------
Device current bus speed: LowSpeed
Device address: 0x0001
Current configuration value: 0x00
Number of open pipes: 0
------------------------------
Device Descriptor:
------------------------------
0x12 bLength
0x01 bDescriptorType
0x0110 bcdUSB
0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x08 bMaxPacketSize0 (8 bytes)
0x20A0 idVendor
0x422D idProduct
0x0105 bcdDevice
0x01 iManufacturer "winkeyless.kr"
0x02 iProduct "ps2avrGB"
0x00 iSerialNumber
0x01 bNumConfigurations
-------------------------
Configuration Descriptor:
-------------------------
0x09 bLength
0x02 bDescriptorType
0x003B wTotalLength (59 bytes)
0x02 bNumInterfaces
0x01 bConfigurationValue
0x00 iConfiguration
0xA0 bmAttributes (Bus-powered Device, Remote-Wakeup)
0xFA bMaxPower (500 mA)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x00 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x01 bInterfaceSubClass
0x01 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0101 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x0040 bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x81 bEndpointAddress (IN endpoint 1)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x01 bInterval (1 frames)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x01 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x00 bInterfaceSubClass
0x00 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0101 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x0051 bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x83 bEndpointAddress (IN endpoint 3)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x01 bInterval (1 frames)
Microsoft OS Descriptor:
------------------------------
0x00 bLength
0x00 bDescriptorType
Hex dump:
--------------------------------
String Descriptor Table
--------------------------------
Index LANGID String
0x00 0x0000 0x0409
0x01 0x0409 "winkeyless.kr"
0x02 0x0409 "ps2avrGB"
------------------------------
Connection path for device:
Intel® ICH9-Familie USB universeller Hostcontroller - 2934
Root Hub
ps2avrGB (VID=0x20A0 PID=0x422D) Port: 2
Running on: Windows 7 with Service Pack 1
Brought to you by TDD v2.17.0, Feb 23 2021, 14:04:02
-----------------------------------------------------------------------------------
USB Mini Keyboard (aka MS-Tech or others), does not work
Information for device USB\Vendor_1241_Product_1203:
------------------------------
Connection Information:
------------------------------
Device current bus speed: LowSpeed
Device address: 0x0001
Current configuration value: 0x00
Number of open pipes: 0
------------------------------
Device Descriptor:
------------------------------
0x12 bLength
0x01 bDescriptorType
0x0200 bcdUSB
0x00 bDeviceClass
0x00 bDeviceSubClass
0x00 bDeviceProtocol
0x08 bMaxPacketSize0 (8 bytes)
0x1241 idVendor
0x1203 idProduct
0x0230 bcdDevice
0x00 iManufacturer
0x00 iProduct
0x00 iSerialNumber
0x01 bNumConfigurations
-------------------------
Configuration Descriptor:
-------------------------
0x09 bLength
0x02 bDescriptorType
0x003B wTotalLength (59 bytes)
0x02 bNumInterfaces
0x01 bConfigurationValue
0x00 iConfiguration
0xA0 bmAttributes (Bus-powered Device, Remote-Wakeup)
0x32 bMaxPower (100 mA)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x00 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x01 bInterfaceSubClass
0x01 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0111 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x003E bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x81 bEndpointAddress (IN endpoint 1)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x0A bInterval (10 frames)
Interface Descriptor:
------------------------------
0x09 bLength
0x04 bDescriptorType
0x01 bInterfaceNumber
0x00 bAlternateSetting
0x01 bNumEndPoints
0x03 bInterfaceClass (Human Interface Device Class)
0x00 bInterfaceSubClass
0x00 bInterfaceProtocol
0x00 iInterface
HID Descriptor:
------------------------------
0x09 bLength
0x21 bDescriptorType
0x0111 bcdHID
0x00 bCountryCode
0x01 bNumDescriptors
0x22 bDescriptorType (Report descriptor)
0x0065 bDescriptorLength
Endpoint Descriptor:
------------------------------
0x07 bLength
0x05 bDescriptorType
0x82 bEndpointAddress (IN endpoint 2)
0x03 bmAttributes (Transfer: Interrupt / Synch: None / Usage: Data)
0x0008 wMaxPacketSize (1 x 8 bytes)
0x0A bInterval (10 frames)
Microsoft OS Descriptor is not available. Error code: 0x0000001F
--------------------------------
String Descriptor Table
--------------------------------
Index LANGID String
0x00 0x0000 0x0409
------------------------------
Connection path for device:
Intel® ICH9-Familie USB universeller Hostcontroller - 2934
Root Hub
USB\Vendor_1241_Product_1203 Port: 1
Running on: Windows 7 with Service Pack 1
Brought to you by TDD v2.17.0, Feb 23 2021, 14:04:02
-----------------------------------------------------------------------------------
If others like to contribute Descriptor-Dumps, so that this issue can be resolved, here is the link to that tool (Windows only, dont know any Mac equivalent yet):
https://www.thesycon.de/eng/usb_descriptordumper.shtml
---
bye,
Dietmar
bye,
Dietmar