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

0 Members and 1 Guest are viewing this topic.

Offline hernick

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #300 on: Thu, 12 April 2018, 15:50:27 »
So I made my own USB2USB converter and it worked great on the first try! I was a little worried because the tiny MAX3421 is a pain to solder, I bent a few spare pins, and I had pad wetting issues - I think my flux is getting old, and SnBiAg solder doesn't wet that well to begin with. Anyway, it doesn't look good, but it's everything I hoped for.

What I needed out of the USB2USB converter is to take a standard QWERTY keyboard and connect it to the atrocious Konica Minolta C552 copier, which, when set to french language, requires an AZERTY keyboard! Whoever developed that copier around 2010 somehow didn't realise that there are more keyboard layouts than AZERTY, and that maybe hardcoding keyboard layouts by UI language isn't such a good idea... Here in Québec, we use QWERTY and we speak french. So, I'm using TMK to transcode QWERTY to AZERTY. What a pain!

I used the LinDon Tech 68 key mechanical keyboard, which is NKRO but I can confirm it works perfectly with TMK. Very nice compact mechanical keyboard.

Here is my QWERTY to AZERTY keymap: https://goo.gl/zz2DUx

The BOM on github seemed a little out of date, so I subbed the 18pF caps with 10pF as indicated on the latest board revision, and I couldn't source the ALPS switch so I used CKN10502CT-ND instead.

Anyway, thanks a lot to hasu who made this project possible! Great work

Offline MandrewDavis

  • Posts: 461
  • Location: Fl
  • Chasin' That Neon Rainbow
Re: USB to USB keyboard converter
« Reply #301 on: Sun, 22 April 2018, 14:29:56 »
Did this a while ago (with zero issues) but forgot to post, please excuse the shoddy picture.



A little while after receiving the USB-USB converter and using it with my Realforce 87u, I realized it how much I would prefer an internal converter. Turns out, once you de-solder the connectors it fits perfectly between the top housing and RF PCB near the top-right corner. As you can see it was completely reversible and just acts as a go-between. 

The part numbers are as follows:
Male JST EH series connector: B4B-EH-A
Female JST EH series connector: EHR-4
6" JST stranded precrimped wires: ASEHSEH22K152 (2 and 12 inch lengths also available)

The colored solid wires in the picture are just soldered on the terminal connectors and heatshrinked.
I would create a barrier between the converter and RF PCB but you get the wire lengths right, it will sit without the need for adhesive.
I've come to view humanity as predominantly monkey business.

My Classifieds Thread

Offline billm

  • Posts: 99
  • Location: PDX, OR
Re: USB to USB keyboard converter
« Reply #302 on: Sun, 20 May 2018, 00:40:58 »
Damn. My new ace pad tech hall effect board appears to be unsupported. I'm just now getting into programmable boards so I actually don't know much about it. I've heard the terms "SoNiX" and "Cortex M0" in relation to the controller, but I don't know much else about it.

Stupid me, I just assumed that all usb keyboards sent the same codes. It's also LED backlit like some of the other unsupported devices. No NKRO according to what little documentation is provided.
« Last Edit: Sun, 20 May 2018, 11:37:16 by billm »
If it's not ALPS it's crap!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #303 on: Sun, 20 May 2018, 17:52:31 »
Thanks for feedback.
Do you have a link to manufacturer's product page and the documentation? It would be appriciated. I couldn't useful info for the device with my quick search.

This will be addred to 'Incompatible Keyboards' in the first post.

Offline billm

  • Posts: 99
  • Location: PDX, OR
Re: USB to USB keyboard converter
« Reply #304 on: Mon, 21 May 2018, 11:56:59 »
http://www.ace-pad-tech.com/pd.jsp?id=188#_pp=2_2
I believe this is the OEM version of the 61 key XMIT hall effect keyboard here:

http://www.xmitkeyboards.com/wp-content/uploads/2016/11/XMIT-Keyboards-Manual-Letter.pdf

"The keyboard is built   around the SoNiXSN32F240/230/220 Series 32-Bit Cortex-M0 microcontroller" says the doc above.

http://www.sonix.com.tw/category-en-947

According to the Chyros review here, the board doesn't support NKRO, but he seems to be claiming that it supports more than 6KRO:
« Last Edit: Mon, 21 May 2018, 18:17:56 by billm »
If it's not ALPS it's crap!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #305 on: Mon, 21 May 2018, 18:58:58 »
Thank you for the infos!

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #306 on: Tue, 22 May 2018, 14:41:13 »
How do I use the magic combos? Are they supposed to work in a terminal?

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #307 on: Wed, 23 May 2018, 14:23:23 »
How do I use the magic combos? Are they supposed to work in a terminal?


In firmware of this converter in Keymap Editor the magic command is disabled deu to firmware size and precaution against accidental misuse. You have to build firmware with enabling it by a line below in Makefile. The commands require flash size quite a bit you will have to disable other features like MOUSEKEY or EXTRAKEY.

Code: [Select]
COMMAND_ENABLE ?= yes

yes, hid_listen on terminal is useful to try the magic commands.
« Last Edit: Wed, 23 May 2018, 14:27:14 by hasu »

Offline Mr_BeastQuake

  • Posts: 639
    • Reddit
Re: USB to USB keyboard converter
« Reply #308 on: Thu, 24 May 2018, 21:15:58 »
I seem to be having a large amount of trouble using the "easy method". I've used Hasu controllers before and just can't remember the steps.

1) I design keymap on keymap editor, download and save.

2) Upload. . . how do I load the keymap? Unplug, press and hold then plug in, load keymap? Click load keymap and should be good? Load keymap and restart?


**Nevermind**

1) Make layout and download .hex (save as .hex file)
2) Install Flip
3) Press button on converter
4) Open Flip> Select > ATmega32u4
5) Select a communication medium (USB cord icon)
6) Load hex file (arrow down on book icon)
7) Run
8) Unplug and replug and presto.
« Last Edit: Thu, 24 May 2018, 21:30:03 by Mr_BeastQuake »

Offline rigdeback

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #309 on: Wed, 13 June 2018, 05:59:06 »
Anyone tested the USB2USB adapter with Matias Ergo Pro (PC-version)?

Offline MandrewDavis

  • Posts: 461
  • Location: Fl
  • Chasin' That Neon Rainbow
Re: USB to USB keyboard converter
« Reply #310 on: Wed, 13 June 2018, 12:43:16 »
I seem to be having a large amount of trouble using the "easy method". I've used Hasu controllers before and just can't remember the steps.

1) I design keymap on keymap editor, download and save.

2) Upload. . . how do I load the keymap? Unplug, press and hold then plug in, load keymap? Click load keymap and should be good? Load keymap and restart?


**Nevermind**

1) Make layout and download .hex (save as .hex file)
2) Install Flip
3) Press button on converter
4) Open Flip> Select > ATmega32u4
5) Select a communication medium (USB cord icon)
6) Load hex file (arrow down on book icon)
7) Run
8) Unplug and replug and presto.

I did that for a while but found that downloading dfu-programmer and creating a .bat file is MUCH easier. Here is my code:

Code: [Select]
cd C:\tmk_keyboard\dfu-programmer-win-0.7.2

dfu-programmer.exe atmega32u4 erase --force

dfu-programmer.exe atmega32u4 flash C:\tmk_keyboard\converter\usb_usb\usb_usb.hex

dfu-programmer.exe atmega32u4 reset

This way, all you have to do is compile the .hex and run the .bat file.
I've come to view humanity as predominantly monkey business.

My Classifieds Thread

Offline rigdeback

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #311 on: Fri, 15 June 2018, 00:55:16 »
Anyone tested the USB2USB adapter with Matias Ergo Pro (PC-version)?

Some more information:
Code: [Select]
Linux detection:
Jun 15 07:43:33 esb kernel: [344699.266660] hid-generic 0003:1111:1111.001A: input,hidraw0: USB HID v1.00 Device [Matias Ergo Pro Keyboard] on usb-0000:00:14.0-2.3/input1
Jun 15 07:43:33 esb kernel: [344699.268796] input: Matias Ergo Pro Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.3/1-2.3:1.0/0003:1111:1111.001B/input/input58
Jun 15 07:43:33 esb kernel: [344699.326856] hid-generic 0003:1111:1111.001B: input,hidraw1: USB HID v1.00 Keyboard [Matias Ergo Pro Keyboard] on usb-0000:00:14.0-2.3/input0

lsusb:
Bus 001 Device 024: ID 1111:1111 Pandora International Ltd.
Bus 001 Device 023: ID 05e3:0614 Genesys Logic, Inc.

(The keyboard has a USB hub, I think that is the Genesys part)

sudo usbhid-dump -a 001:024 |grep -v : | xxd -r -p | hidrd-convert -o spec:

Usage Page (Consumer),                  ; Consumer (0Ch)
Usage (Consumer Control),               ; Consumer control (01h, application collection)
Collection (Application),
    Report ID (1),
    Logical Minimum (0),
    Logical Maximum (1),
    Report Size (1),
    Report Count (20),
    Usage (Scan Next Track),            ; Scan next track (B5h, one-shot control)
    Usage (Scan Previous Track),        ; Scan previous track (B6h, one-shot control)
    Usage (Stop),                       ; Stop (B7h, one-shot control)
    Usage (Play Pause),                 ; Play/pause (CDh, one-shot control)
    Usage (Mute),                       ; Mute (E2h, on/off control)
    Usage (Volume Inc),                 ; Volume increment (E9h, re-trigger control)
    Usage (Volume Dec),                 ; Volume decrement (EAh, re-trigger control)
    Usage (AL Consumer Control Config), ; AL consumer control configuration (0183h, selector)
    Usage (AL Email Reader),            ; AL email reader (018Ah, selector)
    Usage (AL Calculator),              ; AL calculator (0192h, selector)
    Usage (AL Local Machine Brwsr),     ; AL local machine browser (0194h, selector)
    Usage (AC Search),                  ; AC search (0221h, selector)
    Usage (AC Home),                    ; AC home (0223h, selector)
    Usage (AC Back),                    ; AC back (0224h, selector)
    Usage (AC Forward),                 ; AC forward (0225h, selector)
    Usage (AC Stop),                    ; AC stop (0226h, selector)
    Usage (AC Refresh),                 ; AC refresh (0227h, selector)
    Usage (AC Bookmarks),               ; AC bookmarks (022Ah, selector)
    Usage (AL Screen Saver),            ; AL screen saver (01B1h, selector)
    Usage (Eject),                      ; Eject (B8h, one-shot control)
    Input (Variable),
    Report Count (4),
    Input (Constant),
End Collection,
Usage Page (Desktop),                   ; Generic desktop controls (01h)
Usage (Sys Control),                    ; System control (80h, application collection)
Collection (Application),
    Report ID (2),
    Usage Page (Desktop),               ; Generic desktop controls (01h)
    Usage Minimum (Sys Power Down),     ; System power down (81h, one-shot control)
    Usage Maximum (Sys Wake Up),        ; System wake up (83h, one-shot control)
    Logical Minimum (0),
    Logical Maximum (1),
    Report Count (3),
    Report Size (1),
    Input (Variable, Relative),
    Report Count (1),
    Report Size (5),
    Input (Constant),
End Collection,
Usage Page (Desktop),                   ; Generic desktop controls (01h)
Usage (Keyboard),                       ; Keyboard (06h, application collection)
Collection (Application),
    Usage Page (Keyboard),              ; Keyboard/keypad (07h)
    Usage Minimum (KB Leftcontrol),     ; Keyboard left control (E0h, dynamic value)
    Usage Maximum (KB Right GUI),       ; Keyboard right GUI (E7h, dynamic value)
    Logical Minimum (0),
    Logical Maximum (1),
    Report Size (1),
    Report Count (8),
    Input (Variable),
    Usage Page (LED),                   ; LEDs (08h)
    Report Size (8),
    Report Count (1),
    Input (Constant),
    Usage Minimum (01h),
    Usage Maximum (05h),
    Report Size (1),
    Report Count (5),
    Output (Variable),
    Report Size (3),
    Report Count (1),
    Output (Constant),
    Usage Page (Keyboard),              ; Keyboard/keypad (07h)
    Logical Minimum (0),
    Logical Maximum (255),
    Usage Minimum (None),               ; No event (00h, selector)
    Usage Maximum (FFh),
    Report Size (8),
    Report Count (12),
    Input,
    Usage Page (FFh),                   ; FFh, reserved
    Usage (03h),
    Report Size (8),
    Report Count (1),
    Input (Variable),
    Usage Page (FFh),                   ; FFh, reserved
    Usage (00h),
    Logical Minimum (-128),
    Logical Maximum (127),
    Report Size (8),
    Report Count (8),
    Feature (Variable),
End Collection


Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #312 on: Fri, 15 June 2018, 03:21:00 »
Anyone tested the USB2USB adapter with Matias Ergo Pro (PC-version)?

Some more information:
Code: [Select]
Linux detection:
Jun 15 07:43:33 esb kernel: [344699.266660] hid-generic 0003:1111:1111.001A: input,hidraw0: USB HID v1.00 Device [Matias Ergo Pro Keyboard] on usb-0000:00:14.0-2.3/input1
Jun 15 07:43:33 esb kernel: [344699.268796] input: Matias Ergo Pro Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.3/1-2.3:1.0/0003:1111:1111.001B/input/input58
Jun 15 07:43:33 esb kernel: [344699.326856] hid-generic 0003:1111:1111.001B: input,hidraw1: USB HID v1.00 Keyboard [Matias Ergo Pro Keyboard] on usb-0000:00:14.0-2.3/input0

lsusb:
Bus 001 Device 024: ID 1111:1111 Pandora International Ltd.
Bus 001 Device 023: ID 05e3:0614 Genesys Logic, Inc.

(The keyboard has a USB hub, I think that is the Genesys part)

sudo usbhid-dump -a 001:024 |grep -v : | xxd -r -p | hidrd-convert -o spec:

Usage Page (Consumer),                  ; Consumer (0Ch)
Usage (Consumer Control),               ; Consumer control (01h, application collection)
Collection (Application),
    Report ID (1),
    Logical Minimum (0),
    Logical Maximum (1),
    Report Size (1),
    Report Count (20),
    Usage (Scan Next Track),            ; Scan next track (B5h, one-shot control)
    Usage (Scan Previous Track),        ; Scan previous track (B6h, one-shot control)
    Usage (Stop),                       ; Stop (B7h, one-shot control)
    Usage (Play Pause),                 ; Play/pause (CDh, one-shot control)
    Usage (Mute),                       ; Mute (E2h, on/off control)
    Usage (Volume Inc),                 ; Volume increment (E9h, re-trigger control)
    Usage (Volume Dec),                 ; Volume decrement (EAh, re-trigger control)
    Usage (AL Consumer Control Config), ; AL consumer control configuration (0183h, selector)
    Usage (AL Email Reader),            ; AL email reader (018Ah, selector)
    Usage (AL Calculator),              ; AL calculator (0192h, selector)
    Usage (AL Local Machine Brwsr),     ; AL local machine browser (0194h, selector)
    Usage (AC Search),                  ; AC search (0221h, selector)
    Usage (AC Home),                    ; AC home (0223h, selector)
    Usage (AC Back),                    ; AC back (0224h, selector)
    Usage (AC Forward),                 ; AC forward (0225h, selector)
    Usage (AC Stop),                    ; AC stop (0226h, selector)
    Usage (AC Refresh),                 ; AC refresh (0227h, selector)
    Usage (AC Bookmarks),               ; AC bookmarks (022Ah, selector)
    Usage (AL Screen Saver),            ; AL screen saver (01B1h, selector)
    Usage (Eject),                      ; Eject (B8h, one-shot control)
    Input (Variable),
    Report Count (4),
    Input (Constant),
End Collection,
Usage Page (Desktop),                   ; Generic desktop controls (01h)
Usage (Sys Control),                    ; System control (80h, application collection)
Collection (Application),
    Report ID (2),
    Usage Page (Desktop),               ; Generic desktop controls (01h)
    Usage Minimum (Sys Power Down),     ; System power down (81h, one-shot control)
    Usage Maximum (Sys Wake Up),        ; System wake up (83h, one-shot control)
    Logical Minimum (0),
    Logical Maximum (1),
    Report Count (3),
    Report Size (1),
    Input (Variable, Relative),
    Report Count (1),
    Report Size (5),
    Input (Constant),
End Collection,
Usage Page (Desktop),                   ; Generic desktop controls (01h)
Usage (Keyboard),                       ; Keyboard (06h, application collection)
Collection (Application),
    Usage Page (Keyboard),              ; Keyboard/keypad (07h)
    Usage Minimum (KB Leftcontrol),     ; Keyboard left control (E0h, dynamic value)
    Usage Maximum (KB Right GUI),       ; Keyboard right GUI (E7h, dynamic value)
    Logical Minimum (0),
    Logical Maximum (1),
    Report Size (1),
    Report Count (8),
    Input (Variable),
    Usage Page (LED),                   ; LEDs (08h)
    Report Size (8),
    Report Count (1),
    Input (Constant),
    Usage Minimum (01h),
    Usage Maximum (05h),
    Report Size (1),
    Report Count (5),
    Output (Variable),
    Report Size (3),
    Report Count (1),
    Output (Constant),
    Usage Page (Keyboard),              ; Keyboard/keypad (07h)
    Logical Minimum (0),
    Logical Maximum (255),
    Usage Minimum (None),               ; No event (00h, selector)
    Usage Maximum (FFh),
    Report Size (8),
    Report Count (12),
    Input,
    Usage Page (FFh),                   ; FFh, reserved
    Usage (03h),
    Report Size (8),
    Report Count (1),
    Input (Variable),
    Usage Page (FFh),                   ; FFh, reserved
    Usage (00h),
    Logical Minimum (-128),
    Logical Maximum (127),
    Report Size (8),
    Report Count (8),
    Feature (Variable),
End Collection


I don't have the keyboard but it looks like it has N-key rollover, media keys and vendor specific reports. Note that those funcy features aren't  supported by the covnerter as its 'Limitations' described in the first post. It supports only 6KRO mode.

If the keyobard works well with BIOS or UEFI(try with reboot, cold boot and replug), it means it has proper 6KRO mode implementation. In this case you can speculate the converter is likely to work with the keyboard.


Offline Harima

  • Posts: 44
Re: USB to USB keyboard converter
« Reply #313 on: Sun, 24 June 2018, 23:49:51 »
@hasu

Hi. I'm trying to make a new keymap for this keyboard



I'm confused as how to go about mapping the left side. They give the same keycodes as the regular keys, for example WASD on the left cluster give the same keycodes as WASD in the rows and columns. Do I enter them twice or do I just ignore that cluster and map the right side? Can I have the clusters of keys differentiate from the rows and columns keys even though they give the same keycodes?

Thanks in advance.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #314 on: Mon, 25 June 2018, 00:19:26 »
If those keys in the left cluster spit out keycodes of WASD, they are indentical to WASD keys. You can't differentiate them from WASD keys.

EDIT: oops, the pic are showed correctly now.
EDIT2: No. something wrong still seems to happen with imgur :(

For those who can't see the pic above, this is one Harima posted.


Folow this link when the pic isn't loaded: http://i.imgur.com/JKjDjKz.jpg
« Last Edit: Tue, 26 June 2018, 19:46:21 by hasu »

Offline Blaise170

  • * Esteemed Elder
  • Posts: 1332
  • Location: Boston, MA
  • ALPS キーボード
    • XYZ
Re: USB to USB keyboard converter
« Reply #315 on: Mon, 25 June 2018, 08:22:00 »
Harima's image makes my browser refresh and I can't see yours at all Hasu.
I proxy anything including keyboards (キーボード / 鍵盤), from both Japan (日本) and China (中國). For more information, you may visit my dedicated webpage here: https://www.keyboards.es/proxying.html

View my current and past keyboards here: https://deskthority.net/wiki/User:Blaise170

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #316 on: Tue, 26 June 2018, 19:50:20 »
Harima's image makes my browser refresh and I can't see yours at all Hasu.

imgur may changed something or their policy of TOS about embeding images.
https://geekhack.org/index.php?topic=33106.msg2628263#msg2628263

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #317 on: Wed, 27 June 2018, 08:23:25 »
Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.
« Last Edit: Wed, 27 June 2018, 08:25:54 by Giorgio »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #318 on: Wed, 27 June 2018, 18:15:53 »
Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.

Unfortunately the keyobard seems to have crappy firmware :( Do you see the behaviour without converter?
See this thread for more info.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html
« Last Edit: Wed, 27 June 2018, 18:18:54 by hasu »

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #319 on: Thu, 28 June 2018, 02:53:15 »
Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.

Unfortunately the keyobard seems to have crappy firmware :( Do you see the behaviour without converter?
See this thread for more info.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html

That's really unfortunate. Please add the g80-3000 to the list of incompatible keyboards.

Will the g80-1800 have the same incompatibility? What about the g80-8000? Thanks in advance.

I don't see the behaviour without the converter; I've tried to press the keys as specified on your links with no advers effect. I've got windows 10.

Is the usb g80-8000 compatible with the usb_usb converter?

It seems that there are nkro and not nkro versions
"Make sure it's the PS/2 version. The USB version doesn't have NKRO and the macros are all software instead of hardware."
« Last Edit: Thu, 28 June 2018, 04:34:18 by Giorgio »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #320 on: Thu, 28 June 2018, 10:39:21 »
Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.

Unfortunately the keyobard seems to have crappy firmware :( Do you see the behaviour without converter?
See this thread for more info.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html

That's really unfortunate. Please add the g80-3000 to the list of incompatible keyboards.

Will the g80-1800 have the same incompatibility? What about the g80-8000? Thanks in advance.

I don't see the behaviour without the converter; I've tried to press the keys as specified on your links with no advers effect. I've got windows 10.

Is the usb g80-8000 compatible with the usb_usb converter?

It seems that there are nkro and not nkro versions
"Make sure it's the PS/2 version. The USB version doesn't have NKRO and the macros are all software instead of hardware."

Not sure but those keyboards may have same issue because they doesn't seem to have plan to fix firmware for this. Perhaps you had better avoid those keyboard unless you already own them.
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html#p413367

It seems the G80-3000 works on Windows but not on Mac and Linux as the thead indicates, I guess WIndows manage to handle the issue in some way.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html#p395088

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #321 on: Fri, 29 June 2018, 06:37:00 »
Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.

Unfortunately the keyobard seems to have crappy firmware :( Do you see the behaviour without converter?
See this thread for more info.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html

That's really unfortunate. Please add the g80-3000 to the list of incompatible keyboards.

Will the g80-1800 have the same incompatibility? What about the g80-8000? Thanks in advance.

I don't see the behaviour without the converter; I've tried to press the keys as specified on your links with no advers effect. I've got windows 10.

Is the usb g80-8000 compatible with the usb_usb converter?

It seems that there are nkro and not nkro versions
"Make sure it's the PS/2 version. The USB version doesn't have NKRO and the macros are all software instead of hardware."

Not sure but those keyboards may have same issue because they doesn't seem to have plan to fix firmware for this. Perhaps you had better avoid those keyboard unless you already own them.
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html#p413367

It seems the G80-3000 works on Windows but not on Mac and Linux as the thead indicates, I guess WIndows manage to handle the issue in some way.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html#p395088

I've found out that g80-8000 and g80-8040 are 6kro; this means that they work with the converter?

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #322 on: Fri, 29 June 2018, 08:49:09 »
I think so. You can expect it will work at least until 7th key are pressed.

EDIT: but I don't think it is safe idea to buy the Cherry USB keyboard newly.
« Last Edit: Fri, 29 June 2018, 08:52:50 by hasu »

Offline AdrianMan

  • Posts: 83
Re: USB to USB keyboard converter
« Reply #323 on: Sat, 30 June 2018, 09:35:03 »
Hello !

Is this compatible with Leopold FC750R PD TKL ?

I would love to make it programmable somehow :) (I would like to put the converter inside the case)

Thanks !

Offline Harima

  • Posts: 44
Re: USB to USB keyboard converter
« Reply #324 on: Mon, 02 July 2018, 23:30:46 »
Sorry, late reply. Thank you for the info on my keyboard hasu. Now I have something else come up.

Code: [Select]
--output usb_usb.elf -Wl,-Map=usb_usb.map,--cref -Wl,--gc-sections     -lm
obj_usb_usb/common/keymap.o: In function `keymap_fn_to_action':
C:\tmk_keyboard\converter\usb_usb/../../tmk_core/common/keymap.c:246: undefined reference to `fn_actions'
C:\tmk_keyboard\converter\usb_usb/../../tmk_core/common/keymap.c:246: undefined reference to `fn_actions'
collect2.exe: error: ld returned 1 exit status
make: *** [../../tmk_core/rules.mk:552: usb_usb.elf] Error 1

Everything is pretty much default except keymap_common.h and keymap.c

keymap.c
Code: [Select]
#include "action_layer.h "
#include "keymap_common.h"

const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* 0: Foot Pedal */
    KEYMAP_ALL(
                LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,
    LALT,       LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,           LALT, LALT, LALT,       LALT, LALT, LALT, LALT,  LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,     LALT, LALT, LALT,       LALT, LALT, LALT, LALT,  LALT, LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,       LALT,     LALT, LALT, LALT,       LALT, LALT, LALT, LALT,  LALT, LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,       LALT, LALT,                             LALT, LALT, LALT, LALT,  LALT, LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,       LALT, LALT,           LALT,             LALT, LALT, LALT, LALT,  LALT, LALT,
    LALT, LALT, LALT, LALT, LALT,       LALT,       LALT, LALT, LALT, LALT, LALT, LALT, LALT,      LALT,LALT,LALT,        LALT,       LALT, LALT,  LALT, LALT),         
};

keymap_common.h
Code: [Select]
/*
Copyright 2014 Jun Wako <wakojun@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KEYMAP_COMMON_H
#define KEYMAP_COMMON_H

#include <stdint.h>
#include <stdbool.h>
#include "keycode.h"
#include "action.h"
#include "action_macro.h"
#include "report.h"
#include "print.h"
#include "debug.h"
#include "keymap.h"


/*         ,---------------. ,---------------. ,---------------.
 *         |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| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr| | Help  |
 * `---'   `---------------' `---------------' `---------------' `-----------' `---------------' `-------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------. ,-------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|JPY|Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -| |Stp|Agn|
 * |-----------------------------------------------------------| |-----------| |---------------| |-------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  | |Del|End|PgD| |  7|  8|  9|  +| |Mnu|Und|
 * |-----------------------------------------------------------| `-----------' |---------------| |-------|
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  #|Retn|               |  4|  5|  6|KP,| |Sel|Cpy|
 * |-----------------------------------------------------------|     ,---.     |---------------| |-------|
 * |Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /| RO|Shift |     |Up |     |  1|  2|  3|KP=| |Exe|Pst|
 * |-----------------------------------------------------------| ,-----------. |---------------| |-------|
 * |Ctl|Gui|Alt|MHEN|HNJ| Space  |H/E|HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| |  0    |  .|Ent| |Fnd|Cut|
 * `-----------------------------------------------------------' `-----------' `---------------' `-------'
 *
 *
 * App:         Windows Menu key
 * Gui:         Windows key, Mac ⌘ key or Meta key
 *
 * Pwr:         Power for Unix and Mac
 * VDn,Vup,Mut: Volume control for Unix and Mac
 * Stp,Agn..:   for Unix
 *
 * KP,:         Brazilian Keypad Comma
 * KP=:         Keypad = for Mac
 * <,#:         ISO keys(UK legend)
 * JPY:         Japanese Yen(¥)
 * RO:          Japanese ろ or Brazilian /
 * MHEN:        Japanese 無変換 Non Conversion
 * HENK:        Japanese 変換 Conversion
 * KANA:        Japanese かな Hiragana/Katakana
 *              https://en.wikipedia.org/wiki/Keyboard_layout#Japanese
 * H/E:         Korean 한/영 Hangul/English
 * HNJ:         Korean 한자 Hanja
 *              https://en.wikipedia.org/wiki/Keyboard_layout#Hangul_.28for_Korean.29
 *
 * TODO: use same keycode to pass through instead of KC_NO?
 */
#define KEYMAP_ALL( \
            K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,K9C,                                              \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  K81,K80,K7F,K66, K75,     \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, K78,K79, \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57, K76,K7A, \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,K85, K77,K7C, \
    KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    K87,KE5,      K52,      K59,K5A,K5B,K67, K74,K7D, \
    KE0,KE3,KE2,K8B,K91,    K2C,    K90,K8A,K88,KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, K7E,K7B  \
) { \
    { KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_##K04, KC_##K05, KC_##K06, KC_##K07,   /* 00-07 */ \
      KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, /* 08-0F */ \
    { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17,   /* 10-17 */ \
      KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, /* 18-1F */ \
    { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27,   /* 20-27 */ \
      KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, /* 28-2F */ \
    { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37,   /* 30-37 */ \
      KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, /* 38-3F */ \
    { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47,   /* 40-47 */ \
      KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, /* 48-4F */ \
    { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57,   /* 50-57 */ \
      KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, /* 58-5F */ \
    { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67,   /* 60-67 */ \
      KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_##K6C, KC_##K6D, KC_##K6E, KC_##K6F }, /* 68-6F */ \
    { KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77,   /* 70-77 */ \
      KC_##K78, KC_##K79, KC_##K7A, KC_##K7B, KC_##K7C, KC_##K7D, KC_##K7E, KC_##K7F }, /* 78-7F */ \
    { KC_##K80, KC_##K81, KC_NO,    KC_NO,    KC_NO,    KC_##K85, KC_NO,    KC_##K87,   /* 80-87 */ \
      KC_##K88, KC_##K89, KC_##K8A, KC_##K8B, KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* 88-8F */ \
    { KC_##K90, KC_##K91, KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,      /* 90-97 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_##K9C,    KC_NO,    KC_NO,    KC_NO    }, /* 98-9F */ \
    { KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,      /* A0-A7 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* A8-AF */ \
    { KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,      /* B0-B7 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* B8-BF */ \
    { KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,      /* C0-C7 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* C8-CF */ \
    { KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,      /* D0-D7 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* D8-DF */ \
    { KC_##KE0, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7,   /* E0-E7 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* E8-EF */ \
    { KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,      /* F0-F7 */ \
      KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* F8-FF */ \
}

/* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 * `---'   `---------------' `---------------' `---------------' `-----------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|    Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
 * |-----------------------------------------------------------| |-----------| |---------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  | |Del|End|PgD| |  7|  8|  9|  +|
 * |-----------------------------------------------------------| `-----------' |-----------|   |
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  Return|               |  4|  5|  6|  +|
 * |-----------------------------------------------------------|     ,---.     |---------------|
 * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|   |
 * |-----------------------------------------------------------| ,-----------. |-----------|   |
 * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|Ent|
 * `-----------------------------------------------------------' `-----------' `---------------'
 */
#define KEYMAP( \
    K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                   \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31,  K4C,K4D,K4E,  K5F,K60,K61,     \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K28,                K5C,K5D,K5E,K57, \
    KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,        KE5,      K52,      K59,K5A,K5B,     \
    KE0,KE3,KE2,        K2C,                KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58  \
) KEYMAP_ALL( \
            NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,                                               \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  NO, NO, NO, NO,  NO,      \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,NO, K2A,  K49,K4A,K4B,  K53,K54,K55,K56, NO, NO,  \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57, NO, NO,  \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    NO, K28,                K5C,K5D,K5E,NO,  NO, NO,  \
    KE1,NO, K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    NO, KE5,      K52,      K59,K5A,K5B,NO,  NO, NO,  \
    KE0,KE3,KE2,NO, NO,     K2C,    NO, NO, NO, KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, NO, NO   \
)

/* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 * `---'   `---------------' `---------------' `---------------' `-----------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|    Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
 * |-----------------------------------------------------------| |-----------| |---------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| Retn| |Del|End|PgD| |  7|  8|  9|  +|
 * |------------------------------------------------------`    | `-----------' |-----------|   |
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  #|    |               |  4|  5|  6|   |
 * |-----------------------------------------------------------|     ,---.     |---------------|
 * |Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|Ent|
 * |-----------------------------------------------------------| ,-----------. |-----------|   |
 * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
 * `-----------------------------------------------------------' `-----------' `---------------'
 */
#define KEYMAP_ISO( \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,  K46,K47,K48,                   \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K28,  K4C,K4D,K4E,  K5F,K60,K61,K57, \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,K32,                    K5C,K5D,K5E,     \
    KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    KE5,      K52,      K59,K5A,K5B,K58, \
    KE0,KE3,KE2,        K2C,                KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63      \
) KEYMAP_ALL( \
            NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,                                               \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  NO, NO, NO, NO,  NO,      \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,NO, K2A,  K49,K4A,K4B,  K53,K54,K55,K56, NO, NO,  \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K32,  K4C,K4D,K4E,  K5F,K60,K61,K57, NO, NO,  \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,NO,  NO, NO,  \
    KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    NO, KE5,      K52,      K59,K5A,K5B,NO,  NO, NO,  \
    KE0,KE3,KE2,NO, NO,     K2C,    NO, NO, NO, KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, NO, NO   \
)

/* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 * `---'   `---------------' `---------------' `---------------' `-----------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  ^|JPY|Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
 * |-----------------------------------------------------------| |-----------| |---------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  @|  [| Retn| |Del|End|PgD| |  7|  8|  9|  +|
 * |------------------------------------------------------`    | `-----------' |-----------|   |
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  ]|    |               |  4|  5|  6|   |
 * |-----------------------------------------------------------|     ,---.     |---------------|
 * |Shft    |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /| RO|Shift |     |Up |     |  1|  2|  3|Ent|
 * |-----------------------------------------------------------| ,-----------. |-----------|   |
 * |Ctl|Gui|Alt|MHEN|      Space      |HENK|KNA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
 * `-----------------------------------------------------------' `-----------' `---------------'
 */
#define KEYMAP_JIS( \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                   \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K28,  K4C,K4D,K4E,  K5F,K60,K61,K57, \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,K32,                        K5C,K5D,K5E,     \
    KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,        K87,KE5,      K52,      K59,K5A,K5B,K58, \
    KE0,KE3,KE2,K8B,    K2C,        K8A,K88,KE6,KE7,K65,KE4,      K50,K51,K4F,  K62,    K63      \
) KEYMAP_ALL( \
            NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,                                               \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  NO, NO, NO, NO,  NO,      \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, NO, NO,  \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K32,  K4C,K4D,K4E,  K5F,K60,K61,K57, NO, NO,  \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,NO,  NO, NO,  \
    KE1,NO, K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    K87,KE5,      K52,      K59,K5A,K5B,NO,  NO, NO,  \
    KE0,KE3,KE2,K8B,NO,     K2C,    NO, K8A,K88,KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, NO, NO   \
)

/* ,---.   ,---------------. ,---------------. ,---------------. ,-----------.
 * |Esc|   |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
 * `---'   `---------------' `---------------' `---------------' `-----------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|  \|Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
 * |-----------------------------------------------------------| |-----------| |---------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| Retn| |Del|End|PgD| |  7|  8|  9|  +|
 * |------------------------------------------------------`    | `-----------' |-----------|   |
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  |     |               |  4|  5|  6|   |
 * |-----------------------------------------------------------|     ,---.     |---------------|
 * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |     |  1|  2|  3|   |
 * |-----------------------------------------------------------| ,-----------. |-----------|   |
 * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
 * `-----------------------------------------------------------' `-----------' `---------------'
 */
#define KEYMAP_DSI( \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                            \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K31,K2A,  K49,K4A,K4B,  K53,K54,K55,K56,          \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K28,  K4C,K4D,K4E,  K5F,K60,K61,K57,          \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,                            K5C,K5D,K5E,              \
    KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,            KE5,      K52,      K59,K5A,K5B,K58,          \
    KE0,KE3,KE2,        K2C,                    KE6,KE7,K65,KE4,   K50,K51,K4F, K62,    K63               \
) KEYMAP_ALL( \
            NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO,                                               \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  NO, NO, NO, NO,  NO,      \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K31,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, NO, NO,  \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57, NO, NO,  \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, NO,    K28,                K5C,K5D,K5E,NO,  NO, NO,  \
    KE1,NO, K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, NO,    KE5,      K52,      K59,K5A,K5B,NO,  NO, NO,  \
    KE0,KE3,KE2,NO,NO,      K2C,       NO,NO,NO,KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, NO, NO   \
)

/*         ,---------------. ,---------------. ,---------------.
 *         |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| |PrS|ScL|Pau|
 * `---'   `---------------' `---------------' `---------------' `-----------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|    Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
 * |-----------------------------------------------------------| |-----------| |---------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| Retn| |Del|End|PgD| |  7|  8|  9|  +|
 * |------------------------------------------------------`    | `-----------' |-----------|   |
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  #|    |               |  4|  5|  6|   |
 * |-----------------------------------------------------------|     ,---.     |---------------|
 * |Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|Ent|
 * |-----------------------------------------------------------| ,-----------. |-----------|   |
 * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
 * `-----------------------------------------------------------' `-----------' `---------------'
 */
#define KEYMAP_HERMES( \
            K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,K9C,                                          \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                            \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A,      K49,K4A,K4B,  K53,K54,K55,K56,          \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57,          \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,        K28,                K5C,K5D,K5E,              \
    KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,            KE5,      K52,      K59,K5A,K5B,K58,          \
    KE0,KE3,KE2,            K2C,                    KE6,K65,KE4,  K50,K51,K4F,  K62,    K63               \
) KEYMAP_ALL( \
            K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,K9C,                                          \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  NO , NO, NO, NO,NO,       \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,NO, K2A,  K49,K4A,K4B,  K53,K54,K55,K56,NO,NO,    \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57,NO,NO,    \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, NO,    K28,                K5C,K5D,K5E, NO,NO,NO,    \
    KE1,NO,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,  NO,    KE5,      K52,      K59,K5A,K5B, NO,NO,NO,    \
    KE0,KE3,KE2,NO,NO,     K2C,         NO,NO,NO,KE6,NO,K65,KE4,  K50,K51,K4F,  K62,    K63,K58,NO,NO     \
)

/*         ,---------------. ,---------------. ,---------------.
 *         |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| |PrS|ScL|Pau|
 * `---'   `---------------' `---------------' `---------------' `-----------'
 * ,-----------------------------------------------------------. ,-----------. ,---------------.
 * |  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|    Bsp| |Ins|Hom|PgU| |NmL|  /|  *|  -|
 * |-----------------------------------------------------------| |-----------| |---------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]| Retn| |Del|End|PgD| |  7|  8|  9|  +|
 * |------------------------------------------------------`    | `-----------' |-----------|   |
 * |CapsL |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  :|  #|    |               |  4|  5|  6|   |
 * |-----------------------------------------------------------|     ,---.     |---------------|
 * |Shft|  <|  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shift     |     |Up |     |  1|  2|  3|Ent|
 * |-----------------------------------------------------------| ,-----------. |-----------|   |
 * |Ctl|Gui|Alt|           Space               |Alt|Gui|App|Ctl| |Lef|Dow|Rig| |      0|  .|   |
 * `-----------------------------------------------------------' `-----------' `---------------'
 */
#define KEYMAP_MERC( \
            K68,K69,K6A,K71,K72,                                                                          \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,                            \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,    K2A,  K49,K4A,K4B,  K53,K54,K55,K56,          \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57,          \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,        K28,                K5C,K5D,K5E,              \
    KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,            KE5,      K52,      K59,K5A,K5B,              \
    KE0,KE3,KE2,            K2C,                KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58           \
) KEYMAP_ALL( \
            K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,K9C,                                          \
    K29,    K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45,      K46,K47,K48,  K81,K80,K7F,K66, K75,     \
    K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A,  K49,K4A,K4B,  K53,K54,K55,K56, K78,K79, \
    K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,    K31,  K4C,K4D,K4E,  K5F,K60,K61,K57, K76,K7A, \
    K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34,    K32,K28,                K5C,K5D,K5E,K85, K77,K7C, \
    KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38,    K87,KE5,      K52,      K59,K5A,K5B,K67, K74,K7D, \
    KE0,KE3,KE2,K8B,K91,    K2C,    K90,K8A,K88,KE6,KE7,K65,KE4,  K50,K51,K4F,  K62,    K63,K58, K7E,K7B  \
)
#endif

I was able to make my firmware through the online keymap editor but I want to learn what I did wrong  :(

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #325 on: Mon, 02 July 2018, 23:51:21 »
Harima,
You need to define 'fn_actions' as gcc error message says.
Keymap file have to have 'fn_actions' even if you don't use it. See other keymap file in repo for reference.

Offline Harima

  • Posts: 44
Re: USB to USB keyboard converter
« Reply #326 on: Tue, 03 July 2018, 00:43:30 »
Ah! Yep, it went through! Thanks. Is it possible to use KEYMAP( instead of KEYMAP_ALL( for layer 0? I get a bunch of errors so I'm guessing not

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #327 on: Tue, 03 July 2018, 01:13:07 »
of course you can use KEYMAP(), just notice it has diffrent number of arguments from KEYMAP_ALL().

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #328 on: Tue, 03 July 2018, 01:29:01 »
I saw that you added a keycode 0x9C(KC_CLEAR) in your keymap_common.h, curious.
What keyboard or key send this keycode?

Code: [Select]
72c72
<             K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,K9C,                                              \
---
>             K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73,                                              \
99c99
<       KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_##K9C,    KC_NO,    KC_NO,    KC_NO    }, /* 98-9F */ \
---
>       KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO,    KC_NO    }, /* 98-9F */ \

Offline Harima

  • Posts: 44
Re: USB to USB keyboard converter
« Reply #329 on: Tue, 03 July 2018, 01:33:02 »
gccmake gave me an error that KEYMAP_ALL requires 143 keys but I only gave 142, so I had to add it

This is what happens when I edit my keymap.c to fit with KEYMAP(

keymap.c
Code: [Select]
#include "action_layer.h "
#include "keymap_common.h"

const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* 0: Foot Pedal */
    KEYMAP(
    LALT,       LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,   LALT, LALT, LALT, 
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,   LALT, LALT, LALT,  LALT, LALT, LALT, LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,   LALT, LALT, LALT,  LALT, LALT, LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,       LALT,                      LALT, LALT, LALT, LALT,
    LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT, LALT,             LALT,         LALT,        LALT, LALT, LALT,
    LALT, LALT, LALT,             LALT,                         LALT, LALT, LALT, LALT,    LALT,LALT,LALT,   LALT,       LALT, LALT),         
};

/*
 * Fn action definition
 */
#ifdef KEYMAP_SECTION_ENABLE
const action_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = {
#else
const action_t fn_actions[] PROGMEM = {
#endif
};

Error after make
Code: [Select]
Compiling C: keymap.c
avr-gcc -c -mmcu=atmega32u4 -gdwarf-2 -DF_CPU=16000000UL -DINTERRUPT_CONTROL_END                                                                                                                                                                                               POINT -DBOOTLOADER_SIZE=4096 -DARDUINO=101 -DF_USB=16000000UL -DARCH=ARCH_AVR8 -                                                                                                                                                                                               DUSB_DEVICE_ONLY -DUSE_FLASH_DESCRIPTORS -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_F                                                                                                                                                                                               ULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)" -DFIXED_CONTROL_ENDPOINT_SIZ                                                                                                                                                                                               E=8  -DFIXED_NUM_CONFIGURATIONS=1 -DPROTOCOL_LUFA -DMOUSEKEY_ENABLE -DMOUSE_ENAB                                                                                                                                                                                               LE -DEXTRAKEY_ENABLE -DCONSOLE_ENABLE -DVERSION=1610250-dirty -Os -funsigned-cha                                                                                                                                                                                               r -funsigned-bitfields -ffunction-sections -fdata-sections -fno-inline-small-fun                                                                                                                                                                                               ctions -fpack-struct -fshort-enums -fno-strict-aliasing -Wall -Wstrict-prototype                                                                                                                                                                                               s -Wa,-adhlns=obj_usb_usb/keymap.lst -I../../tmk_core/common -I. -I../../tmk_cor                                                                                                                                                                                               e -I../../tmk_core/protocol/usb_hid -I../../tmk_core/protocol/usb_hid/USB_Host_S                                                                                                                                                                                               hield_2.0 -I../../tmk_core/protocol/usb_hid/arduino-1.0.1/cores/arduino -I../../                                                                                                                                                                                               tmk_core/protocol/usb_hid/arduino-1.0.1/variants/leonardo -I../../tmk_core/proto                                                                                                                                                                                               col/lufa -I../../tmk_core/protocol/lufa/LUFA-git -I../../tmk_core/common -std=gn                                                                                                                                                                                               u99 -include config.h -MMD -MP -MF .dep/obj_usb_usb_keymap.o.d  keymap.c -o obj_                                                                                                                                                                                               usb_usb/keymap.o
keymap.c:12:132: error: macro "KEYMAP_ALL" requires 143 arguments, but only 142                                                                                                                                                                                                given
     LALT, LALT, LALT,             LALT,                         LALT, LALT, LAL                                                                                                                                                                                               T, LALT,    LALT,LALT,LALT,   LALT,       LALT, LALT),
                                                                                                                                                                                                                                                                                                                                   ^
In file included from keymap.c:2:0:
keymap_common.h:136:3: error: 'KEYMAP_ALL' undeclared here (not in a function)
 ) KEYMAP_ALL( \
   ^
keymap.c:6:5: note: in expansion of macro 'KEYMAP'
     KEYMAP(
     ^
make: *** [../../tmk_core/rules.mk:560: obj_usb_usb/keymap.o] Error 1
« Last Edit: Tue, 03 July 2018, 01:47:10 by Harima »

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #330 on: Thu, 05 July 2018, 06:55:50 »
Hello, after the update via (git pull), I've seen some errors, then I erased the git directory and reinstalled all, but yet I can't flash the firmware anymore....  Yet I  use the default config, including the keymap....


yes, I'ver reinstalled the dfu programmer erasing all config files.
Using ubuntu 18.04


dfu-programmer: waiting................
dfu-programmer atmega32u4 erase --force
Usage: dfu-programmer target[:usb-bus,usb-addr] command [options] [global-options] [file|data]

global-options:
        --quiet
        --debug level    (level is an integer specifying level of detail)
        Global options can be used with any command and must come
        after the command and before any file or data value

commands:
        configure {BSB|SBV|SSB|EB|HSB} [--suppress-validation] data
        dump
        dump-eeprom
        dump-user
        erase [--suppress-validation]
        flash [--suppress-validation] [--suppress-bootloader-mem]
                     [--serial=hexdigits:offset] {file|STDIN}
        flash-eeprom [--suppress-validation]
                     [--serial=hexdigits:offset] {file|STDIN}
        flash-user   [--suppress-validation]
                     [--serial=hexdigits:offset] {file|STDIN}
        get     {bootloader-version|ID1|ID2|BSB|SBV|SSB|EB|
                 manufacturer|family|product-name|
                 product-revision|HSB}
        getfuse {LOCK|EPFL|BOOTPROT|BODLEVEL|BODHYST|
                 BODEN|ISP_BOD_EN|ISP_IO_COND_EN|
                 ISP_FORCE}
        setfuse {LOCK|EPFL|BOOTPROT|BODLEVEL|BODHYST|
                 BODEN|ISP_BOD_EN|ISP_IO_COND_EN|
                 ISP_FORCE} data
        setsecure
        reset
        start
../../tmk_core/rules.mk:423: recipe for target 'dfu' failed
make: *** [dfu] Error 1


« Last Edit: Thu, 05 July 2018, 07:28:20 by Giorgio »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #331 on: Thu, 05 July 2018, 08:02:29 »
Your dfu-programmer is old and doesn't accept '--force' option.
You have to install newew dfu-programmer or run commands by hand.
https://github.com/tmk/tmk_keyboard/wiki#dfu-programmer-for-windows-mac-and-linux

EDIT: I'll fix this error some later, perhaps.
« Last Edit: Thu, 05 July 2018, 08:11:46 by hasu »

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #332 on: Thu, 05 July 2018, 08:10:10 »
Your dfu-programmer is old and doesn't accept '--force' option.
You have to install newew dfu-programmer or run commands by hand.
https://github.com/tmk/tmk_keyboard/wiki#dfu-programmer-for-windows-mac-and-linux


Thanks the readme file still shows make dfu, can you please correct it?

Please kindly help, because I've learnt the way to use make dfu, and now I need to relearn everything. I've already lost an hour, and I've concluded nothing. Why make dfu doesn't work anymore?

what command do I need to use to compile?
make -f Makefile.<variant> clean
which variant?

and then to program?

« Last Edit: Thu, 05 July 2018, 08:12:34 by Giorgio »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #333 on: Thu, 05 July 2018, 08:15:06 »
Use Makefile.unimap. Edit unimap.c to remap keys.

Run these to compile source code:

make -f Makefile.unimap clean
make -f Makefile.unimap

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #334 on: Thu, 05 July 2018, 10:14:47 »
Use Makefile.unimap. Edit unimap.c to remap keys.

Run these to compile source code:

make -f Makefile.unimap clean
make -f Makefile.unimap

Ok, I updated dfu from github and everything started to work again. This should be posted clear and bold... don't try to flash your usb_usb unless you have the lastest https://github.com/dfu-programmer/dfu-programmer

I don't understand why ubuntu doesn't ship with the lastes one, which is anyway quite old.

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #335 on: Thu, 05 July 2018, 10:49:51 »
Quite strange that the app key of the novatouch doesn't send any scancode. The app key, or whatever it's called, is the one after raltGr, rwin, APP, rctrl

I've tried with xev and with showscancodes.

The same results with and without the converter.


Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #336 on: Thu, 05 July 2018, 10:57:53 »
Quite strange that the app key of the novatouch doesn't send any scancode. The app key, or whatever it's called, is the one after raltGr, rwin, APP, rctrl

I've tried with xev and with showscancodes.

The same results with and without the converter.



does your novatouch have really APP key?
I found FN key there on images on this site. In general FN key sends no scancode as you know.
http://www.coolermaster.com/peripheral/keyboards/novatouchtkl/

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #337 on: Thu, 05 July 2018, 19:28:44 »
[Firmware Update]
Updated firmware to fix startup issue, you can download it from Keymap Editor or source repo now.

With some kind of keyboard you have to plug the converter in PC first and then hook up the keyboard without this fix. If you have suffered from this issue try new firmware.

See this commit for detail.

Thanks
« Last Edit: Sat, 07 July 2018, 20:29:26 by hasu »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #338 on: Sat, 07 July 2018, 19:10:46 »
Use Makefile.unimap. Edit unimap.c to remap keys.

Run these to compile source code:

make -f Makefile.unimap clean
make -f Makefile.unimap

Ok, I updated dfu from github and everything started to work again. This should be posted clear and bold... don't try to flash your usb_usb unless you have the lastest https://github.com/dfu-programmer/dfu-programmer

I don't understand why ubuntu doesn't ship with the lastes one, which is anyway quite old.

Now you can do 'make dfu' with old dfu-programmer as before :D Updated makefile under tmk_core.
https://github.com/tmk/tmk_keyboard/commit/dd543150b45c8dc45a5837a6ce6c7d61c8525c52

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #339 on: Sat, 07 July 2018, 19:50:03 »
Use Makefile.unimap. Edit unimap.c to remap keys.

Run these to compile source code:

make -f Makefile.unimap clean
make -f Makefile.unimap

Ok, I updated dfu from github and everything started to work again. This should be posted clear and bold... don't try to flash your usb_usb unless you have the lastest https://github.com/dfu-programmer/dfu-programmer

I don't understand why ubuntu doesn't ship with the lastes one, which is anyway quite old.

Now you can do 'make dfu' with old dfu-programmer as before :D Updated makefile under tmk_core.
https://github.com/tmk/tmk_keyboard/commit/dd543150b45c8dc45a5837a6ce6c7d61c8525c52

Thanks for making this great tool. Being able to have the same shortcuts in all the keyboards and OSes is really valuable to me.

How could you become so good? Are you a full time programmer?
« Last Edit: Sat, 07 July 2018, 19:52:05 by Giorgio »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #340 on: Sat, 07 July 2018, 20:23:41 »
So my USB_USB converter won't work with my Realforce RGB if I plug the keyboard into the converter before I plug the converter into the laptop.

It's really just an issue because I have the keyboard and converter plugged into a USB Hub at work, so this means I have to first plug the hub into my computer, then nothing works because I'm sleepy and have forgotten about the problem... Then I have to pull the converter out, pull the keyboard out, and then plug everything in the right way.

Is this a known issue? Is there a workaround besides my very manual workaround?


Sorry for too late fix but Realforce RGB works now with the latest firmware!
Try if you still have it.
« Last Edit: Sat, 07 July 2018, 20:28:56 by hasu »

Offline Harima

  • Posts: 44
Re: USB to USB keyboard converter
« Reply #341 on: Fri, 13 July 2018, 00:19:32 »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #342 on: Fri, 13 July 2018, 04:19:12 »
Could not get this X-Keys Foot Pedal XF-10-US to work

http://www.ergocanada.com/detailed_specification_pages/pi_engineering_x_keys_triple_action_foot_pedal.html

Thank you for your feedback!
Added it in the first post.


Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #343 on: Fri, 13 July 2018, 06:03:37 »
Could not get this X-Keys Foot Pedal XF-10-US to work

http://www.ergocanada.com/detailed_specification_pages/pi_engineering_x_keys_triple_action_foot_pedal.html

Thank you for your feedback!
Added it in the first post.

You should add also the cherry g80-3000. I haven't tested the g80-1800 yet.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #344 on: Fri, 13 July 2018, 06:28:53 »
Could not get this X-Keys Foot Pedal XF-10-US to work

http://www.ergocanada.com/detailed_specification_pages/pi_engineering_x_keys_triple_action_foot_pedal.html

Thank you for your feedback!
Added it in the first post.

You should add also the cherry g80-3000. I haven't tested the g80-1800 yet.

As fa as I know the keyboard has a sucky bug and it is not problem of this converter.

EDIT: I think you can still use it through this converter as keyboard  with the bug. The bug comes from crappy firmware of the Cherry keyboard, not the converter. For someone who are interested, check this post.
https://geekhack.org/index.php?topic=69169.msg2629507#msg2629507
« Last Edit: Fri, 13 July 2018, 06:44:30 by hasu »

Offline T42

  • Posts: 16
  • Location: Germany
Combine multiple dual role modifiers?
« Reply #345 on: Fri, 13 July 2018, 16:34:55 »
Hello,

I am planning to order two converters, but got some questions first.

Can multiple ACTION_MODS_TAP_KEY be combined? For example, I want to use (on a standard keyboard, probably getting a Fnatic Gear Rush, turned to have the F keys as thumb keys):
Dual-role modifier / tap:
f4    = mod_ralt  / kc_bspc
f5    = mod_rctl  / kc_spc
[     = <layer 5> / kc_rsft|kc_minus (-> question mark in German layout)
kc_i  = mod_lsft  / kc_e

Layer 5:

kc_b  = kc_f10
kc_v  = kc_f11
...

So, I am hoping this will behave as follows. Is that correct?
hold        tap   result
f4          f5    ralt + spc
f5          f4    rctl + bspc
f4 f5       [     ralt + rctl + rsft + minus
f4 f5 [     b     ralt + rctl + f10
f4 f5 [ i   b     ralt + rctl + lsft + f10


Also, the online editor's 8 layer limitation is making me a little nervous ;-) Can you please confirm that 32 layers are supported otherwise?
(I need a lot of layers: 1 base layer which uses all keys similar to Neo 2 layout, and 18 layers which use only ~ 15 of the most comfortable right hand keys, holding modifiers with the left hand.)

Thanks!

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #346 on: Fri, 13 July 2018, 20:09:25 »
Could not get this X-Keys Foot Pedal XF-10-US to work

http://www.ergocanada.com/detailed_specification_pages/pi_engineering_x_keys_triple_action_foot_pedal.html

Thank you for your feedback!
Added it in the first post.

You should add also the cherry g80-3000. I haven't tested the g80-1800 yet.

As fa as I know the keyboard has a sucky bug and it is not problem of this converter.

EDIT: I think you can still use it through this converter as keyboard  with the bug. The bug comes from crappy firmware of the Cherry keyboard, not the converter. For someone who are interested, check this post.
https://geekhack.org/index.php?topic=69169.msg2629507#msg2629507

In the end it makes no difference, if the keyboard has a problem, then it's incompatible with the converter.
The keyboard doesn't work, trust me, it sends some random scancodes that make any work impossible. If you have that keyboard you can't use the converter.
« Last Edit: Fri, 13 July 2018, 20:11:13 by Giorgio »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #347 on: Fri, 13 July 2018, 20:15:53 »
Hello,

I am planning to order two converters, but got some questions first.

Can multiple ACTION_MODS_TAP_KEY be combined? For example, I want to use (on a standard keyboard, probably getting a Fnatic Gear Rush, turned to have the F keys as thumb keys):
Dual-role modifier / tap:
f4    = mod_ralt  / kc_bspc
f5    = mod_rctl  / kc_spc
[     = <layer 5> / kc_rsft|kc_minus (-> question mark in German layout)
kc_i  = mod_lsft  / kc_e

Layer 5:

kc_b  = kc_f10
kc_v  = kc_f11
...


I think you can define those without hassle except for '['. You have to write code in keymap file to define action for the '[', ACTION_LAYER_TAP doesn't accept modified key like 'kc_rsft|kc_minus'.


Quote
So, I am hoping this will behave as follows. Is that correct?
hold        tap   result
f4          f5    ralt + spc
f5          f4    rctl + bspc
f4 f5       [     ralt + rctl + rsft + minus
f4 f5 [     b     ralt + rctl + f10
f4 f5 [ i   b     ralt + rctl + lsft + f10


They should work. Notice that 'dual role modifier/key' is not a real modifier and you will have to develop key fingering timing for that.


Quote
Also, the online editor's 8 layer limitation is making me a little nervous ;-) Can you please confirm that 32 layers are supported otherwise?
(I need a lot of layers: 1 base layer which uses all keys similar to Neo 2 layout, and 18 layers which use only ~ 15 of the most comfortable right hand keys, holding modifiers with the left hand.)

Thanks!
[/font]

All of 32 layers is available when you use keymap file and compile firmware yourself.


Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #348 on: Fri, 13 July 2018, 20:46:59 »

Could not get this X-Keys Foot Pedal XF-10-US to work

http://www.ergocanada.com/detailed_specification_pages/pi_engineering_x_keys_triple_action_foot_pedal.html

Thank you for your feedback!
Added it in the first post.

You should add also the cherry g80-3000. I haven't tested the g80-1800 yet.

As fa as I know the keyboard has a sucky bug and it is not problem of this converter.

EDIT: I think you can still use it through this converter as keyboard  with the bug. The bug comes from crappy firmware of the Cherry keyboard, not the converter. For someone who are interested, check this post.
https://geekhack.org/index.php?topic=69169.msg2629507#msg2629507

In the end it makes no difference, if the keyboard has a problem, then it's incompatible with the converter.
The keyboard doesn't work, trust me, it sends some random scancodes that make any work impossible. If you have that keyboard you can't use the converter.

random scancodes? You see keys you don't press?
As far as I understand the bug sends 'unexpected control' only, not other random scancodes.


Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.

I Assume you pressed L and F at least when the bug occurred.
On G80-3000 with 2KRO the bug can happen when pressing specific combo of three keys causes matrix ghost bloking state. The keyoard sends incompatible report: 0101010101010101 then as following posts says.

The keyboard is not usable with this converter, Mac, and Linux while it seems that Windows manage to handle  the incompatible report  somehow.


Not sure but those keyboards may have same issue because they doesn't seem to have plan to fix firmware for this. Perhaps you had better avoid those keyboard unless you already own them.
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html#p413367

It seems the G80-3000 works on Windows but not on Mac and Linux as the thead indicates, I guess WIndows manage to handle the issue in some way.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html#p395088

Offline Giorgio

  • Posts: 1846
  • Location: Italy
Re: USB to USB keyboard converter
« Reply #349 on: Fri, 13 July 2018, 21:24:51 »

Could not get this X-Keys Foot Pedal XF-10-US to work

http://www.ergocanada.com/detailed_specification_pages/pi_engineering_x_keys_triple_action_foot_pedal.html

Thank you for your feedback!
Added it in the first post.

You should add also the cherry g80-3000. I haven't tested the g80-1800 yet.

As fa as I know the keyboard has a sucky bug and it is not problem of this converter.

EDIT: I think you can still use it through this converter as keyboard  with the bug. The bug comes from crappy firmware of the Cherry keyboard, not the converter. For someone who are interested, check this post.
https://geekhack.org/index.php?topic=69169.msg2629507#msg2629507

In the end it makes no difference, if the keyboard has a problem, then it's incompatible with the converter.
The keyboard doesn't work, trust me, it sends some random scancodes that make any work impossible. If you have that keyboard you can't use the converter.

random scancodes? You see keys you don't press?
As far as I understand the bug sends 'unexpected control' only, not other random scancodes.


Is it possible that when typing very fast, the keyboard sends some random codes like ctrl-l and ctrl-f (^l and ^f). I'm sure that I don't accidentally press other keys. The keyboard is a cherry g80-3000, and this fact has been recorded on vim, but happens mostly on the browser, where I can't log the output of the keybard, but I register some accidental events.

I Assume you pressed L and F at least when the bug occurred.
On G80-3000 with 2KRO the bug can happen when pressing specific combo of three keys causes matrix ghost bloking state. The keyoard sends incompatible report: 0101010101010101 then as following posts says.

The keyboard is not usable with this converter, Mac, and Linux while it seems that Windows manage to handle  the incompatible report  somehow.


Not sure but those keyboards may have same issue because they doesn't seem to have plan to fix firmware for this. Perhaps you had better avoid those keyboard unless you already own them.
https://deskthority.net/keyboards-f2/cherry-usb-controller-problems-visible-in-linux-and-macos-t17938.html#p413367

It seems the G80-3000 works on Windows but not on Mac and Linux as the thead indicates, I guess WIndows manage to handle the issue in some way.
https://deskthority.net/keyboards-f2/cherry-g80-3000-broke-down-t17899.html#p395088

The g80-3000 is unusable with the converter since it sends random commands that make software misbehave. Depending on the software that you're using, you might lose focus on what you're doing, have pdf of the guide open suddenly. And if you're using Gmail you'll suddenly lose whatever you've typed because the browser suddenly close your page and went back. So yes, it's absolutely unusable. It isn't the fault of the converter, but yet is unusable.