geekhack Projects > Making Stuff Together!

TMK USB to USB keyboard converter

<< < (184/186) > >>

pupmonster:
Thanks, Hasu!

I thought you would like to know that I used the TMK Layout Editor to modify my layout of the Japanese Mini M using both my older USB-USB adapter and the brand-new adapter just received, and everything looks good.

paiste:
Hi,

so does this work if there is a hub between the real keyboard and the converter? Is it possible to have the firmware supporting for mouse only? (We have a devices that accepts only keyboard or mouse directly attached, but we need to use a USB over LAN that shows up as hub between keyboard / mouse and the device? Need tens of units.

hasu:
- My firmware with current configuration can support two hubs. Yes, you can use hub between the converter and keyboard.
- My firmware does not support mouse.

It is possible for the converter to support  hub, keyboard and mouse technically if you can write custom code for that.

timd:
Hi Hasu,

I received my usb-usb converter the other day (thanks!), and I've been partly successful using it with my Chilkey ND75. Everything is good if I use the USB cable connection, however I'm not able to get it working with the 2.4G wireless dongle.

I was hoping that if I post the debug & dump hid_listen logs that you might be able to help?

usb_usb_debug.hex:

--- Code: ---Waiting for device:
Listening:
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
>>>>BUSRST
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
>>>>BUSRST
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
>>>>BUSRST
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
>>>>BUSRST
>>>>BUSRST
>>>>BUSRST
host.Task: 2457
usb_state: 90
speed: full
--- End code ---

usb_desc_dump.hex:

--- Code: ---Waiting for device:
Listening:

TMK:7b2827/LUFA:d6a7df/UHS2:96112d
Start

USB configured.

Loop start.
usb_state: 12
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 10 01 00 00 00 08 45 0C FE FE 23 01 01 02
00 01

// Device:
bLength: 12
bDescriptorType: 01
bcdUSB: 0110
bDeviceClass: 00
bDeviceSubClass: 00
bDeviceProtocol: 00
bMaxPacketSize0: 08
idVendor: 0C45
idProduct: FEFE
bcdDevice: 0123
iManufacturer: 01
iProduct: 02
iSerialNumber: 00
bNumConfigurations: 01

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

// iManufacturer: ERROR: 05

// iProduct: String2(0409): len: 18
// 18 03 32 00 2E 00 34 00 47 00 20 00 44 00 6F 00
// 6E 00 67 00 6C 00 65 00
// 2.4G Dongle

// Config0 dump: len: 0094
09 02 94 00 05 01 00 A0 23 09 04 00 00 01 03 00
00 00 09 21 00 01 00 01 22 48 00 07 05 81 03 08
00 01 09 04 01 00 01 03 00 00 00 09 21 00 01 00
01 22 3D 00 07 05 82 03 08 00 01 09 04 02 00 01
03 00 00 00 09 21 00 01 00 01 22 CD 00 07 05 83
03 10 00 01 09 04 03 00 02 03 00 00 00 09 21 00
01 00 01 22 22 00 07 05 85 03 30 00 01 07 05 05
03 30 00 01 09 04 04 00 02 03 00 00 00 09 21 00
01 00 01 22 22 00 07 05 86 03 40 00 01 07 05 06
03 40 00 01

// Config:
bLength: 09
bDescriptorType: 02
wTotalLength: 0094
bNumInterfaces: 05
bConfigurationValue: 01
iConfiguration: 00
bmAttributes: A0
bMaxPower: 23

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

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0100
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 0048

// Report0 dump: len: 0048
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 01 95 03 75 01
05 08 19 01 29 03 91 02 95 05 75 01 91 01 95 05
75 08 26 FF 00 05 07 19 00 29 FF 81 00 05 FF 09
03 75 08 95 01 81 02 C0

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 81
bmAttributes: 03
wMaxPacketSize: 0008
bInterval: 01

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

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0100
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 003D

// Report0 dump: len: 003D
05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 03
15 00 25 01 95 05 75 01 81 02 95 01 75 03 81 01
05 01 09 30 09 31 09 38 15 81 25 7F 75 08 95 03
81 06 95 01 05 0C 0A 38 02 81 06 C0 C0

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 82
bmAttributes: 03
wMaxPacketSize: 0008
bInterval: 01

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

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0100
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 00CD

// Report0 dump: len: 00CD
05 0C 09 01 A1 01 85 01 19 00 2A 3C 03 15 00 26
3C 03 95 01 75 10 81 00 C0 05 01 09 80 A1 01 85
02 05 01 19 81 29 83 15 00 25 01 95 03 75 01 81
02 95 01 75 05 81 01 C0 05 01 09 06 A1 01 85 03
05 07 15 00 25 01 19 00 29 77 95 78 75 01 81 02
C0 05 01 09 0E A1 01 85 06 05 0D 09 21 A1 00 05
09 09 01 95 01 75 01 15 00 25 01 81 02 05 01 09
37 95 01 75 0F 55 0F 65 14 36 F0 F1 46 10 0E 16
F0 F1 26 10 0E 81 06 09 30 75 10 55 0D 65 13 35
00 46 C0 5D 15 00 26 FF 7F 81 02 09 31 46 B0 36
81 02 05 0D 09 48 36 B8 0B 46 B8 0B 16 B8 0B 26
B8 0B 81 03 C0 C0 06 FF FF 09 01 A1 01 85 05 09
01 15 00 26 FF 00 75 08 95 03 81 02 C0

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 83
bmAttributes: 03
wMaxPacketSize: 0010
bInterval: 01

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

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0100
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 0022

// Report0 dump: len: 0022
06 60 FF 09 61 A1 01 09 62 15 00 26 FF 00 95 20
75 08 81 02 09 63 15 00 26 FF 00 95 20 75 08 91
02 C0

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 85
bmAttributes: 03
wMaxPacketSize: 0030
bInterval: 01

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 05
bmAttributes: 03
wMaxPacketSize: 0030
bInterval: 01

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

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0100
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 0022

// Report0 dump: len: 0022
06 60 FF 09 61 A1 01 09 62 15 00 26 FF 00 95 40
75 08 81 02 09 63 15 00 26 FF 00 95 40 75 08 91
02 C0

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 86
bmAttributes: 03
wMaxPacketSize: 0040
bInterval: 01

// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 06
bmAttributes: 03
wMaxPacketSize: 0040
bInterval: 01

// Parse data here: http://eleccelerator.com/usbdescreqparser/
--- End code ---

Many thanks,
Tim

hasu:
Hi Tim,
Thanks for the info.

It seems interface0 is boot keyboard compatible but it does not assert itself as a 'Boot keyboard' in USB descriptor for some reason. So Chilkey ND75 dongle is not a boot keyboard and the converter cannot detect it.

I'll look into to find a workaround for the dongle.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version