Skip to content

Troubleshooting

hasu@tmk edited this page Feb 26, 2019 · 17 revisions

USB cable

First, check if your cable is all right or just try other cable.

Believe me. Not negligible number of people had trouble with bad USB cable and they tend to suspect their cable at the last for some reason.

USB VID/PID

TMK firmware uses 0xFEED as USB Vendor id(VID) by default. It is not registered with official USB.org or other usb device databases.

Product id(PID)s are assigned arbitrarily by project authors.

Ids are defined with VENDOR_ID and PRODUCT_ID macros in config.h.

How TMK device should be recognized

TMK device can have some USB HID interfaces(keyboard, mouse, consumer/media keys and system keys), its number varies according to you configuration.

Windows

You should find some devices under "Human Iterface Devices" tree in Device Manager and their names are "USB Input Device" and "USB Compliant ...".

Windows Device Manager

Linux

You can find TMK devices with command lsusb -dFEED:,

Bus 005 Device 007: ID feed:caaa  
Bus 005 Device 008: ID feed:4707 

and lsusb -dFEED: -v shows more details of the devices.

To see HID report descriptor check this wiki page.

USB Troubles

Linux: "device descriptor read/64, error -62"

-62 means "Timer expired" according to errno.h.

You will see this error in /var/log/kern.log when slow startup prevents USB enumeration process. It is important to make control endpoint responsive to packets form host in early stage.

LUFA solution

  1. if INTERRUPT_CONTROL_ENDPOINT is defined you have to enable interrupt by sei() earlier as possible
  2. otherwise USB_USBTask() should be called earlier and more frequently
Clone this wiki locally