Author Topic: TMK USB to USB keyboard converter  (Read 521888 times)

0 Members and 2 Guests are viewing this topic.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #550 on: Mon, 16 December 2019, 00:50:06 »
Hmm, the device sends keys in report protocol, not boot protocol.
It declares that it supports boot protocol in the descriptors but the converter seems to fail to request it for some reason. To look into or debug USB communication like this requires real device on site, it is difficult to know what happens between the keyboard and the converter only with the debug prints unfortunately.

The '01' first byte of the report indicates Report ID(1) but the converter recognizes it as modifier status(Left Control) incorrectly. If you connect the device only to the converter you can remap Left Control key as 'NO' to ignore the first byte, perhaps.

Also, when you have time could you try attached firmware and post debug prints? This will display a bit more detailed infos.
* usb_usb_debug.hex

EDIT: Updated firmware. Use this one below.
* usb_usb_debug.hex


Hi hasu,

For this https://smile.amazon.com/iKKEGOL-Control-Customized-Keyboard-Multimedia/dp/B07553KW32/ref=cm_cr_arp_d_product_top?ie=UTF8 footpedal, when I connect it to the converter and check hid listen it always has ctrl pressed


Although there are options to bind a key with a modifier, without a modifier it will always have left ctrl depressed on startup and I cannot press left ctrl.

« Last Edit: Mon, 16 December 2019, 08:04:14 by hasu »

Offline Harima

  • Posts: 44
Re: USB to USB keyboard converter
« Reply #551 on: Tue, 17 December 2019, 21:05:58 »
Sorry I'm late, I tried that firmware but I get

Code: [Select]
Waiting for device:.........
so I tried making one myself but I think I'm doing something wrong.

"NO" to left control is a temporary solution but then I lose left control haha
« Last Edit: Tue, 17 December 2019, 21:09:36 by Harima »

Offline D.L.

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #552 on: Thu, 19 December 2019, 15:50:31 »
Just got one of these converters from 1-Up; it does not appear to work with the Logitech G810 Orion Spectrum keyboard. I've tried it on three separate computers (two Win 10 PCs and one Mac) and in no case does the keyboard go through it's boot sequence where the backlights flash on. The converter definitely works, I'm using it right now with another keyboard.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #553 on: Thu, 19 December 2019, 17:04:19 »
Thanks for you report. I updated the incompatibility list in first post.
Btw, what's your 'another keyboard'?

Just got one of these converters from 1-Up; it does not appear to work with the Logitech G810 Orion Spectrum keyboard. I've tried it on three separate computers (two Win 10 PCs and one Mac) and in no case does the keyboard go through it's boot sequence where the backlights flash on. The converter definitely works, I'm using it right now with another keyboard.



Offline D.L.

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #554 on: Thu, 19 December 2019, 18:29:54 »
Thanks for you report. I updated the incompatibility list in first post.
Btw, what's your 'another keyboard'?


Matias Quiet Pro for Mac:
https://matias.ca/quietpro/mac/

I'm not sure I've configured it correctly, it has a native Mac layout and my brain was going through contortions to figure out which keys should be remapped to do what I want it to do, but I have the bare minimum function I wanted up and running (Caps Lock to CTRL; no admin access on my work computer).

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #555 on: Sun, 02 February 2020, 19:56:27 »
Updated keyboard lists in the first post.

MK Fission is added to 'Incompatible Keyboards',
Logitech K120 and HHKB Professional Classic(PD-KB401W) are added to 'Compatible Keyboards'.

Offline thr0wy

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #556 on: Sun, 09 February 2020, 20:18:16 »
I made the pro micro + usb host shield version and flashed with qmk. Works perfectly on GK64, GH60, Kbpardise v60 and Vortex pok3r.
Thank you for this handy little tool.  :thumb:

Offline riangle

  • Posts: 3
  • Location: Canada
Re: USB to USB keyboard converter
« Reply #557 on: Thu, 27 February 2020, 08:17:46 »
Hey Hasu,

I followed your direction and am now using your USB-USB converter with my Realforce PFU. It works great when it works, but there is an issue I'm not able to figure out on my own.

Sometimes (I've only noticed this when I plug in other peripheral devices) the converter stops working. I've noticed this specifically after plugging in a new mouse. Model o -. It flat out stops working and needs something in the area of 5ish minutes of unplugging/plugging in and hitting the button on the converter for everything to work again. If I'm in the middle of something I just lay it aside. Any idea what a solution to this could be? It's happened a handful of times, though I can't say it's consistently when I plug in a new peripheral device as I rarely do so.


Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #558 on: Fri, 28 February 2020, 14:18:54 »
Hey Hasu,

I followed your direction and am now using your USB-USB converter with my Realforce PFU. It works great when it works, but there is an issue I'm not able to figure out on my own.

Sometimes (I've only noticed this when I plug in other peripheral devices) the converter stops working. I've noticed this specifically after plugging in a new mouse. Model o -. It flat out stops working and needs something in the area of 5ish minutes of unplugging/plugging in and hitting the button on the converter for everything to work again. If I'm in the middle of something I just lay it aside. Any idea what a solution to this could be? It's happened a handful of times, though I can't say it's consistently when I plug in a new peripheral device as I rarely do so.



No idea.
You may see useful debug info with hid_listen tool. Leave the tool running all the time and check its console when the problem happens.
https://github.com/tmk/tmk_keyboard/wiki#debug-console

BTW, the button is used to program the converter firmware, the converter stops working and turns itself into flash mode when you press the button. To make the converter working again you have to replug it or program it with proper firmware using flashing tool.

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #559 on: Sat, 25 April 2020, 07:31:12 »
Hi Hasu,

I've been using usb-to-usb converter with my CM STORM (Coolermaster Novatouch TKL) for almost two years with no issues.

But I recently bought NuType F1 from kickstarter and I does not work. I flashed latest firmware today, again no luck. Keyboards powers up, all leds work, keyboard's own functions like led brightness via its fn shortcus works. But keypresses don't register.

hid_listen does report no keypress.

here is usb device tree view of the directly connected keyboard:

https://pastebin.com/fTWMypTS

If you could please take a look at this i'd be happy.

Thanks in advance..

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #560 on: Sat, 25 April 2020, 08:31:23 »
etoops,
Thank you for the report. I updated incompatibility list in first post.

I didn't find clue in its USB descriptors unfortunately.
Can you post hid_listen output? It is still useful to know how the converter initialize perhaps.

Do you see whether the keyboard work with UEFI/BIOS interface of PC?

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #561 on: Sat, 25 April 2020, 09:18:18 »
Thank you for the fast reply!

I didn't find clue in its USB descriptors unfortunately.
Can you post hid_listen output? It is still useful to know how the converter initialize perhaps.

Here is after I connect the keyboard to adapter:

Code: [Select]
Waiting for new device:.........
Listening:
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
host.Task: 2156
usb_state: 90
speed: full

on previous run, host.Task was 2157. now 2156, then 2157 again. These are the only thing that is printed. After that no key press registers.

Do you see whether the keyboard work with UEFI/BIOS interface of PC?

it works both on my 10+ year old legacy bios and 2 year old UEFI..

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #562 on: Sat, 25 April 2020, 09:54:55 »
Thanks for the info
It seems the converter works accoriding to the log but it fails somewhere.

Didn't you see "TMK:b813d62a+/LUFA" line like below with hid_listen? In that case you are using old version firmware perhaps. Try the latest one downloaded from Keymap Editor.

Quote
Listening:


TMK:b813d62a+/LUFA

usb_state: 12

USB configured.

Keyboard start.

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #563 on: Sat, 25 April 2020, 11:43:55 »
There are no additional lines, just the ones I pasted here..

Actually I uploaded my config to the editor changed a config and back then re-downloaded and flashed just to update firmware before my initial post. Now
to double check I did it again. Output is still the same. Tried running as admin, and tried on other PC as well, same results.

I am open to suggestions, I could send my firmware, or flash one if you send?

P.S: I have two usb-to-usb adapters. Both are up-to-date and results are the same.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #564 on: Sat, 25 April 2020, 11:55:56 »
Are you sure it is my tmk keymap editor, not qmk? Check  first post for it's url.

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #565 on: Sat, 25 April 2020, 12:24:02 »
Yes definitely,

I am using this link, and I had no problems for two years with my main keyboards:

http://www.tmk-kbd.com/tmk_keyboard/editor/unimap/?usb_usb

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #566 on: Sat, 25 April 2020, 20:18:38 »
Thanks for the confirmation.

Then can you try attached firmware and post hid_listen output?
It may show helpful info.

* usb_usb_debug.hex (74.25 kB - downloaded 153 times.)

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #567 on: Sat, 25 April 2020, 21:00:57 »
Here my attempts;

First, third and fourth try:

Code: [Select]
Waiting for new device:......
Listening:


TMK:94c5fefa+/LUFA

[C]usb[S]_state: 12
[W][R][W][R][W][c]
USB configured.

Keyboard start.
[I0]0[I1]0[R][W][R][W][c][L0]usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
host.Task: 2134
usb_state: 90
speed: full

And the second try: (there was a different line before attaching the keyboard)
Code: [Select]
Waiting for device:.....
Listening:


TMK:94c5fefa+/LUFA

[C]usb[S]_state: 12
[W][R][W][R][W][c]
USB configured.

Keyboard start.
[I0]0[I1]0[L0]usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
D1
host.Task: 2134
usb_state: 90
speed: full


Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #568 on: Sat, 25 April 2020, 23:22:49 »
Thanks.
It seems to fail to handle USB Descriptors somehow.

Attached new debug firmware  it will show more detail info on parsing Descriptors.

That diffrence doesn't matter and it is trivial timing thing. One log will be enough.

* usb_usb_debug.hex (74.52 kB - downloaded 151 times.)

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #569 on: Sun, 26 April 2020, 01:27:40 »
Allright, here it is:

Code: [Select]
Waiting for device:....
Listening:


TMK:94c5fefa+/LUFA

[C]usb[S]_state: 12
[W][R][W][R][W][c]
USB configured.

Keyboard start.
[I0]0[I1]0[L0]usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:01
Cnf:00
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2317
usb_state: 90
speed: full

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #570 on: Mon, 27 April 2020, 10:36:22 »
etops,

I couldn't find any clear clue so far.

Can you try this when you have time?

* usb_usb_debug.hex (74.88 kB - downloaded 151 times.)

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #571 on: Mon, 27 April 2020, 13:29:36 »
Of course! here is the new output:

Code: [Select]
Waiting for device:.......
Listening:


TMK:e0236e64+/LUFA

[C]usb[S]_state: 12
[W][R][W][R][W][c]
USB configured.

Keyboard start.
[I0]0[R][W][R][W][c][I1]0[R][W][R][W][c][L0]usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:003B
bNumEP:01
Cnf:00
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2317
usb_state: 90
speed: full

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #572 on: Tue, 28 April 2020, 10:39:59 »
etops,
Thanks for your patience.

It seems to get some error on transfer of USB Descriptor from the keyboard.
Hope this shows something useful.

* usb_usb_debug.hex (74.77 kB - downloaded 145 times.)

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #573 on: Tue, 28 April 2020, 11:59:00 »
No worries I am happy to help!

By the way, the previous flash might be unsuccessful, i am sorry if that's the case.

Just to be sure I flashed previous firmware again. Here is the previous firmware's output:

Code: [Select]
Waiting for device:......
Listening:


TMK:e0236e64+/LUFA

[C]usb[S]_state: 12
[W][R][W][R][W][c]
USB configured.

Keyboard start.
[I0]0[R][W][R][W][c][I1]0[R][W][R][W][c][L0][S][W][R][W][R][W][c][I0]0[R][W][R][W][c][I1]0[R][W][R][W][c][L0]usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:003B
bNumEP:01
Cnf:00
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2317
usb_state: 90
speed: full

And now this is the latest firmware's output:
Code: [Select]
Waiting for device:...
Listening:


TMK:2e5e6a69+/LUFA

usb_state: 12

USB configured.

Keyboard start.
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:003B
crIN:05
bNumEP:01
Cnf:00
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2318
usb_state: 90
speed: full
« Last Edit: Tue, 28 April 2020, 12:32:43 by etops »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #574 on: Wed, 29 April 2020, 22:36:47 »
It fails with STALL error when getting USB Descriptor. I think the STALL is exceptional there and the converter doesn't expect it at all but it occurs in fact.

Quote
crIN:05

 I changed code to retry five times when it fails with the error.

* usb_usb_debug.hex (74.89 kB - downloaded 155 times.)

Offline etops

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #575 on: Thu, 30 April 2020, 04:56:39 »
Hi hasu,

here is the output:


Code: [Select]
Waiting for device:.....
Listening:


TMK:2e5e6a69+/LUFA

usb_state: 12

USB configured.

Keyboard start.
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:003B
crIN:05
crIN:05
crIN:05
crIN:05
crIN:05
bNumEP:01
Cnf:00
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2320
usb_state: 90
speed: full

Offline JimDetroit

  • Posts: 5
  • Location: Detroit, MI USA
Re: USB to USB keyboard converter
« Reply #576 on: Fri, 01 May 2020, 18:59:49 »
Hi Hasu,

I would like to report a non-working keyboard with the USB-to-USB converter, purchased from 1up. I've been using the converter with many different keyboards, and this particular one doesn't work with it: the Rosewill RK-9200BR. I tested the converter with a programming of the latest firmware from the website, to make sure the latest updates don't now allow it to work with the keyboard.

Here is what "sudo lsusb -v -d 1130:7979" reports:

Bus 002 Device 065: ID 1130:7979 Tenx Technology, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x1130 Tenx Technology, Inc.
  idProduct          0x7979
  bcdDevice            1.07
  iManufacturer           1 CYKB16
  iProduct                2 USB Keyboard
  iSerial                 0
  bNumConfigurations      1

What happens when I connect this keyboard through the converter is that the three indicator lights (NUMLOCK, CAPS, SCROLL) all stay on for several seconds, then go out. After that, I can use the FN key to turn on the LED's on the board, but no keys register with the Linux system. I'm typing on this keyboard now, but without the converter in line, just plugging it directly into a USB socket.

I also have a miscellaneous question: I noticed one of these adapters I bought from 1up (I have 3 of them) originally had a red LED on the circuit board light up when plugged into USB (a power light). After programming new firmware, the LED no longer lights. Is there an easy way to get that light to turn on again for a power indication? Maybe in the TMK C code somewhere?

Thanks for a great product!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #577 on: Sat, 02 May 2020, 01:31:00 »
Thanks for the report.

Can you post full list of 'lsusb -v' output for future reference?

As for the LED I use it for debug and didn't decide how to use it for release firmware.
But I'll fix that somewhat some later.

Hi Hasu,

I would like to report a non-working keyboard with the USB-to-USB converter, purchased from 1up. I've been using the converter with many different keyboards, and this particular one doesn't work with it: the Rosewill RK-9200BR. I tested the converter with a programming of the latest firmware from the website, to make sure the latest updates don't now allow it to work with the keyboard.

Here is what "sudo lsusb -v -d 1130:7979" reports:

Bus 002 Device 065: ID 1130:7979 Tenx Technology, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x1130 Tenx Technology, Inc.
  idProduct          0x7979
  bcdDevice            1.07
  iManufacturer           1 CYKB16
  iProduct                2 USB Keyboard
  iSerial                 0
  bNumConfigurations      1

What happens when I connect this keyboard through the converter is that the three indicator lights (NUMLOCK, CAPS, SCROLL) all stay on for several seconds, then go out. After that, I can use the FN key to turn on the LED's on the board, but no keys register with the Linux system. I'm typing on this keyboard now, but without the converter in line, just plugging it directly into a USB socket.

I also have a miscellaneous question: I noticed one of these adapters I bought from 1up (I have 3 of them) originally had a red LED on the circuit board light up when plugged into USB (a power light). After programming new firmware, the LED no longer lights. Is there an easy way to get that light to turn on again for a power indication? Maybe in the TMK C code somewhere?

Thanks for a great product!



Offline JimDetroit

  • Posts: 5
  • Location: Detroit, MI USA
Re: USB to USB keyboard converter
« Reply #578 on: Sat, 02 May 2020, 08:08:43 »
Thanks for your reply, Hasu. Here is the full output of "lsusb -v" for the Rosewill RK-9200BR keyboard:

Code: [Select]
Bus 002 Device 065: ID 1130:7979 Tenx Technology, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x1130 Tenx Technology, Inc.
  idProduct          0x7979
  bcdDevice            1.07
  iManufacturer           1 CYKB16
  iProduct                2 USB Keyboard
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      65
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     115
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

Thanks for the report.

Can you post full list of 'lsusb -v' output for future reference?

As for the LED I use it for debug and didn't decide how to use it for release firmware.
But I'll fix that somewhat some later.

« Last Edit: Sat, 02 May 2020, 08:12:11 by JimDetroit »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #579 on: Sat, 02 May 2020, 08:59:31 »
JimDetroit,
Thanks for the descriptors.

Can you try this firmware for debug and post 'hid_listen' output when you have time?

https://geekhack.org/index.php?topic=69169.msg2896191#msg2896191

You can download 'hid_listen' tool here.
https://www.pjrc.com/teensy/hid_listen.html

Offline JimDetroit

  • Posts: 5
  • Location: Detroit, MI USA
Re: USB to USB keyboard converter
« Reply #580 on: Sat, 02 May 2020, 11:09:05 »
Hasu,

Here is the output of hid_listen, with the debug firmware installed on the USB-USB controller, for the Rosewill RK-9200BR keyboard:. At the end, where there is a line of "T"s, I was typing "QWERTY".

Code: [Select]
Waiting for device:...
Listening:
 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:003B
[pC][pI3][pI2][pI1][pI0][pI][pH][pE1][pE0][xE1][xE0][xE++][xE][pE][pI3][pI2][pI1][pH][pE1][pE0][pE]bNumEP:02
Cnf:01
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2330
usb_state: 90
speed: full

USB configured.

Keyboard start.
TTTTTTTTTTTTTTT^C

Offline online

  • Posts: 205
Re: USB to USB keyboard converter
« Reply #581 on: Sat, 02 May 2020, 20:03:03 »
32u4 don't have enough memory for layers and functions that I need. would it work if I replace the ic with AT90USB1286? (of cause I'll have to redesign the PCB with the same pins config)

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #582 on: Sat, 02 May 2020, 22:29:33 »
JimDetroit,
Thanks for the log. It seems to work as expected and I couldn't find any clue there unfrotunately.


32u4 don't have enough memory for layers and functions that I need. would it work if I replace the ic with AT90USB1286? (of cause I'll have to redesign the PCB with the same pins config)

I think so. You just need some code tweak for your pin configurations.


Offline JimDetroit

  • Posts: 5
  • Location: Detroit, MI USA
Re: USB to USB keyboard converter
« Reply #583 on: Sat, 02 May 2020, 22:38:28 »
Thanks, Hasu. Please let me know if you think of any other tests to run and I can do them for you and report the results.

JimDetroit,
Thanks for the log. It seems to work as expected and I couldn't find any clue there unfrotunately.
« Last Edit: Sat, 02 May 2020, 22:42:18 by JimDetroit »

Offline online

  • Posts: 205
Re: USB to USB keyboard converter
« Reply #584 on: Mon, 04 May 2020, 07:53:18 »
32u4 don't have enough memory for layers and functions that I need. would it work if I replace the ic with AT90USB1286? (of cause I'll have to redesign the PCB with the same pins config)

I think so. You just need some code tweak for your pin configurations.
Thanks. That's good to know, will report back once I've tried it.

Other question. I want to reduce the firmware size by reducing the virtual matrix row/col count, I know which exact keys I need / I don't need.
any hint of how should I do this? is there an example of it?
« Last Edit: Mon, 04 May 2020, 09:26:38 by online »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #585 on: Wed, 06 May 2020, 02:31:31 »
32u4 don't have enough memory for layers and functions that I need. would it work if I replace the ic with AT90USB1286? (of cause I'll have to redesign the PCB with the same pins config)

I think so. You just need some code tweak for your pin configurations.
Thanks. That's good to know, will report back once I've tried it.

Other question. I want to reduce the firmware size by reducing the virtual matrix row/col count, I know which exact keys I need / I don't need.
any hint of how should I do this? is there an example of it?

I can't explain it  in minutes and don't have any example at this point.

Anyway, I think  you don't need to hassle on code tweaking once you have vast flash on AT90USB1286.

Offline netbike

  • Posts: 19
  • Location: Hong Kong
Re: USB to USB keyboard converter
« Reply #586 on: Thu, 23 July 2020, 11:46:23 »
Hi Hasu,

Add one to your compatible keybaord list : Filco Majestouch 2 104

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #587 on: Thu, 23 July 2020, 20:09:06 »
Thank you. Updated the list in the first post.

Hi Hasu,

Add one to your compatible keybaord list : Filco Majestouch 2 104


Offline dannyrb

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #588 on: Tue, 22 September 2020, 09:00:41 »
Ah! I was happy to learn of the Hasu USB to USB Converter, and then sad to learn that it's out of stock. Is anyone aware of when they'll be available again, or other places I might be able to pick one up?

Edit: I found a separate thread that indicated pre-orders could be made via e-mail. I've gone ahead and reached out that way. Thanks for your continued work and support here ^_^
« Last Edit: Fri, 25 September 2020, 11:51:36 by dannyrb »

Offline daniel123

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #589 on: Tue, 29 September 2020, 15:51:51 »
Hi Hasu,

I got your USB to USB converter and it works very well with a random keyboard. Thanks for that :)

When browsing the internet for a fix to the replug issue, I found a fix that you presented in this forum. It works just fine with my keyboard, I just have one question.

I would like to be able to change the keymap.c file but if I compile the keymap.c (see below) I always get issues with missing unimap.h or, if I copy those from other locations into my keyboard location, other errors with brackets and stuff.

I'm very new to this and basically have not much programming background. I want to understand it and I would be happy if you can point me to what is causing this issue, i.e. why is your compiled version running without any issues, and why can I not compile it myself?

Thanks a lot  :thumb:


zucca,
Code below is modified 'unimap.c' for your purpose, copy it to usb_usb directory. You can build with `make -f Maefile.unimap` in comand line. Or just use attached HEX file.

Code: [Select]
#include "unimap_trans.h"
#include "action_layer.h"


#define AC_FN0 ACTION_LAYER_MOMENTARY(1)

#ifdef KEYMAP_SECTION_ENABLE
const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
#else
const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = {
#endif
    UNIMAP(
              F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24,
    ESC,      F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,         VOLD,VOLU,MUTE,
    GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, JYEN,BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
    TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,     BSLS,     DEL, END, PGDN,    P7,  P8,  P9,  PPLS,
    CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     NUHS,ENT,                         P4,  P5,  P6,  PCMM,
    LSFT,NUBS,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,     RO,  RSFT,          UP,           P1,  P2,  P3,  PENT,
    LCTL,LGUI,LALT,MHEN,          SPC,           HENK,KANA,RALT,RGUI,FN0, RCTL,     LEFT,DOWN,RGHT,    P0,       PDOT,PEQL
    ),
    UNIMAP(
              TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
    GRV,      TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,          TRNS,TRNS,TRNS,         TRNS,TRNS,TRNS,
    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, INS, DEL,      TRNS,TRNS,TRNS,    TRNS,TRNS,TRNS,TRNS,
    TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP,  INS,      TRNS,     TRNS,TRNS,TRNS,    TRNS,TRNS,TRNS,TRNS,
    TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,TRNS,TRNS,HOME,PGUP,LEFT,RGHT,     TRNS,TRNS,                        TRNS,TRNS,TRNS,TRNS,
    TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,END, PGDN,DOWN,     TRNS,TRNS,          PGUP,         TRNS,TRNS,TRNS,TRNS,
    TRNS,TRNS,TRNS,TRNS,          TRNS,          TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     HOME,PGDN,END,     TRNS,     TRNS,TRNS
    ),
};


bool hook_process_action(keyrecord_t *record) {
    static uint8_t f24_tracker;
    action_t action = layer_switch_get_action(record->event);

    switch (action.code) {
    case KC_A ... KC_F23: //notice how it skips over F24
    case KC_EXECUTE ... KC_EXSEL: //exsel is the last one before the modifier keys
        if (record->event.pressed) {
            register_code(KC_F24); //this means to send F24 down
            f24_tracker++;
            register_code(action.code);
        } else {
            unregister_code(action.code);
            f24_tracker--;
            if (!f24_tracker) {
                unregister_code(KC_F24); //this means to send F24 up
            }
            //real key is released HERE
        }
        return true;
        break;
    }
    return false;
}


Offline ByteCrash

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #590 on: Sat, 17 October 2020, 10:47:41 »
Tried the USB-to-USB converter with the Razer Huntsman Mini. No luck :(

If I had to guess: it didn't power on any lights, so I would be curious if it was a power / current draw issue. I attempted using a powered USB hub as well as directly connecting to the USB port on my computer but it didn't power on either time. The converter works without issue with other, non-powered / backlit keyboards though.

Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #591 on: Sat, 17 October 2020, 12:56:42 »
Is it one you built (teensy/promicro) or one you bought (hasu's)?
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #592 on: Sat, 17 October 2020, 18:05:32 »
And can you provide these info for the Razer?
- Debug outputs from 'hid_listen' command. https://github.com/tmk/tmk_keyboard/wiki#debug-console
- 'USB descriptor' would be helpful for debug if your keyboard doesn't work. Refer this for how to get 'USB descriptor'. https://github.com/tmk/tmk_keyboard/wiki/USB-Descriptor

What is the other keyobard that works without issue, btw?

Tried the USB-to-USB converter with the Razer Huntsman Mini. No luck :(

If I had to guess: it didn't power on any lights, so I would be curious if it was a power / current draw issue. I attempted using a powered USB hub as well as directly connecting to the USB port on my computer but it didn't power on either time. The converter works without issue with other, non-powered / backlit keyboards though.


Offline garyngzb

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #593 on: Wed, 21 October 2020, 09:40:51 »
Just received the converter!
It works well on my Logitech Unifying receiver, but not on my other keyboard.

The keyboard is some off-brand mechanical keyboard that I bought a few years back, below is some information about it - hopefully it helps in debugging what's going wrong (or maybe the keyboard is just poorly-made?)

I flashed the debug firmware downloaded from https://geekhack.org/index.php?topic=69169.msg2896191#msg2896191

hid_listen output:

Code: [Select]
Waiting for new device:..
Listening:


TMK:2e5e6a69+/LUFA

usb_state: 12

USB configured.

Keyboard start.
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:0042
[pC][pI3][pI2][pI1][pI0][pI][pH][pE1][pE0][xE1][xE0][xE++][xE][pE][pI3][pI2][pI1][pI0][pH][pE1][pE0][pE][pE1][pE1][pE0][pE]bNumEP:02
Cnf:01
bIfaceNum:00
bNumIface:00

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2324
usb_state: 90
speed: full
TTTTTTTTTTTTTTTTT

The "TTTTT" appears when I press the keys on the keyboard.

USB descriptor (obtained via USB Device Tree Viewer):
Code: [Select]

    =========================== USB Port1 ===========================

Connection Status        : 0x01 (Device is connected)
Port Chain               : 2-1
Properties               : 0x01
 IsUserConnectable       : yes
 PortIsDebugCapable      : no
 PortHasMultiCompanions  : no
 PortConnectorIsTypeC    : no
ConnectionIndex          : 1
CompanionIndex           : 0
 CompanionHubSymLnk      : USB#ROOT_HUB30#4&e6886c1&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
 CompanionPortNumber     : 16
 -> CompanionPortChain   : 2-16

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Composite Device
Device Path              : \\?\USB#VID_04B4&PID_3000#5&267524fb&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Kernel Name              : \Device\USBPDO-12
Device ID                : USB\VID_04B4&PID_3000\5&267524FB&0&1
Hardware IDs             : USB\VID_04B4&PID_3000&REV_0108 USB\VID_04B4&PID_3000
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0021 (GUID_DEVCLASS_USB)
Driver                   : \SystemRoot\System32\drivers\usbccgp.sys (Version: 10.0.19041.488  Date: 2020-09-11)
Driver Inf               : C:\WINDOWS\inf\usb.inf
Legacy BusType           : PNPBus
Class                    : USB
Class GUID               : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
Service                  : usbccgp
Enumerator               : USB
Location Info            : Port_#0001.Hub_#0003
Location IDs             : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1), ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS01)
Container ID             : {8786439f-1333-11eb-9d48-80a589787414}
Manufacturer Info        : (Standard USB Host Controller)
Capabilities             : 0x84 (Removable, SurpriseRemovalOK)
Status                   : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code             : 0
Address                  : 1
HcDisableSelectiveSuspend: 0
EnableSelectiveSuspend   : 0
SelectiveSuspendEnabled  : 0
EnhancedPowerMgmtEnabled : 0
IdleInWorkingState       : 0
WakeFromSleepState       : 0
Power State              : D0 (supported: D0, D1, D2, D3, wake from D0, wake from D1, wake from D2)
 Child Device 1          : USB Input Device
  Device ID              : USB\VID_04B4&PID_3000&MI_00\6&B3E4605&2&0000
  Class                  : HIDClass
  Driver KeyName         : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0065 (GUID_DEVCLASS_HIDCLASS)
  Service                : HidUsb
   Child Device 1        : HID Keyboard Device
    Device Path 1        : \\?\HID#VID_04B4&PID_3000&MI_00#7&8b173b8&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_KEYBOARD)
    Device Path 2        : \\?\HID#VID_04B4&PID_3000&MI_00#7&8b173b8&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (GUID_DEVINTERFACE_HID)
    Kernel Name          : \Device\000004db
    Device ID            : HID\VID_04B4&PID_3000&MI_00\7&8B173B8&0&0000
    Class                : Keyboard
    Driver KeyName       : {4d36e96b-e325-11ce-bfc1-08002be10318}\0011 (GUID_DEVCLASS_KEYBOARD)
    Service              : kbdhid
 Child Device 2          : USB Input Device
  Device ID              : USB\VID_04B4&PID_3000&MI_01\6&B3E4605&2&0001
  Class                  : HIDClass
  Driver KeyName         : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0066 (GUID_DEVCLASS_HIDCLASS)
  Service                : HidUsb
   Child Device 1        : HID-compliant system controller
    Device Path 1        : \\?\HID#VID_04B4&PID_3000&MI_01&Col02#7&311c2181&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
    Device Path 2        : \\?\HID#VID_04B4&PID_3000&MI_01&Col02#7&311c2181&0&0001#{4afa3d53-74a7-11d0-be5e-00a0c9062857} (GUID_DEVICE_SYS_BUTTON)
    Kernel Name          : \Device\000004dd
    Device ID            : HID\VID_04B4&PID_3000&MI_01&COL02\7&311C2181&0&0001
    Class                : HIDClass
    Driver KeyName       : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0067 (GUID_DEVCLASS_HIDCLASS)
   Child Device 2        : HID-compliant consumer control device
    Device Path          : \\?\HID#VID_04B4&PID_3000&MI_01&Col03#7&311c2181&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
    Kernel Name          : \Device\000004de
    Device ID            : HID\VID_04B4&PID_3000&MI_01&COL03\7&311C2181&0&0002
    Class                : HIDClass
    Driver KeyName       : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0068 (GUID_DEVCLASS_HIDCLASS)
   Child Device 3        : HID-compliant vendor-defined device
    Device Path          : \\?\HID#VID_04B4&PID_3000&MI_01&Col04#7&311c2181&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
    Kernel Name          : \Device\000004df
    Device ID            : HID\VID_04B4&PID_3000&MI_01&COL04\7&311C2181&0&0003
    Class                : HIDClass
    Driver KeyName       : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0069 (GUID_DEVCLASS_HIDCLASS)
   Child Device 4        : HID-compliant mouse
    Device Path 1        : \\?\HID#VID_04B4&PID_3000&MI_01&Col01#7&311c2181&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_MOUSE)
    Device Path 2        : \\?\HID#VID_04B4&PID_3000&MI_01&Col01#7&311c2181&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} (GUID_DEVINTERFACE_HID)
    Kernel Name          : \Device\000004dc
    Device ID            : HID\VID_04B4&PID_3000&MI_01&COL01\7&311C2181&0&0000
    Class                : Mouse
    Driver KeyName       : {4d36e96f-e325-11ce-bfc1-08002be10318}\0009 (GUID_DEVCLASS_MOUSE)
    Service              : mouhid
   Child Device 5        : HID Keyboard Device
    Device Path 1        : \\?\HID#VID_04B4&PID_3000&MI_01&Col05#7&311c2181&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd (GUID_DEVINTERFACE_HID)
    Device Path 2        : \\?\HID#VID_04B4&PID_3000&MI_01&Col05#7&311c2181&0&0004#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} (GUID_DEVINTERFACE_KEYBOARD)
    Kernel Name          : \Device\000004e0
    Device ID            : HID\VID_04B4&PID_3000&MI_01&COL05\7&311C2181&0&0004
    Class                : Keyboard
    Driver KeyName       : {4d36e96b-e325-11ce-bfc1-08002be10318}\0012 (GUID_DEVCLASS_KEYBOARD)
    Service              : kbdhid

        +++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\04B430000108
 osvc                    : REG_BINARY 00 00
 NewInterfaceUsage       : REG_DWORD 00000000 (0)

        ---------------- Connection Information ---------------
Connection Index         : 0x01 (1)
Connection Status        : 0x01 (DeviceConnected)
Current Config Value     : 0x01
Device Address           : 0x19 (25)
Is Hub                   : 0x00 (no)
Device Bus Speed         : 0x01 (Full-Speed)
Number Of Open Pipes     : 0x03 (3 pipes to data endpoints)
Pipe[0]                  : EndpointID=1  Direction=IN   ScheduleOffset=0  Type=Interrupt
Pipe[1]                  : EndpointID=2  Direction=IN   ScheduleOffset=0  Type=Interrupt
Pipe[2]                  : EndpointID=3  Direction=OUT  ScheduleOffset=0  Type=Interrupt
Data (HexDump)           : 01 00 00 00 12 01 00 02 00 00 00 08 B4 04 00 30   ...............0
                           08 01 00 00 00 01 01 01 00 19 00 03 00 00 00 01   ................
                           00 00 00 07 05 81 03 08 00 01 00 00 00 00 07 05   ................
                           82 03 40 00 01 00 00 00 00 07 05 03 03 40 00 01   ..@..........@..
                           00 00 00 00                                       ....

        --------------- Connection Information V2 -------------
Connection Index         : 0x01 (1)
Length                   : 0x10 (16 bytes)
SupportedUsbProtocols    : 0x03
 Usb110                  : 1 (yes)
 Usb200                  : 1 (yes)
 Usb300                  : 0 (no)
 ReservedMBZ             : 0x00
Flags                    : 0x00
 DevIsOpAtSsOrHigher     : 0 (Is not operating at SuperSpeed or higher)
 DevIsSsCapOrHigher      : 0 (Is not SuperSpeed capable or higher)
 DevIsOpAtSsPlusOrHigher : 0 (Is not operating at SuperSpeedPlus or higher)
 DevIsSsPlusCapOrHigher  : 0 (Is not SuperSpeedPlus capable or higher)
 ReservedMBZ             : 0x00
Data (HexDump)           : 01 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00   ................

    ---------------------- Device Descriptor ----------------------
bLength                  : 0x12 (18 bytes)
bDescriptorType          : 0x01 (Device Descriptor)
bcdUSB                   : 0x200 (USB Version 2.00) -> wrong, device is Full-Speed only
bDeviceClass             : 0x00 (defined by the interface descriptors)
bDeviceSubClass          : 0x00
bDeviceProtocol          : 0x00
bMaxPacketSize0          : 0x08 (8 bytes)
idVendor                 : 0x04B4 (Cypress Semiconductor)
idProduct                : 0x3000
bcdDevice                : 0x0108
iManufacturer            : 0x00 (No String Descriptor)
iProduct                 : 0x00 (No String Descriptor)
iSerialNumber            : 0x00 (No String Descriptor)
bNumConfigurations       : 0x01 (1 Configuration)
Data (HexDump)           : 12 01 00 02 00 00 00 08 B4 04 00 30 08 01 00 00   ...........0....
                           00 01                                             ..

    ------------------ Configuration Descriptor -------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x02 (Configuration Descriptor)
wTotalLength             : 0x0042 (66 bytes)
bNumInterfaces           : 0x02 (2 Interfaces)
bConfigurationValue      : 0x01 (Configuration 1)
iConfiguration           : 0x02 (String Descriptor 2)
 Language 0x0409         : "Game_Keyboard"
bmAttributes             : 0xA0
 D7: Reserved, set 1     : 0x01
 D6: Self Powered        : 0x00 (no)
 D5: Remote Wakeup       : 0x01 (yes)
 D4..0: Reserved, set 0  : 0x00
MaxPower                 : 0x32 (100 mA)
Data (HexDump)           : 09 02 42 00 02 01 02 A0 32 09 04 00 00 01 03 01   ..B.....2.......
                           01 02 09 21 11 01 21 01 22 3F 00 07 05 81 03 08   ...!..!."?......
                           00 01 09 04 01 00 02 03 01 02 04 09 21 11 01 21   ............!..!
                           01 22 B0 00 07 05 82 03 40 00 01 07 05 03 03 40   ."......@......@
                           00 01                                             ..

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x00
bAlternateSetting        : 0x00
bNumEndpoints            : 0x01 (1 Endpoint)
bInterfaceClass          : 0x03 (HID - Human Interface Device)
bInterfaceSubClass       : 0x01 (Boot Interface)
bInterfaceProtocol       : 0x01 (Keyboard)
iInterface               : 0x02 (String Descriptor 2)
 Language 0x0409         : "Game_Keyboard"
Data (HexDump)           : 09 04 00 00 01 03 01 01 02                        .........

        ------------------- HID Descriptor --------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x21 (HID Descriptor)
bcdHID                   : 0x0111 (HID Version 1.11)
bCountryCode             : 0x21 (33 = US)
bNumDescriptors          : 0x01
Data (HexDump)           : 09 21 11 01 21 01 22 3F 00                        .!..!."?.
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x003F (63 bytes)
Error reading descriptor : ERROR_INVALID_PARAMETER

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x81 (Direction=IN EndpointID=1)
bmAttributes             : 0x03 (TransferType=Interrupt)
wMaxPacketSize           : 0x0008 (8 bytes)
bInterval                : 0x01 (1 ms)
Data (HexDump)           : 07 05 81 03 08 00 01                              .......

        ---------------- Interface Descriptor -----------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x04 (Interface Descriptor)
bInterfaceNumber         : 0x01
bAlternateSetting        : 0x00
bNumEndpoints            : 0x02 (2 Endpoints)
bInterfaceClass          : 0x03 (HID - Human Interface Device)
bInterfaceSubClass       : 0x01 (Boot Interface)
bInterfaceProtocol       : 0x02 (Mouse)
iInterface               : 0x04 (String Descriptor 4)
 Language 0x0409         : "Function_Device"
Data (HexDump)           : 09 04 01 00 02 03 01 02 04                        .........

        ------------------- HID Descriptor --------------------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x21 (HID Descriptor)
bcdHID                   : 0x0111 (HID Version 1.11)
bCountryCode             : 0x21 (33 = US)
bNumDescriptors          : 0x01
Data (HexDump)           : 09 21 11 01 21 01 22 B0 00                        .!..!."..
Descriptor 1:
bDescriptorType          : 0x22 (Class=Report)
wDescriptorLength        : 0x00B0 (176 bytes)
Error reading descriptor : ERROR_INVALID_PARAMETER

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x82 (Direction=IN EndpointID=2)
bmAttributes             : 0x03 (TransferType=Interrupt)
wMaxPacketSize           : 0x0040 (64 bytes)
bInterval                : 0x01 (1 ms)
Data (HexDump)           : 07 05 82 03 40 00 01                              ....@..

        ----------------- Endpoint Descriptor -----------------
bLength                  : 0x07 (7 bytes)
bDescriptorType          : 0x05 (Endpoint Descriptor)
bEndpointAddress         : 0x03 (Direction=OUT EndpointID=3)
bmAttributes             : 0x03 (TransferType=Interrupt)
wMaxPacketSize           : 0x0040 (64 bytes)
bInterval                : 0x01 (1 ms)
Data (HexDump)           : 07 05 03 03 40 00 01                              ....@..

    ----------------- Device Qualifier Descriptor -----------------
Error                    : ERROR_GEN_FAILURE

      -------------------- String Descriptors -------------------
             ------ String Descriptor 0 ------
bLength                  : 0x04 (4 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language ID[0]           : 0x0409 (English - United States)
Data (HexDump)           : 04 03 09 04                                       ....
             ------ String Descriptor 2 ------
bLength                  : 0x1C (28 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "Game_Keyboard"
Data (HexDump)           : 1C 03 47 00 61 00 6D 00 65 00 5F 00 4B 00 65 00   ..G.a.m.e._.K.e.
                           79 00 62 00 6F 00 61 00 72 00 64 00               y.b.o.a.r.d.
             ------ String Descriptor 4 ------
bLength                  : 0x20 (32 bytes)
bDescriptorType          : 0x03 (String Descriptor)
Language 0x0409          : "Function_Device"
Data (HexDump)           : 20 03 46 00 75 00 6E 00 63 00 74 00 69 00 6F 00    .F.u.n.c.t.i.o.
                           6E 00 5F 00 44 00 65 00 76 00 69 00 63 00 65 00   n._.D.e.v.i.c.e.


Thanks!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #594 on: Wed, 28 October 2020, 08:20:13 »
garyngzb, Thank you for the report.

I'm still not sure what the 'TTT' error indicates unfortunately. But my wild guess is toggle error...
Can you try attached firmware when you have time? Its hid_listen output would be helpful.

usb_usb_debug.hex
« Last Edit: Thu, 05 November 2020, 09:51:50 by hasu »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #595 on: Thu, 05 November 2020, 10:54:53 »
[New Firmware]
Updated firmware and fixed some issues.

I hope this solves or mitigates some of the incompatibile keyboards list.
Let me know your result with new firmware especially if you had problem before.

You can dowload it from Keymap Editor or here.

Try this firmware for debug and hid_listen tools to see debug outputs and post it if you still have problem.

Thanks

Offline haydoselefantes

  • Posts: 65
  • Location: Los Angeles
Re: USB to USB keyboard converter
« Reply #596 on: Thu, 05 November 2020, 13:49:26 »
Love my new FC980C controller, it's turning my new 980C into an endgame board.

I've been trying to use the keymap editor to make my Caps Lock key work as regular caps lock when tapped and momentary layer switch when held.  I set it as "ACTION_LAYER_TAP_KEY" for Caps Lock and Layer 1.

With this, when I just tap Caps Lock, it seems to have no effect.  Weirdly, when I double tap Caps Lock, it does turn on Caps Lock (and then a single tap will turn off Caps Lock).  Holding Caps Lock always works as expected and gives me Layer 1. 

It's no big deal, I use caps lock so infrequently that I don't mind having to double tap (obviously, I could put caps lock somewhere on layer 1 too).  But, I'm just confused why it doesn't work.  Is Caps Lock special with "ACTION_LAYER_TAP_KEY" or something?

Happy to move this to the FC980C thread, but I wasn't sure I should resurrect that one.  FWIW, I actually had this same experience with Caps Lock and ACTION_LAYER_TAP_KEY on the USB-USB converter with my 87U.

Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #597 on: Thu, 05 November 2020, 13:57:41 »
i've run into the double tap caps lock as well. think it's how it functions in the firmware or could be a setting with locking caps lock.... haven't dug into it....
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #598 on: Thu, 05 November 2020, 20:43:04 »
haydoselefantes,
What OS are you guys on? Mac OS?
This issue happens on Linux or Windows too?
Other keys than CapsLock still have same problem?

I guess TAP keys send signal of press and release too in succession.
Some time ago MacOS changed how to recognize caps lock and it ignores too fast transition of the key.
You may change this setting in Preference panel or somewhere but not sure.

I tested this keymap on Linux and it works. I don't have Mac for testing unfortunately.



nevin,
USB-USB converter firmware doesn't Locking key at this point, I think there is virtually no USB keybaords with locking key.
Only ADB, M0110 and PC98 converters support the feature for classic keyboards by default. And LOCKING_* keys are fixed for MacOS some time ago, so it should work on MacOS, Linux and WIndows now.

EDIT: Mechanical Locking key support was added  for USB-USB converter now. 2020-11-07
« Last Edit: Sat, 07 November 2020, 03:33:30 by hasu »

Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #599 on: Thu, 05 November 2020, 22:46:48 »
yes, on mac. (El Capitan) yes, i know... old....
not a big issue, but i've seen it before. also in qmk on a GH60. it very well may be the OS. (i don't even have a "caps" on my current daily board)
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68