Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ASCII aka QWERTY Keyboard issues
#1
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
---
bye, 
       Dietmar
Reply


Forum Jump:


Users browsing this thread:
3 Guest(s)