tmk / tmk_keyboard

Keyboard firmwares for Atmel AVR and Cortex-M
3.98k stars 1.7k forks source link

usb-usb converter:Filco majestouch convertible 2:no output, HID report descriptor updated. #645

Open LeonardoYang opened 4 years ago

LeonardoYang commented 4 years ago

well, after i installed USBlyzer, i found that Majestouch Convertible 2 have two HID report descriptors: Updated below, see if this helps:

Interface 0 HID Report Descriptor Keyboard Item Tag (Value) Raw Data
Usage Page (Generic Desktop) 05 01
Usage (Keyboard) 09 06
Collection (Application) A1 01
Usage Page (Keyboard/Keypad) 05 07
Usage Minimum (Keyboard Left Control) 19 E0
Usage Maximum (Keyboard Right GUI) 29 E7
Logical Minimum (0) 15 00
Logical Maximum (1) 25 01
Report Size (1) 75 01
Report Count (8) 95 08
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
Report Count (1) 95 01
Report Size (8) 75 08
Input (Cnst,Ary,Abs) 81 01
Report Count (5) 95 05
Report Size (1) 75 01
Usage Page (LEDs) 05 08
Usage Minimum (Num Lock) 19 01
Usage Maximum (Kana) 29 05
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
Report Count (1) 95 01
Report Size (3) 75 03
Output (Cnst,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 01
Report Count (6) 95 06
Report Size (8) 75 08
Logical Minimum (0) 15 00
Logical Maximum (255) 26 FF 00
Usage Page (Keyboard/Keypad) 05 07
Usage Minimum (Undefined) 19 00
Usage Maximum 2A FF 00
Input (Data,Ary,Abs) 81 00
End Collection C0
Interface 1 HID Report Descriptor Consumer Control Item Tag (Value) Raw Data
Usage Page (Consumer Devices) 05 0C
Usage (Consumer Control) 09 01
Collection (Application) A1 01
Report ID (1) 85 01
Usage Minimum (Undefined) 19 00
Usage Maximum (AC Format) 2A 3C 02
Logical Minimum (0) 15 00
Logical Maximum (572) 26 3C 02
Report Count (1) 95 01
Report Size (16) 75 10
Input (Data,Ary,Abs) 81 00
End Collection C0
Usage Page (Generic Desktop) 05 01
Usage (System Control) 09 80
Collection (Application) A1 01
Report ID (2) 85 02
Usage Minimum (System Power Down) 19 81
Usage Maximum (System Wake Up) 29 83
Logical Minimum (0) 15 00
Logical Maximum (1) 25 01
Report Size (1) 75 01
Report Count (3) 95 03
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
Report Count (5) 95 05
Input (Cnst,Ary,Abs) 81 01
End Collection C0
And usb device descriptor is: Device Descriptor Convertible 2 TKL Offset Field Size Value Description
0 bLength 1 12h  
1 bDescriptorType 1 01h Device
2 bcdUSB 2 0200h USB Spec 2.0
4 bDeviceClass 1 00h Class info in Ifc Descriptors
5 bDeviceSubClass 1 00h  
6 bDeviceProtocol 1 00h  
7 bMaxPacketSize0 1 08h 8 bytes
8 idVendor 2 04B4h Cypress Semiconductor Corp.
10 idProduct 2 120Eh  
12 bcdDevice 2 0000h 0.00
14 iManufacturer 1 00h  
15 iProduct 1 01h "Convertible 2 TKL"
16 iSerialNumber 1 00h  
17 bNumConfigurations 1 01h  
Configuration Descriptor 1 Bus Powered, 100 mA Offset Field Size Value Description
0 bLength 1 09h  
1 bDescriptorType 1 02h Configuration
2 wTotalLength 2 003Bh  
4 bNumInterfaces 1 02h  
5 bConfigurationValue 1 01h  
6 iConfiguration 1 00h  
7 bmAttributes 1 A0h Bus Powered, Remote Wakeup
  4..0: Reserved   ...00000  
  5: Remote Wakeup   ..1..... Yes
  6: Self Powered   .0...... No, Bus Powered
  7: Reserved (set to one)(bus-powered for 1.0)   1.......  
8 bMaxPower 1 32h 100 mA
Interface Descriptor 0/0 HID, 1 Endpoint Offset Field Size Value Description
0 bLength 1 09h  
1 bDescriptorType 1 04h Interface
2 bInterfaceNumber 1 00h  
3 bAlternateSetting 1 00h  
4 bNumEndpoints 1 01h  
5 bInterfaceClass 1 03h HID
6 bInterfaceSubClass 1 01h Boot Interface
7 bInterfaceProtocol 1 01h Keyboard
8 iInterface 1 00h
HID Descriptor Offset Field Size Value Description
0 bLength 1 09h  
1 bDescriptorType 1 21h HID
2 bcdHID 2 0111h 1.11
4 bCountryCode 1 21h US
5 bNumDescriptors 1 01h  
6 bDescriptorType 1 22h Report
7 wDescriptorLength 2 0041h 65 bytes
Endpoint Descriptor 81 1 In, Interrupt, 1 ms Offset Field Size Value Description
0 bLength 1 07h  
1 bDescriptorType 1 05h Endpoint
2 bEndpointAddress 1 81h 1 In
3 bmAttributes 1 03h Interrupt
  1..0: Transfer Type   ......11 Interrupt
  7..2: Reserved   000000..  
4 wMaxPacketSize 2 0008h 8 bytes
6 bInterval 1 01h 1 ms
Interface Descriptor 1/0 HID, 1 Endpoint Offset Field Size Value Description
0 bLength 1 09h  
1 bDescriptorType 1 04h Interface
2 bInterfaceNumber 1 01h  
3 bAlternateSetting 1 00h  
4 bNumEndpoints 1 01h  
5 bInterfaceClass 1 03h HID
6 bInterfaceSubClass 1 00h  
7 bInterfaceProtocol 1 00h  
8 iInterface 1 00h  
HID Descriptor Offset Field Size Value Description
0 bLength 1 09h  
1 bDescriptorType 1 21h HID
2 bcdHID 2 0111h 1.11
4 bCountryCode 1 00h  
5 bNumDescriptors 1 01h  
6 bDescriptorType 1 22h Report
7 wDescriptorLength 2 0034h 52 bytes
Endpoint Descriptor 82 2 In, Interrupt, 1 ms Offset Field Size Value Description
0 bLength 1 07h  
1 bDescriptorType 1 05h Endpoint
2 bEndpointAddress 1 82h 2 In
3 bmAttributes 1 03h Interrupt
  1..0: Transfer Type   ......11 Interrupt
  7..2: Reserved   000000..  
4 wMaxPacketSize 2 0008h 8 bytes
6 bInterval 1 01h 1 ms

hope this could helps.... Great thanks for your reply

LeonardoYang commented 4 years ago

updated the latest info with HID report descriptors.

tmk commented 4 years ago

How did you build the firmware or where did you get it from? And what is your converter hardware?

Try default firmware downloaded from Keymap Editor if not yet. http://www.tmk-kbd.com/tmk_keyboard/editor/unimap/?usb_usb

And refer this to see HID report descriptor. https://github.com/tmk/tmk_keyboard/wiki/USB:-HID-Report-Descriptor

LeonardoYang commented 4 years ago

I am using the firmware directly from keymap editor with default settings,should be the latest verison, I am working on the HID descriptor with report format,will update later once i figure that out. and i will switch another keyboard to see if it works with default FW. Thanks for your reply.

tmk commented 4 years ago

Then, you have to download it again to update the latest one. Your firmware is not the latest one.

The latest firmware should display: TMK:b813d62a+/LUFA

I believe I never built TMK:45e45691/LUFA you are using.

LeonardoYang commented 4 years ago

last night,I went to GEEKHACK downloaded this usb-usb debug.hex(which version info is 45e45691/LUFA) to see if i could solve it by myself. I know the latest fw is b813d62a+/LUFA.,but they all have the same phenomenon.I will submit report descriptor to see if helps. Great thanks~~

LeonardoYang commented 4 years ago

updated with latest HID descriptor exported from USBlyzer, hope this could helps and add support for Filco majestouch convertible 2. Great thanks for your reply.

tmk commented 4 years ago

Thanks for the update. I don't find any clue in its descriptors.

What does hid_listen shows with the latest firmware instead of the debug.hex?

LeonardoYang commented 4 years ago

I update the latest FW, and the USB hid listen shows info. below: TMK:b813d62a+/LUFA

usb_state:12

USB configured

Keyboard start. usb_state:20 usb_state:40 usb_state:50 usb_state:51 hsot.Task:2332 usb_state:90 speed:full usb_state:12

i press button on keyboard, and it shows nothing in USB hid listen and also in text which measns there is nothing output.

And after disassmbling my another keyboard with hid boot portocal device desctiptor, i confirm that my hardware works fine.(i have to cut the usb cable off for soldering the converter to make it work).

Great thanks