geekhack Projects > Making Stuff Together!

TMK USB to USB keyboard converter

<< < (174/184) > >>

Ko$tello:
Hi Hasu,

I recently got a converter from you and it works fine with my quite old "A4Tech KV-300H" keyboard. So, please add it to the list of compatible keyboards.

I also tried to make it work with Rapoo 9300M. This is a wireless keyboard and it doesn't work, so I followed your troubleshooting steps:

Debug Output:

--- Code: ---Waiting for device:
Listening:
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
Ci read:0012
left:0000
vid:24AE
pid:2013
klass:00
subklass:00
AC1
AC2
A2 driver:00
BM Init
Ci read:0008
left:0000
Addr:01
Ci read:0012
left:0000
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Ci read:0009
left:0000
Cl:0054
Ci [xE1][xE++]read:0040
left:0014
[xE1]read:0014
left:0000
bNumEP:02
Cnf:01
bIfaceNum:01
bNumIface:00

Interface:01
SET_PROTOCOL: 00
SET_IDLE: 00
Ci read:0040
left:0040
read:001E
left:0022
RPIPE: 00
BM configured
Init:00
AttemptConfig2:00
Configuring:00
host.Task: 2325
usb_state: 90
speed: full
Co

--- End code ---

USB Descriptor Data:

--- Code: ---Waiting for device:
Listening:
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
usb_state: 90

//////////////////////////////////////////////////////////////////////
// USB_desc_dump
// Address: 01
// Lowspeed: 00

// Devicer dump:
12 01 00 02 00 00 00 40 AE 24 13 20 10 01 01 02
00 01

// Device:
bLength:                12
bDescriptorType:        01
bcdUSB:                 0200
bDeviceClass:           00
bDeviceSubClass:        00
bDeviceProtocol:        00
bMaxPacketSize0:        40
idVendor:               24AE
idProduct:              2013
bcdDevice:              0110
iManufacturer:          01
iProduct:               02
iSerialNumber:          00
bNumConfigurations:     01

// String Zero: len: 04
// 04 03 09 04
// LangId: 0409

// iManufacturer: String1(0409): len: 0C
// 0C 03 52 00 41 00 50 00 4F 00 4F 00
// RAPOO

// iProduct: String2(0409): len: 36
// 36 03 52 00 61 00 70 00 6F 00 6F 00 20 00 32 00
// 2E 00 34 00 47 00 20 00 57 00 69 00 72 00 65 00
// 6C 00 65 00 73 00 73 00 20 00 44 00 65 00 76 00
// 69 00 63 00 65 00
// Rapoo 2.4G Wireless Device

// Config0 dump:        len: 0054
09 02 54 00 03 01 00 A0 32 09 04 00 00 01 03 01
02 00 09 21 10 01 00 01 22 40 00 07 05 81 03 40
00 0A 09 04 01 00 01 03 01 01 00 09 21 10 01 00
01 22 5E 00 07 05 82 03 40 00 0A 09 04 02 00 01
03 01 01 00 09 21 10 01 00 01 22 40 00 07 05 83
03 40 00 0A

// Config:
bLength:                09
bDescriptorType:        02
wTotalLength:           0054
bNumInterfaces:         03
bConfigurationValue:    01
iConfiguration:         00
bmAttributes:           A0
bMaxPower:              32

// Interface0.0:
bLength:                09
bDescriptorType:        04
bInterfaceNumber:       00
bAlternateSetting:      00
bNumEndpoints:          01
bInterfaceClass:        03
bInterfaceSubClass:     01
bInterfaceProtocol:     02
iInterface:             00

// HID:
bLength:                09
bDescriptorType:        21
bcdHID:                 0110
bCountryCode:           00
bNumDescriptors:        01
bDescrType:             22
wDescriptorLength:      0040

// Report0 dump:        len: 0040
05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 05
15 00 25 01 95 05 75 01 81 02 95 01 75 03 81 03
05 01 09 30 09 31 16 01 80 26 FF 7F 75 10 95 02
81 06 09 38 15 81 25 7F 75 08 95 01 81 06 C0 C0

// Endpoint:
bLength:                07
bDescriptorType:        05
bEndpointAddress:       81
bmAttributes:           03
wMaxPacketSize:         0040
bInterval:              0A

// Interface1.0:
bLength:                09
bDescriptorType:        04
bInterfaceNumber:       01
bAlternateSetting:      00
bNumEndpoints:          01
bInterfaceClass:        03
bInterfaceSubClass:     01
bInterfaceProtocol:     01
iInterface:             00

// HID:
bLength:                09
bDescriptorType:        21
bcdHID:                 0110
bCountryCode:           00
bNumDescriptors:        01
bDescrType:             22
wDescriptorLength:      005E

// Report0 dump:        len: 005E
06 00 FF 09 0E A1 01 85 BA 95 1F 75 08 26 FF 00
15 00 09 01 91 02 85 BA 95 1F 75 08 26 FF 00 15
00 09 01 81 02 C0 05 01 09 80 A1 01 85 02 05 01
19 81 29 83 15 00 25 01 95 03 75 01 81 06 95 01
75 05 81 01 C0 05 0C 09 01 A1 01 85 03 15 00 26
80 03 19 00 2A 80 03 75 10 95 01 81 00 C0

// Endpoint:
bLength:                07
bDescriptorType:        05
bEndpointAddress:       82
bmAttributes:           03
wMaxPacketSize:         0040
bInterval:              0A

// Interface2.0:
bLength:                09
bDescriptorType:        04
bInterfaceNumber:       02
bAlternateSetting:      00
bNumEndpoints:          01
bInterfaceClass:        03
bInterfaceSubClass:     01
bInterfaceProtocol:     01
iInterface:             00

// HID:
bLength:                09
bDescriptorType:        21
bcdHID:                 0110
bCountryCode:           00
bNumDescriptors:        01
bDescrType:             22
wDescriptorLength:      0040

// Report0 dump:        len: 0040
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
75 01 95 08 81 02 95 01 75 08 81 03 95 05 75 01
05 08 19 01 29 05 91 02 95 01 75 03 91 03 95 06
75 08 15 00 26 FF 00 05 07 19 00 29 FF 81 00 C0

// Endpoint:
bLength:                07
bDescriptorType:        05
bEndpointAddress:       83
bmAttributes:           03
wMaxPacketSize:         0040
bInterval:              0A

// Parse data here: http://eleccelerator.com/usbdescreqparser/

--- End code ---

I was wondering if it's possible to make it work.
Any help would be highly appreciated.

hasu:
Thanks for your report.

Rapoo 9300M has two boot keyboard interfaces, that is irregular case, methink. The second one is what we need to handle.
USB descriptor:
https://gist.github.com/tmk/20e2a574dc45ce7789b93e15e9ca9eb6?permalink_comment_id=4619261#gistcomment-4619261

But current revision of USB-USB converter can handle the first inteface only. I'll let you know if I can fixed this limitation.

I also filed the issue on github.
https://github.com/tmk/tmk_keyboard/issues/764

Ko$tello:
Thanks a lot Hasu!
Hopefully, you can address this issue.
I really like your product and was hoping to deploy it on all PCs in our office.

hasu:
Ko$tello,
Can you try multimedia keys(Fn+[F1-F12]) with the debug firmware?
The converter does not handle them correctly but shows something on debug console, perhaps.

Ko$tello:
Thanks for your prompt reply, Hasu!
I tried Fn+[F1-F12] in debug mode and it catches some input. Please see it below.
It works kind of unstable though. Sometimes it sees the input, others it doesn't.


--- Code: ---Waiting for device:
Listening:
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
Ci read:0012
left:0000
vid:24AE
pid:2013
klass:00
subklass:00
AC1
AC2
A2 driver:00
BM Init
Ci read:0008
left:0000
Addr:01
Ci read:0012
left:0000
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Ci read:0009
left:0000
Cl:0054
Ci [xE1][xE++]read:0040
left:0014
[xE1]read:0014
left:0000
bNumEP:02
Cnf:01
bIfaceNum:01
bNumIface:00

Interface:01
SET_PROTOCOL: 00
SET_IDLE: 00
Ci read:0040
left:0040
read:001E
left:0022
RPIPE: 00
BM configured
Init:00
AttemptConfig2:00
Configuring:00
host.Task: 2325
usb_state: 90
speed: full
Co input 1: 03 30 03
03 30 03
input 1: 03 00 00
03 00 00
input 1: 03 24 02
03 24 02
input 1: 03 00 00
03 00 00
input 1: 03 25 02
03 25 02
input 1: 03 00 00
03 00 00
input 1: 03 23 02
03 23 02
input 1: 03 00 00
03 00 00
input 1: 03 8A 01
Rollover error: ignored
03 8A 01
input 1: 03 00 00
03 00 00


--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version