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

0 Members and 1 Guest are viewing this topic.

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: TMK USB to USB keyboard converter
« Reply #850 on: Sat, 03 September 2022, 10:44:25 »
Great!  So if Lucky_Marsupial loads the attached firmware then applies his(?) home row modifiers the tapping term change will still be in effect?  That's much easier than him setting up some way to compile :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Lucky_Marsupial

  • Posts: 6
Re: TMK USB to USB keyboard converter
« Reply #851 on: Tue, 06 September 2022, 18:42:25 »
@suicidal orange, thank you for trying!

Hasu, unfortunately I'm not going to be able to set up a VM or WSL for this—just seems beyond my skill set. But I'm wondering—since the website is somehow compiling the hex file on the backend, is there a way you could have a form on that page that would allow users to add variable settings like tapping term that would overwrite the defaults, and the site could just check for those before compiling? I really don't know how the compiling aspect works, but if I can define keymaps on the website, then maybe it could let users define some variable settings also? Or (and I know this is more work for you) there could be an optional section that lists all of the variable settings in the default and lets users edit them before downloading a compiled version? You could even start by just doing this for tapping term and any other settings that are commonly requested to change.

Lastly, "load keymap from firmware" after uploading a hex file is not working for me and "Keyboard output for debug" is always blank (I assume it is supposed to show something when you have the cursor in the box and type something). This is on Win 10 and Firefox 104. Any ideas on what to try to load the keymap? What is the keyboard output supposed to do/show?

Thanks for the help!

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #852 on: Wed, 07 September 2022, 20:35:17 »
Keymap Editor doesn't compile firmware on line, it just replaces keymap portion in prebuilt firmware.
It is difficult or impossible to change the setting on current Keymap Editor.


I think "load keymap from firmware" should work with 'Unimap' firmware somewhat. Default prebuilt firmwares available on Keymap Editor or github are buillt as Unimap firmware by me.
Where does your firmware come from? (TMK firmware can be compilied with 8-bit 'keymap' and actionmap, in addition to unimap.)

And can you describe in detail about "after uploading a hex file is not working"? Screenshots of Keymap Editor would be helpful for me to understand the issue.

And you can upload your hex fire here or other place so that I can try it on Keymap Editor.


Offline Lucky_Marsupial

  • Posts: 6
Re: TMK USB to USB keyboard converter
« Reply #853 on: Thu, 08 September 2022, 18:41:07 »
I think "load keymap from firmware" should work with 'Unimap' firmware somewhat. Default prebuilt firmwares available on Keymap Editor or github are buillt as Unimap firmware by me.
Where does your firmware come from? (TMK firmware can be compilied with 8-bit 'keymap' and actionmap, in addition to unimap.)

Sorry if I am not following, but I am using the USB to USB converter. I didn't try to load firmware specific to my keyboard, because I thought that was only for keyboards that had the ability to be programmed directly. I just plug my keyboard (Unicomp) into the converter. For the TMK hex file and keymap editor, I chose the usb-usb converter firmware. I don't know what "unimap" is even though I see it mentioned on the editor page.

And can you describe in detail about "after uploading a hex file is not working"? Screenshots of Keymap Editor would be helpful for me to understand the issue.

And you can upload your hex fire here or other place so that I can try it on Keymap Editor.

I use the Keymap editor, dowloaded a firmware hex file, and used it to flash my usb-usb converter successfully. Later I closed the browser and restarted the computer. I opened the Keymap editor page and selected the radio button "File" under "Base Firmware File". I chose the hex file that I downloaded earlier and clicked "Load keymap from firmware". I expected to see the keymap that I created earlier appear on the Keymap Editor webpage so I could change a few key mappings. But, the keymap that I see on the Editor is the default map that the usb-usb converter ships with, rather than the new layout I created and flashed to the converter.

I will attach the hex file here. Thanks for the help.


Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #854 on: Thu, 08 September 2022, 19:30:53 »
Hi,
Yes, you are using correct firmware file. Firmware file that you attached is valid (unimap firmware) file for Keymap Editor.
I confirmed Keymap Editor loaded keymap from your firmware, see pictures below. I used Chrome(105) and Firefox(104) on ubuntu Linux to test it. In the pictures Chrome is shown on left and Firefox on right.

291206-0 291208-1


Quote
I opened the Keymap editor page and selected the radio button "File" under "Base Firmware File". I chose the hex file that I downloaded earlier and clicked "Load keymap from firmware".
This seems to me be correct procedure to load keymap from your firmware file. And this is exactly what I did for the test.

291204-2

I don't know why this doesn't work on your site. This may be specific to Windows?



Offline Lucky_Marsupial

  • Posts: 6
Re: TMK USB to USB keyboard converter
« Reply #855 on: Thu, 08 September 2022, 20:09:39 »
Thanks for testing it. I was able to get it to work on Chrome (too many Firefox extensions perhaps).

Keymap Editor doesn't compile firmware on line, it just replaces keymap portion in prebuilt firmware.
It is difficult or impossible to change the setting on current Keymap Editor.

So the keymap doesn't need to be compiled, but the tap time setting does? And the keymap can be replaced in prebuilt firmware, but the tap time setting cannot? Is that right?

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #856 on: Thu, 08 September 2022, 22:15:51 »
Right. 'Tapping Term' value is embeded in core system and needs compilation of its source codes. Keymap is simple data(array of key action code) and can be replaced easily even after the compilation.




Quote
I have a converter working with my keyboard. I'm trying to use home row modifiers, which I was using successfully before with an Atreus, but I got the converter so I could try home row modifiers with my Unicomp buckling spring. They are not working well,

Can you describe more details about difference between TMK and Atreus implementation of 'tap key'?
And can you share your keymap of 'home row modifiers' so that I can test on my site?


TMK tap key was implemented heavily depending on my taste and fingering habits. I'm a slow typist(50wpm) and don't type so much day to day. I mean, TMK tap key doesn't suit for you even with changing Tapping Term, perhaps.

There is other (hard-coded)parameters of tap key implementation and I can improve hopefully.




Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: TMK USB to USB keyboard converter
« Reply #857 on: Fri, 09 September 2022, 04:12:00 »
@Lucky_Marsuipial - have you confirmed if it's a timing issue or something else?  Easiest way is probably to change the modifier to a different letter so you can see which types when you double tap at your normal speed.  I've attached two more hexes with tapping term of 100 and 500, maybe one of them will work better?
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Lucky_Marsupial

  • Posts: 6
Re: TMK USB to USB keyboard converter
« Reply #858 on: Sun, 11 September 2022, 20:18:19 »
I'm not sure exactly why the Atreus worked for me and TMK currently isn't. The TMK problem is that I am constantly having keys act as modifiers when I intend to just tap (type) them. With the Atreus, I was able to slightly alter my typing to hold down the home row keys for shorter periods when typing, and that solved the problem. I am wondering if the TMK issue is that the setting for IGNORE_MOD_TAP_INTERRUPT is not active in my firmware. According to the page https://precondition.github.io/home-row-mods, that setting not being on causes similar problems—accidental activation of the mod key when the 1st key is not released until after the 2nd key is pressed. Does TMK include this option?

I am ok with pausing my normal typing style to hold the tap/mod key a bit longer to make it a mod, and then deliberately tap the 2nd key that I want to combine with the mod, if that will help. In other words, I am ok acting more like a hunt-and-peck typist when using the tap/hold keys as mods to invoke keyboard shortcuts. I just need to avoid them acting as mods when I don't want them to, when typing normal text.

I don't care about the ability to hold down a key and get a bunch of them auto-typed (like holding to produce "aaaaaaaaaa"). I'm willing to lose that ability to get home row mods.

Despite my ignorance of the low-level parts of this, I think I can understand the explanations on the "home row mods" webpage linked above, so feel free to ask about things referenced there in helping me troubleshoot. Thanks again for your help!

Offline Lucky_Marsupial

  • Posts: 6
Re: TMK USB to USB keyboard converter
« Reply #859 on: Sun, 18 September 2022, 18:42:32 »
@hasu, I know this isn't an easy fix, so I'm just curious if IGNORE_MOD_TAP_INTERRUPT is implemented in TMK and is ON by default? If not, would you recommend that if I want to try home row mods that I attempt to use QMK with the usb-usb converter instead? I assume that the process is pretty similar—use the web config page, download a file, flash it to the converter—is that right? I know you maintain TMK and not QMK but I would like to try to move forward on this issue in some way if I can. Thanks!

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #860 on: Tue, 20 September 2022, 01:51:58 »
TMK doesn't has the option and I'm not sure how it works.
Yes, try QMK and let me know your result. I don't know much about QMK firmware, you better consult its documents. I believe that you can't mess up your converter with trying QMK.

Offline apastuszak

  • Posts: 44
Re: TMK USB to USB keyboard converter
« Reply #861 on: Wed, 12 October 2022, 19:49:46 »
1upkeyboards is out of stock on these.  Any idea when they'll be getting more in?

Offline KHAANNN

  • Posts: 1660
Re: TMK USB to USB keyboard converter
« Reply #862 on: Fri, 16 December 2022, 02:51:54 »
I had to erase and reprogram my usb_usb converter today, for some reason it was recognized, it powered the keyboard, yet it didn't deliver any keystrokes before I reprogrammed - luckily I had the commands logged in a file:

dfu-programmer atmega32u4 erase --force
dfu-programmer atmega32u4 flash usb_usb.hex --force --debug 99999

Interesting event, and small chance it could be because I left the device with a faulty firmware (its connected to my tactile endgame, so shame on me if I did)
Endgame | 1.25 Cmd for GMK Sets Please | Or Just 1.25 Blanks Like The Good Old Days

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #863 on: Tue, 24 January 2023, 22:56:45 »
Just updated source code repository and default firmware on Keymap Editor.

Apple Magic Keyboard First gen.(A1644/A1843) is supported by default firmware now.

 https://github.com/tmk/tmk_keyboard/commit/8fd2ba90e7f3bf87b2b634e5b9bd990ff89f42f2

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #864 on: Tue, 31 January 2023, 19:52:39 »
Just updated firmware for Ducky One 2 Mini(DKON2061ST / DKME2061ST).

https://github.com/tmk/tmk_keyboard/issues/697

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #865 on: Tue, 04 July 2023, 01:56:04 »
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: [Select]
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

USB Descriptor Data:
Code: [Select]
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/

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

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #866 on: Tue, 04 July 2023, 22:48:34 »
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

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #867 on: Wed, 05 July 2023, 18:45:47 »
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.

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #868 on: Wed, 05 July 2023, 19:47:59 »
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.

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #869 on: Wed, 05 July 2023, 20:47:24 »
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: [Select]
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

« Last Edit: Wed, 05 July 2023, 20:55:03 by Ko$tello »

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #870 on: Sun, 09 July 2023, 03:46:56 »
Ko$tello,
Can you try attached firmware and post its debug log?

The Rapoo USB dongle seems to be designed maily for mouse and it looks weird for a keyboard.

* usb_usb_debug.hex

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #871 on: Fri, 14 July 2023, 00:53:25 »
Hi Hasu,

Sorry for the late reply. This week has been a bit hectic.
I tried usb_usb_debug.hex you provided, please see the output below.
Windows has some issues recognising USB dongle with this firmware and didn't work every time.
The keyboard also doesn't respond to Fn+[F1-F12].
Code: [Select]
Waiting for device:....
Listening:

TMK:002537/LUFA:d6a7df/UHS2:c2a2bb

USB configured.

Loop start.
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:03
Cnf:01
bIfaceNum:02
bNumIface:00

Interface:01
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00

Interface:02
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00
BM configured
host.Task: 2322
usb_state: 90
speed: fu

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #872 on: Sun, 16 July 2023, 02:20:45 »
Thanks for testing.

I found a bug and fixed. Try this one.

* usb_usb_debug.hex (60.34 kB - downloaded 62 times.)


Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #873 on: Sun, 16 July 2023, 16:25:11 »
Hi Hasu,
I tested the latest debug firmware and it seems to be working fine. Please see the output below.

Would you be able to create hex files with F24, F23 and F22 hooks, with and without modifiers that work with this keyboard?
Your help on this would be highly appreciated 🙏

Code: [Select]
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:03
Cnf:01
bIfaceNum:02
bNumIface:00

Interface:01
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00

Interface:02
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00
BM configured
host.Task: 2322
usb_state: 90
speed: full
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 29 00 00 00 00 00
00 00 29 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 3A 00 00 00 00 00
00 00 3A 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 3B 00 00 00 00 00
00 00 3B 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 3C 00 00 00 00 00
00 00 3C 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 3D 00 00 00 00 00
00 00 3D 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 3E 00 00 00 00 00
00 00 3E 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 3F 00 00 00 00 00
00 00 3F 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 40 00 00 00 00 00
00 00 40 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 41 00 00 00 00 00
00 00 41 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 42 00 00 00 00 00
00 00 42 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 43 00 00 00 00 00
00 00 43 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 44 00 00 00 00 00
00 00 44 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 44 00 00 00 00 00
00 00 44 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 45 00 00 00 00 00
00 00 45 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 46 00 00 00 00 00
00 00 46 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 49 00 00 00 00 00
00 00 49 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 4C 00 00 00 00 00
00 00 4C 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 4C 00 00 00 00 00
00 00 4C 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 53 00 00 00 00 00
00 00 53 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 57 00 00 00 00 00
00 00 57 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 58 00 00 00 00 00
00 00 58 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 35 00 00 00 00 00
00 00 35 00 00 00 00 00
input 1: 00 00 1E 00 00 00 00 00
00 00 1E 00 00 00 00 00
input 1: 00 00 1F 00 00 00 00 00
00 00 1F 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 20 00 00 00 00 00
00 00 20 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 21 00 00 00 00 00
00 00 21 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 22 00 00 00 00 00
00 00 22 00 00 00 00 00
input 1: 00 00 23 00 00 00 00 00
00 00 23 00 00 00 00 00
input 1: 00 00 24 00 00 00 00 00
00 00 24 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 25 00 00 00 00 00
00 00 25 00 00 00 00 00
input 1: 00 00 26 00 00 00 00 00
00 00 26 00 00 00 00 00
input 1: 00 00 26 27 00 00 00 00
00 00 26 27 00 00 00 00
input 1: 00 00 27 00 00 00 00 00
00 00 27 00 00 00 00 00
input 1: 00 00 2D 00 00 00 00 00
00 00 2D 00 00 00 00 00
input 1: 00 00 2E 00 00 00 00 00
00 00 2E 00 00 00 00 00
input 1: 00 00 2E 2A 00 00 00 00
00 00 2E 2A 00 00 00 00
input 1: 00 00 2A 00 00 00 00 00
00 00 2A 00 00 00 00 00
input 1: 00 00 2A 54 00 00 00 00
00 00 2A 54 00 00 00 00
input 1: 00 00 54 00 00 00 00 00
00 00 54 00 00 00 00 00
input 1: 00 00 54 55 00 00 00 00
00 00 54 55 00 00 00 00
input 1: 00 00 55 00 00 00 00 00
00 00 55 00 00 00 00 00
input 1: 00 00 55 56 00 00 00 00
00 00 55 56 00 00 00 00
input 1: 00 00 56 00 00 00 00 00
00 00 56 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 2B 00 00 00 00 00
00 00 2B 00 00 00 00 00
input 1: 00 00 14 00 00 00 00 00
00 00 14 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 1A 00 00 00 00 00
00 00 1A 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 08 00 00 00 00 00
00 00 08 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 15 00 00 00 00 00
00 00 15 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 17 00 00 00 00 00
00 00 17 00 00 00 00 00
input 1: 00 00 1C 00 00 00 00 00
00 00 1C 00 00 00 00 00
input 1: 00 00 18 00 00 00 00 00
00 00 18 00 00 00 00 00
input 1: 00 00 0C 00 00 00 00 00
00 00 0C 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 12 00 00 00 00 00
00 00 12 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 13 00 00 00 00 00
00 00 13 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 2F 00 00 00 00 00
00 00 2F 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 30 00 00 00 00 00
00 00 30 00 00 00 00 00
input 1: 00 00 30 28 00 00 00 00
00 00 30 28 00 00 00 00
input 1: 00 00 28 00 00 00 00 00
00 00 28 00 00 00 00 00
input 1: 00 00 28 5F 00 00 00 00
00 00 28 5F 00 00 00 00
input 1: 00 00 5F 00 00 00 00 00
00 00 5F 00 00 00 00 00
input 1: 00 00 5F 60 00 00 00 00
00 00 5F 60 00 00 00 00
input 1: 00 00 60 00 00 00 00 00
00 00 60 00 00 00 00 00
input 1: 00 00 61 00 00 00 00 00
00 00 61 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 39 00 00 00 00 00
00 00 39 00 00 00 00 00
input 1: 00 00 39 04 00 00 00 00
00 00 39 04 00 00 00 00
input 1: 00 00 04 00 00 00 00 00
00 00 04 00 00 00 00 00
input 1: 00 00 16 00 00 00 00 00
00 00 16 00 00 00 00 00
input 1: 00 00 16 07 00 00 00 00
00 00 16 07 00 00 00 00
input 1: 00 00 07 00 00 00 00 00
00 00 07 00 00 00 00 00
input 1: 00 00 07 09 00 00 00 00
00 00 07 09 00 00 00 00
input 1: 00 00 09 00 00 00 00 00
00 00 09 00 00 00 00 00
input 1: 00 00 09 0A 00 00 00 00
00 00 09 0A 00 00 00 00
input 1: 00 00 0A 00 00 00 00 00
00 00 0A 00 00 00 00 00
input 1: 00 00 0A 0B 00 00 00 00
00 00 0A 0B 00 00 00 00
input 1: 00 00 0B 00 00 00 00 00
00 00 0B 00 00 00 00 00
input 1: 00 00 0D 00 00 00 00 00
00 00 0D 00 00 00 00 00
input 1: 00 00 0D 0E 00 00 00 00
00 00 0D 0E 00 00 00 00
input 1: 00 00 0E 00 00 00 00 00
00 00 0E 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 0F 00 00 00 00 00
00 00 0F 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 33 00 00 00 00 00
00 00 33 00 00 00 00 00
input 1: 00 00 34 00 00 00 00 00
00 00 34 00 00 00 00 00
input 1: 00 00 31 00 00 00 00 00
00 00 31 00 00 00 00 00
input 1: 00 00 28 00 00 00 00 00
00 00 28 00 00 00 00 00
input 1: 00 00 28 5C 00 00 00 00
00 00 28 5C 00 00 00 00
input 1: 00 00 5C 00 00 00 00 00
00 00 5C 00 00 00 00 00
input 1: 00 00 5C 5D 00 00 00 00
00 00 5C 5D 00 00 00 00
input 1: 00 00 5D 00 00 00 00 00
00 00 5D 00 00 00 00 00
input 1: 00 00 5D 5E 00 00 00 00
00 00 5D 5E 00 00 00 00
input 1: 00 00 5E 00 00 00 00 00
00 00 5E 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 02 00 00 00 00 00 00 00
02 00 00 00 00 00 00 00
input 1: 02 00 64 00 00 00 00 00
02 00 64 00 00 00 00 00
input 1: 00 00 64 00 00 00 00 00
00 00 64 00 00 00 00 00
input 1: 00 00 64 1D 00 00 00 00
00 00 64 1D 00 00 00 00
input 1: 00 00 1D 00 00 00 00 00
00 00 1D 00 00 00 00 00
input 1: 00 00 1D 1B 00 00 00 00
00 00 1D 1B 00 00 00 00
input 1: 00 00 1B 00 00 00 00 00
00 00 1B 00 00 00 00 00
input 1: 00 00 1B 06 00 00 00 00
00 00 1B 06 00 00 00 00
input 1: 00 00 06 00 00 00 00 00
00 00 06 00 00 00 00 00
input 1: 00 00 06 19 00 00 00 00
00 00 06 19 00 00 00 00
input 1: 00 00 19 00 00 00 00 00
00 00 19 00 00 00 00 00
input 1: 00 00 05 00 00 00 00 00
00 00 05 00 00 00 00 00
input 1: 00 00 05 11 00 00 00 00
00 00 05 11 00 00 00 00
input 1: 00 00 11 00 00 00 00 00
00 00 11 00 00 00 00 00
input 1: 00 00 11 10 00 00 00 00
00 00 11 10 00 00 00 00
input 1: 00 00 10 00 00 00 00 00
00 00 10 00 00 00 00 00
input 1: 00 00 10 36 00 00 00 00
00 00 10 36 00 00 00 00
input 1: 00 00 36 00 00 00 00 00
00 00 36 00 00 00 00 00
input 1: 00 00 36 37 00 00 00 00
00 00 36 37 00 00 00 00
input 1: 00 00 37 00 00 00 00 00
00 00 37 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 38 00 00 00 00 00
00 00 38 00 00 00 00 00
input 1: 20 00 38 00 00 00 00 00
20 00 38 00 00 00 00 00
input 1: 20 00 00 00 00 00 00 00
20 00 00 00 00 00 00 00
input 1: 20 00 52 00 00 00 00 00
20 00 52 00 00 00 00 00
input 1: 00 00 52 00 00 00 00 00
00 00 52 00 00 00 00 00
input 1: 00 00 59 00 00 00 00 00
00 00 59 00 00 00 00 00
input 1: 00 00 5A 00 00 00 00 00
00 00 5A 00 00 00 00 00
input 1: 00 00 5A 5B 00 00 00 00
00 00 5A 5B 00 00 00 00
input 1: 00 00 5B 00 00 00 00 00
00 00 5B 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 01 00 00 00 00 00 00 00
01 00 00 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 08 00 00 00 00 00 00 00
08 00 00 00 00 00 00 00
input 1: 0C 00 00 00 00 00 00 00
0C 00 00 00 00 00 00 00
input 1: 04 00 00 00 00 00 00 00
04 00 00 00 00 00 00 00
input 1: 00 00 2C 00 00 00 00 00
00 00 2C 00 00 00 00 00
input 1: 40 00 2C 00 00 00 00 00
40 00 2C 00 00 00 00 00
input 1: 40 00 00 00 00 00 00 00
40 00 00 00 00 00 00 00
input 1: 40 00 65 00 00 00 00 00
40 00 65 00 00 00 00 00
input 1: 00 00 65 00 00 00 00 00
00 00 65 00 00 00 00 00
input 1: 10 00 65 00 00 00 00 00
10 00 65 00 00 00 00 00
input 1: 10 00 00 00 00 00 00 00
10 00 00 00 00 00 00 00
input 1: 10 00 50 00 00 00 00 00
10 00 50 00 00 00 00 00
input 1: 00 00 50 00 00 00 00 00
00 00 50 00 00 00 00 00
input 1: 00 00 51 00 00 00 00 00
00 00 51 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 4F 00 00 00 00 00
00 00 4F 00 00 00 00 00
input 1: 00 00 62 00 00 00 00 00
00 00 62 00 00 00 00 00
input 1: 00 00 62 63 00 00 00 00
00 00 62 63 00 00 00 00
input 1: 00 00 63 00 00 00 00 00
00 00 63 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
« Last Edit: Sun, 16 July 2023, 19:11:16 by Ko$tello »

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #874 on: Sun, 16 July 2023, 22:27:34 »
Just updated github repo and Keymap Editor.


You can get firmware compatible to TaranVH/2nd-keyboard F24-prefix here temporarily.
https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/binary

You can refer this code and build firmware for other versions if needed.
https://github.com/tmk/tmk_keyboard/blob/master/converter/usb_usb/unimap_TaranVH_F24.c

Thanks

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #875 on: Mon, 17 July 2023, 01:25:44 »
Thanks a lot for your help, Hasu.
I tried the firmware from your last post and it works  :thumb:
There are two keys that don't work: "Fn" and the second "\" located next to "Z" (for some reason this keyboard has two "\" keys)

I would definitely try to create F23 and F22 versions (with and without modifiers). Not sure if I'm capable of doing that ;D Taran's tutorial looked like a foreign language to me.
Anyway, thanks again. I will email you to order more converters.

P.S.
If someone is looking for a compact wireless marco keyboard at an affordable price, I highly recommend Rapoo 9300M. Build quality is great and you can buy it for $20 USD.

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #876 on: Wed, 19 July 2023, 07:39:51 »
Thanks a lot for your help, Hasu.
I tried the firmware from your last post and it works  :thumb:
There are two keys that don't work: "Fn" and the second "\" located next to "Z" (for some reason this keyboard has two "\" keys)

This converter can't handle Fn key, see 'Limitation' section in the first post.


Post debug prints when the "\" key is pressed. And post pic of your keyboard, I can't find Rapoo 9300M with the key.

What's your keyboard layout on your computer? Try setting UK layout or any european layout.


Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #877 on: Wed, 19 July 2023, 17:20:15 »
Thanks for your reply, Hasu.
Both "\" keys seem to be working fine with debug firmware. Please see the output below:
Code: [Select]
Waiting for device:....
Listening:

TMK:002537/LUFA:d6a7df/UHS2:8be20f

USB configured.

Loop start.
usb_state: 12
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:03
Cnf:01
bIfaceNum:02
bNumIface:00

Interface:01
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00

Interface:02
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00
BM configured
host.Task: 2323
usb_state: 90
speed: full
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 31 00 00 00 00 00
00 00 31 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 64 00 00 00 00 00
00 00 64 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 31 00 00 00 00 00
00 00 31 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
input 1: 00 00 64 00 00 00 00 00
00 00 64 00 00 00 00 00
input 1: 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00

The issue appears when I use "usb_usb_unimap_TaranVH_F24.hex" and launch Taran's AHK script.
The right "\" key shows the tooltip, and the left one just sends "\". Please see the photo of the keyboard below.
I have two layouts on my PC: English(Australia) and Russian. I've been testing in English(Australia) layout.
300687-0

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #878 on: Wed, 19 July 2023, 18:28:14 »
Yes, the keys works as expected in USB/HID level.

That keyboard layout looks strange to me.
I don't know much but it does not seem to be standard for Russian/Cyrillic layout. Does normal Russian keyboard have the keys?
(If you are Russian you should know)

The keys are specific to ISO keyboard layout and Russian is not ISO as far as know. https://en.wikipedia.org/wiki/Keyboard_layout#Physical_layouts
As said before you should use european layout like UK, German, French... English and Russian layout won't recognize the keys.

If you don't care original key behaviour you can remap the key to F13 and F14 for example.
https://github.com/tmk/tmk_keyboard/wiki/FAQ-Keymap-Editor#how-to-edit-firmware-not-officially-suppored

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #879 on: Thu, 20 July 2023, 21:59:32 »
Hi Hasu,

This isn't a standard Cyrillic layout, but all good I ordered a purely English version of the same keyboard. It's not going to have that key.

As I mentioned earlier I need F22-F24 versions of HEX file with and without modifiers. So I was trying to make them over the last two days.
Initially, I was following Taran's manual from here:
https://github.com/TaranVH/2nd-keyboard/tree/master/HASU_USB
on the last step, I realised that it doesn't work that way anymore.

Then I found QMK docs here:
https://docs.qmk.fm/#/newbs_getting_started?id=linux
while I was able to compile the default "keymap.c", I didn't have success with "unimap_TaranVH_F24.c" I found in your GitHub.

Then, I found some instructions here:
https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb
but they also don't work for me.

It all gets so confusing with most of the documentation not being up to date.
I was wondering if you can point me to the right way of compiling HEX files from a keymap file.

Thanks in advance. 

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #880 on: Fri, 21 July 2023, 00:06:58 »
 I have not tried TaranVH's setup and not used QMK build system closely. I don't know the both much, to be honest.

I can support TMK firmware build only.

See this wiki for general info.
https://github.com/tmk/tmk_keyboard/wiki#build-firmware

You can build TMK firmware with unimap_TaranVH_F24.c with commands below, as the file indicates.
https://github.com/tmk/tmk_keyboard/blob/master/converter/usb_usb/unimap_TaranVH_F24.c#L5-L6


Code: [Select]
$ make -f Makefile.unimap KEYMAP=TaranVH_F24 clean
$ make -f Makefile.unimap KEYMAP=TaranVH_F24

You need to just replace 'F24' with 'F23' in the file for F23 firmwares, I think.



Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #881 on: Fri, 21 July 2023, 01:05:49 »
Ko$tello,
Let me know if you still have a trouble with building firmware with the instruction.
I'll build F23 and F22 firmware for you some later.

I think the fix will be back ported to QMK later in the end.  You can wait for it if you prefer QMK.

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #882 on: Fri, 21 July 2023, 01:20:40 »
I don't really have any preferences. Just want to make it work.
I tried using the two "make" commands you just mentioned. The first one works, the second one gives me the following error:
Code: [Select]
sh: 1: avr-gcc: not found
make: *** [../../tmk_core/rules.mk:410: gccversion] Error 127

Do you happen to know what this could be?
« Last Edit: Fri, 21 July 2023, 03:24:54 by Ko$tello »

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #883 on: Fri, 21 July 2023, 21:32:17 »
You need to setup biuld environment for compiling source codes.
AVR GCC is should be installed on your computer, it includes avr-gcc and many commands.
https://github.com/tmk/tmk_keyboard/wiki#build-environment

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #884 on: Tue, 01 August 2023, 22:43:55 »
Ko$tello,

You can find prebuilt firmware files for TaranVH keymap with prefix F22, F23 and F24 now.
https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/binary

Offline whereami

  • Posts: 2
    • my current location
Re: TMK USB to USB keyboard converter
« Reply #885 on: Mon, 14 August 2023, 18:29:10 »
Interesting having to read what everyone is saying

Offline Ko$tello

  • Posts: 10
Re: TMK USB to USB keyboard converter
« Reply #886 on: Mon, 28 August 2023, 18:06:28 »
Ko$tello,

You can find prebuilt firmware files for TaranVH keymap with prefix F22, F23 and F24 now.
https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/binary

Thanks a lot, Hasu! Much appreciated 🙏.
I wasn't notified about your reply on this topic for some reason.

Offline DirtyGingy

  • Posts: 168
Re: TMK USB to USB keyboard converter
« Reply #887 on: Wed, 06 September 2023, 15:09:29 »
I know these hit 1up keyboards a few years back, are they ever coming back?

Offline qk6339zmdm

  • Posts: 19
Re: TMK USB to USB keyboard converter
« Reply #888 on: Fri, 15 September 2023, 22:58:15 »

Offline undofen

  • Posts: 1
Re: TMK USB to USB keyboard converter
« Reply #889 on: Fri, 09 February 2024, 06:34:23 »

I'm trying the converter on the keymouse (https://keymouse.com/), but it doesn't work, which I knew was very likely since there is no mouse support.

It also seems, the keymouse isn't 'boot' protocol.

hid_listen:
Code: [Select]
////////////////////////////
// USB_desc_dump
// Address: 01
// Lowspeed: 00

// Devicer dump:
12 01 00 02 00 00 00 40 C4 10 33 8D 03 02 01 02
03 01

// Device:
bLength: 12
bDescriptorType: 01
bcdUSB: 0200
bDeviceClass: 00
bDeviceSubClass: 00
bDeviceProtocol: 00
bMaxPacketSize0: 40
idVendor: 10C4
idProduct: 8D33
bcdDevice: 0203
iManufacturer: 01
iProduct: 02
iSerialNumber: 03
bNumConfigurations: 01

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

// iManufacturer: String1(0409): len: 14
// 14 03 5A 00 5A 00 2C 00 20 00 49 00 6E 00 63 00
// 2E 00 00 00
// ZZ, Inc..

// iProduct: String2(0409): len: 2C
// 2C 03 4B 00 65 00 79 00 4D 00 6F 00 75 00 73 00
// 65 00 20 00 41 00 6C 00 70 00 68 00 61 00 20 00
// 2D 00 20 00 4C 00 65 00 66 00 74 00
// KeyMouse Alpha - Left

// iSerialNumber: String3(0409): len: 14
// 14 03 4B 00 4D 00 2D 00 32 00 32 00 33 00 39 00
// 2D 00 4C 00
// KM-2239-L

// Config0 dump: len: 0029
09 02 29 00 01 01 00 A0 32 09 04 00 00 02 03 00
00 00 09 21 01 01 00 01 22 E7 00 07 05 81 03 40
00 01 07 05 01 03 40 00 01

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

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

// HID:
bLength: 09
bDescriptorType: 21
bcdHID: 0101
bCountryCode: 00
bNumDescriptors: 01
bDescrType: 22
wDescriptorLength: 00E7

// Report0 dump: len: 00E7
05 01 09 06 A1 01 85 03 75 01 95 08 05 07 19 E0
29 E7 15 00 25 01 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 0A 75 08 15 00 26 FF 00 05 07 19 00 29 FF 81
00 C0 05 01 09 02 A1 01 85 04 09 01 A1 00 05 09
19 01 29 08 15 00 25 01 75 01 95 08 81 02 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 05 0C 0A 38
02 15 81 25 7F 75 08 81 06 C0 C0 06 00 FF 09 01
A1 01 85 02 95 3A 75 08 15 00 26 FF 00 09 01 81
02 85 01 95 3A 75 08 15 00 26 FF 00 09 01 91 02
C0 05 0C 09 01 A1 01 85 05 95 04 75 10 15 00 27
FF FF 00 00 19 00 2A FF FF 81 00 C0 05 01 09 80
A1 01 85 06 95 04 75 10 15 00 27 FF FF 00 00 19
00 2A FF FF 81 00 C0

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

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

https://eleccelerator.com/usbdescreqparser/ output:
Code: [Select]
0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x06,        // Usage (Keyboard)
0xA1, 0x01,        // Collection (Application)
0x85, 0x03,        //   Report ID (3)
0x75, 0x01,        //   Report Size (1)
0x95, 0x08,        //   Report Count (8)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0xE0,        //   Usage Minimum (0xE0)
0x29, 0xE7,        //   Usage Maximum (0xE7)
0x15, 0x00,        //   Logical Minimum (0)
0x25, 0x01,        //   Logical Maximum (1)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01,        //   Report Count (1)
0x75, 0x08,        //   Report Size (8)
0x81, 0x03,        //   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x05,        //   Report Count (5)
0x75, 0x01,        //   Report Size (1)
0x05, 0x08,        //   Usage Page (LEDs)
0x19, 0x01,        //   Usage Minimum (Num Lock)
0x29, 0x05,        //   Usage Maximum (Kana)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x01,        //   Report Count (1)
0x75, 0x03,        //   Report Size (3)
0x91, 0x03,        //   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x0A,        //   Report Count (10)
0x75, 0x08,        //   Report Size (8)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x05, 0x07,        //   Usage Page (Kbrd/Keypad)
0x19, 0x00,        //   Usage Minimum (0x00)
0x29, 0xFF,        //   Usage Maximum (0xFF)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection
0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x02,        // Usage (Mouse)
0xA1, 0x01,        // Collection (Application)
0x85, 0x04,        //   Report ID (4)
0x09, 0x01,        //   Usage (Pointer)
0xA1, 0x00,        //   Collection (Physical)
0x05, 0x09,        //     Usage Page (Button)
0x19, 0x01,        //     Usage Minimum (0x01)
0x29, 0x08,        //     Usage Maximum (0x08)
0x15, 0x00,        //     Logical Minimum (0)
0x25, 0x01,        //     Logical Maximum (1)
0x75, 0x01,        //     Report Size (1)
0x95, 0x08,        //     Report Count (8)
0x81, 0x02,        //     Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01,        //     Usage Page (Generic Desktop Ctrls)
0x09, 0x30,        //     Usage (X)
0x09, 0x31,        //     Usage (Y)
0x16, 0x01, 0x80,  //     Logical Minimum (-32767)
0x26, 0xFF, 0x7F,  //     Logical Maximum (32767)
0x75, 0x10,        //     Report Size (16)
0x95, 0x02,        //     Report Count (2)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x38,        //     Usage (Wheel)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x75, 0x08,        //     Report Size (8)
0x95, 0x01,        //     Report Count (1)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x0C,        //     Usage Page (Consumer)
0x0A, 0x38, 0x02,  //     Usage (AC Pan)
0x15, 0x81,        //     Logical Minimum (-127)
0x25, 0x7F,        //     Logical Maximum (127)
0x75, 0x08,        //     Report Size (8)
0x81, 0x06,        //     Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              //   End Collection
0xC0,              // End Collection
0x06, 0x00, 0xFF,  // Usage Page (Vendor Defined 0xFF00)
0x09, 0x01,        // Usage (0x01)
0xA1, 0x01,        // Collection (Application)
0x85, 0x02,        //   Report ID (2)
0x95, 0x3A,        //   Report Count (58)
0x75, 0x08,        //   Report Size (8)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x09, 0x01,        //   Usage (0x01)
0x81, 0x02,        //   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x85, 0x01,        //   Report ID (1)
0x95, 0x3A,        //   Report Count (58)
0x75, 0x08,        //   Report Size (8)
0x15, 0x00,        //   Logical Minimum (0)
0x26, 0xFF, 0x00,  //   Logical Maximum (255)
0x09, 0x01,        //   Usage (0x01)
0x91, 0x02,        //   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0,              // End Collection
0x05, 0x0C,        // Usage Page (Consumer)
0x09, 0x01,        // Usage (Consumer Control)
0xA1, 0x01,        // Collection (Application)
0x85, 0x05,        //   Report ID (5)
0x95, 0x04,        //   Report Count (4)
0x75, 0x10,        //   Report Size (16)
0x15, 0x00,        //   Logical Minimum (0)
0x27, 0xFF, 0xFF, 0x00, 0x00,  //   Logical Maximum (65534)
0x19, 0x00,        //   Usage Minimum (Unassigned)
0x2A, 0xFF, 0xFF,  //   Usage Maximum (0xFFFF)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection
0x05, 0x01,        // Usage Page (Generic Desktop Ctrls)
0x09, 0x80,        // Usage (Sys Control)
0xA1, 0x01,        // Collection (Application)
0x85, 0x06,        //   Report ID (6)
0x95, 0x04,        //   Report Count (4)
0x75, 0x10,        //   Report Size (16)
0x15, 0x00,        //   Logical Minimum (0)
0x27, 0xFF, 0xFF, 0x00, 0x00,  //   Logical Maximum (65534)
0x19, 0x00,        //   Usage Minimum (Undefined)
0x2A, 0xFF, 0xFF,  //   Usage Maximum (0xFFFF)
0x81, 0x00,        //   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0,              // End Collection

// 231 bytes

// best guess: USB HID Report Descriptor

Anything else to try or is this a no go?

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #890 on: Sat, 10 February 2024, 00:00:58 »
According to the descriptor the keyboard does not support 'HID Boot protocol'. It won't work with the converter.

Offline pupmonster

  • Posts: 21
Re: TMK USB to USB keyboard converter
« Reply #891 on: Sat, 17 February 2024, 07:24:10 »
I am using a Unicomp Mini M 2023 Japanese keyboard. I have an oldish USB2USB converter from 2018 and it worked without any modification. But then I tried to modify my keyboard layout and all keys stopped working. I am using the converter so that the Japanese keys such as pc_katakana are reported to the non-Japanese Windows operating system (EN UK).

Here is the purchase page for the Unicomp keyboard:

https://www.pckeyboard.com/page/product/MINI_M

The modification was made using the  TMK Keymap Editor and the generated hex file from there. Flashing was done with QMK Toolbox with ATmega32U4 selected.

Subsequently I flashed usb_usb_debug.hex

usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
bNumEP:02
Cnf:01
bIfaceNum:00
bNumIface:00

Interface:00
SET_PROTOCOL: 00
SET_IDLE: 00
RPIPE: 00
RWU: 00
BM configured
host.Task: 2318
usb_state: 90
speed: full

and see that "ignored" on all keypresses is reported.

Finally, I tried to flash usb_desc_dump.hex via QMK Toolbox, but I got an Error reading line 1.

The information about the keyboard itself :

$ lsusb -d 17f6:1862 -v

Bus 001 Device 004: ID 17f6:1862 Unicomp, Inc. U AP1_4_87k_Kbrd_v7_53
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x17f6 Unicomp, Inc.
  idProduct          0x1862 U AP1_4_87k_Kbrd_v7_53
  bcdDevice            7.53
  iManufacturer           1 Unicomp Inc
  iProduct                2 U AP1_4_87k_Kbrd_v7_53
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          3
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    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              4
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      63
          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     0x000c  1x 12 bytes
        bInterval               2


Oh, and one more thing: The converter used to light up, and now it does not.

Any help is appreciated.
« Last Edit: Sat, 17 February 2024, 08:17:38 by pupmonster »

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #892 on: Sun, 18 February 2024, 22:01:07 »
Its debug log and USB descriptors seem to be normal. I don't see any reason why the converter doesn't work.

If old firmware from 2018 worked with the Mini M, one of changes(bug fixes) applied since then can make this problem.

You can find previous versions of prebuilt firmware here.
If you can try some of the firmwares and find the oldest version that doesn't work with the keyboard it would be very helpful.
https://github.com/tmk/tmk_keyboard/commits/master/converter/usb_usb/binary

Offline pupmonster

  • Posts: 21
Re: TMK USB to USB keyboard converter
« Reply #893 on: Sun, 18 February 2024, 23:56:26 »
Thanks much, Using this build from 2018 worked:

https://github.com/tmk/tmk_keyboard/commit/d0b91ca319074de9e9640977c7dfae336adfba3e

Which is good. At least the keyboard works.

Do I understand correctly that I will not be able to update the firmware using TMK Keymap Editor, as that will create firmware expecting newer hardware?


Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #894 on: Mon, 19 February 2024, 02:49:34 »
Thanks for trying.
Could you find the oldest(first) version that doesn't work?



By default, TMK Keymap Eidtor using the latest version of prebuilt firmware hosted in 'master' branch on github.com( https://github.com/tmk/tmk_keyboard/tree/master/converter/usb_usb/binary ).

But you can use any 'unimap' firmware by selecting a HEX file in 'Base Firmware File:' section on Keymap Editor.
If you download the 'usb_usb_unimap.hex' file on your local computer you can select it using File chooser.

Or just put this URL in 'URL' textarea on Keymap Editor if you want to use the version on github.com.
https://raw.githubusercontent.com/tmk/tmk_keyboard/d0b91ca319074de9e9640977c7dfae336adfba3e/converter/usb_usb/binary/usb_usb_unimap.hex

306201-0
« Last Edit: Mon, 19 February 2024, 02:52:53 by hasu »

Offline pupmonster

  • Posts: 21
Re: TMK USB to USB keyboard converter
« Reply #895 on: Mon, 19 February 2024, 13:44:47 »
This is the first oldest version that does not work:

https://github.com/tmk/tmk_keyboard/commit/385ede5722dd6a1c23a27fbb13aa0e274497f54c

Thanks for your help!

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #896 on: Tue, 27 February 2024, 02:06:04 »
pupmonster,
Can you try these attached firmwares to narrow possible fault points?
Just let me know whether they work or not.

* miniM_a696ec.hex (72.52 kB - downloaded 10 times.)
* miniM_cd8762.hex (72.55 kB - downloaded 14 times.)

Offline pupmonster

  • Posts: 21
Re: TMK USB to USB keyboard converter
« Reply #897 on: Wed, 28 February 2024, 20:30:19 »
Hasu, both files work. :)   All key presses register.

Offline hasu

  • Thread Starter
  • Posts: 3472
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: TMK USB to USB keyboard converter
« Reply #898 on: Wed, 28 February 2024, 23:15:40 »
Thanks for testing.
The problem seems to be related to Hub code somewhat at least.

Again, can you try two attached firmwares?

* miniM_ab4b44.hex (72.52 kB - downloaded 14 times.)
* miniM_woHubFix.hex (61.97 kB - downloaded 13 times.)

Offline pupmonster

  • Posts: 21
Re: TMK USB to USB keyboard converter
« Reply #899 on: Thu, 29 February 2024, 00:42:31 »
Hasu, here are the results:
miniM_ab4b44.hex:  All keys register
miniM_woHubFix.hex: No keys register