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

0 Members and 1 Guest are viewing this topic.

Offline haydoselefantes

  • Posts: 65
  • Location: Los Angeles
Re: USB to USB keyboard converter
« Reply #600 on: Fri, 06 November 2020, 13:44:26 »
haydoselefantes,
What OS are you guys on? Mac OS?
This issue happens on Linux or Windows too?
Other keys than CapsLock still have same problem?

I only see this issue on Mac OS.  Works as expected in Windows.  Sorry, I hadn't tested Windows, even though this FC980C is on a USB switch between Windows and Mac machines :)

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

You're right.  I should have known your stuff was working perfectly!  Is there an easy way to increase duration of the keypress generated by TAP_KEY?  100 ms might work

Off topic, but: CapsLockNoDelay fixes this issue for me on Mac OS Catalina.
 
Neither of the SO workarounds change the behavior on Catalina (Mac OS 10.15.7).  This is not surprising, I vividly remember High Sierra changing/breaking a ton of keyboard functionality.  I'm not going to try karabiner, one of the best things about the alt controllers is not having to deal with karabiner!
« Last Edit: Fri, 06 November 2020, 17:37:15 by haydoselefantes »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #601 on: Sat, 07 November 2020, 03:28:27 »

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

You're right.  I should have known your stuff was working perfectly!  Is there an easy way to increase duration of the keypress generated by TAP_KEY?  100 ms might work

Yes, it is a workaround. I updated fimware again, download from Keymap Editor and try the TAP_KEY(Capslock). I think it should work now unless I mistook something.


Quote
Off topic, but: CapsLockNoDelay fixes this issue for me on Mac OS Catalina.
 
Neither of the SO workarounds change the behavior on Catalina (Mac OS 10.15.7).  This is not surprising, I vividly remember High Sierra changing/breaking a ton of keyboard functionality.  I'm not going to try karabiner, one of the best things about the alt controllers is not having to deal with karabiner!

Good to know the infos. Thanks.

Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #602 on: Sat, 07 November 2020, 04:10:30 »
thanks Hasu
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline haydoselefantes

  • Posts: 65
  • Location: Los Angeles
Re: USB to USB keyboard converter
« Reply #603 on: Sat, 07 November 2020, 13:08:41 »
Yes, it is a workaround. I updated fimware again, download from Keymap Editor and try the TAP_KEY(Capslock). I think it should work now unless I mistook something.

Thanks!

I tried to use the new firmware a couple of times and don't see any change.  I may be doing something wrong.  I went to the keymap editor, loaded a file with my existing firmware, changed Caps Lock to be plain Caps Lock, then changed Caps Lock back to ACTION_LAYER_TAP_KEY, downloaded and flashed.

Can you please try it out also nevin?

Offline daniel123

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #604 on: Sun, 22 November 2020, 06:28:30 »
Hi Hasu,

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

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

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

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

Thanks a lot  :thumb:


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

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


#define AC_FN0 ACTION_LAYER_MOMENTARY(1)

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


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

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


Hi Hasu,

Did you have a chance to read my message? Would be nice if you could help out on this, now that I have the second controller I'm running into issues apparently...

Thanks man :)
Daniel

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #605 on: Sun, 22 November 2020, 06:46:07 »
Hi Daniel,

Quote
When browsing the internet for a fix to the replug issue, I found a fix that you presented in this forum. It works just fine with my keyboard, I just have one question.
What is your keyboard model with replug issue?
what is 'a fix' is actually, can you give its reference or URL? I can't remember it now :(

I like to fix the issue on default firmware if possible.


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

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

Note that it is not keymap.c, you can copy the code into unimap.c and compile with 'make -f Makefile.unimap'.
Post error outputs if this doesn't work for you.

Offline daniel123

  • Posts: 9
Re: USB to USB keyboard converter
« Reply #606 on: Mon, 23 November 2020, 14:32:20 »
Hi Hasu,

Both keyboards work fine with your USB-to-USB converters (one keyboard is a Cherry KC 6000 slim and the other is an R-GO compact) and with the help of Zucca I was able to keep them both running :)

I will try your tip to compile and get back to you here, thanks for your support :)

Take care
Daniel


PS. In case anyone else who wants to use two keyboards at a time wonders why it doesn't work.... You have to use a DIFFERENT hex-files for each keyboard, e.g. the F24 hex file for the first keyboard and the F23 hex file for the second keyboard. Knowing this now makes me feeling silly to point that out, but some stupid people like me did not get that :D

Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #607 on: Mon, 23 November 2020, 14:38:26 »
don't feel bad. i've been playing with qmk & hasu's tmk for years. and it wasn't until recently, i started prepping a couple boards for VIA that i saw/realized the USB Device descriptor's in the firmware. (just a file you don't look into when you're just changing keymaps, or starting off.)
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline phedd

  • Posts: 31
Re: USB to USB keyboard converter
« Reply #608 on: Mon, 30 November 2020, 15:36:39 »
This just happened when disconnecting it from my computer. :(

Any way to fix? I can't solder or anything like that :(


Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: USB to USB keyboard converter
« Reply #609 on: Mon, 30 November 2020, 16:10:22 »
This just happened when disconnecting it from my computer. :(

Any way to fix? I can't solder or anything like that :(

That's impressive - how did you manage to rip off the casing without breaking the PCB :eek:

You need four pins for USB, one has disappeared so you'll need a new socket and if you can't solder it you'll have to find someone who can.  If you're in the UK I could do it?
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #610 on: Mon, 30 November 2020, 16:22:47 »
i'll offer the same if in the states.
ask around to friends, colleagues, etc... won't be a hard job and we can talk you through it.
looks like something like this for replacement. could probably find the same connector at mouser or digikey as well. (this was just one of the first couple results)
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline phedd

  • Posts: 31
Re: USB to USB keyboard converter
« Reply #611 on: Mon, 30 November 2020, 17:09:30 »
This just happened when disconnecting it from my computer. :(

Any way to fix? I can't solder or anything like that :(

That's impressive - how did you manage to rip off the casing without breaking the PCB :eek:

You need four pins for USB, one has disappeared so you'll need a new socket and if you can't solder it you'll have to find someone who can.  If you're in the UK I could do it?

I have no idea really. It felt a bit stuck so I had to use a little bit more force than usual (but not that much) and then it sounded like an instrument (the pins being freed) and the casing was stuck in my computer. The one pin fell off as I tried to push them back into the casing :(

Sweden unfortunately :( But thanks, I'll see if I can find someone. Or maybe I'll just learn to solder. But I'm so poor right now. Sucks being without tmk lol, feels so weird even typing this without all my usual mods and stuff.

i'll offer the same if in the states.
ask around to friends, colleagues, etc... won't be a hard job and we can talk you through it.
looks like something like this for replacement. could probably find the same connector at mouser or digikey as well. (this was just one of the first couple results)

Thanks alot! I'll try and ask some people

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #612 on: Mon, 30 November 2020, 19:02:21 »
phedd,
Can you remove the wrapping cover and take pics of both side of the pcb to check pads is still safe and fixable?
Also I like to have pic of the connector from the side to see how its chassis tabs broke off.

I can send you new USB plug or offer repair service if you can send it back to me.
Or you can get refund or replacement for your purchase if this is apparently fault of production.

Anyway, I'd like to see more photos of the details.


This is dimesions of the USB plug if you can fix it yourself.
https://akizukidenshi.com/download/ds/useconn/USB-4AM103.pdf
You can find some compatible components in the market. For example This is usable probably and is available from digikey.
https://www.digikey.com/en/products/detail/cui-devices/UP2-AH-4-TH/6188077


Offline nevin

  • Posts: 1646
  • Location: US
Re: USB to USB keyboard converter
« Reply #613 on: Mon, 30 November 2020, 19:22:59 »
Now that's customer service.
Thanks hasu.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline phedd

  • Posts: 31
Re: USB to USB keyboard converter
« Reply #614 on: Mon, 30 November 2020, 20:59:20 »
phedd,
Can you remove the wrapping cover and take pics of both side of the pcb to check pads is still safe and fixable?
Also I like to have pic of the connector from the side to see how its chassis tabs broke off.

I can send you new USB plug or offer repair service if you can send it back to me.
Or you can get refund or replacement for your purchase if this is apparently fault of production.

Anyway, I'd like to see more photos of the details.


This is dimesions of the USB plug if you can fix it yourself.
https://akizukidenshi.com/download/ds/useconn/USB-4AM103.pdf
You can find some compatible components in the market. For example This is usable probably and is available from digikey.
https://www.digikey.com/en/products/detail/cui-devices/UP2-AH-4-TH/6188077

Absolutely, will dm you, thanks and very much appreciated

Offline haydoselefantes

  • Posts: 65
  • Location: Los Angeles
Re: USB to USB keyboard converter
« Reply #615 on: Tue, 01 December 2020, 17:34:13 »
OK, I figured this out.  I was doing something stupid.  ACTION_LAYER_TAP_KEY with caps lock om MacOS does work for me after hasu's change!

I was too lazy to set up my keymap again, so I was just using the keymap editor to load my existing firmware as the base and then changing the caps lock key and re-downloading it.  This apparently just changed the keymap on the previously compiled firmware, and didn't compile a new firmware with hasu's fix.

So this time, I went to the keymap editor, selected USB-USB converter as the base firmware, loaded that, and then just manually re-entered my keymap and downloaded it.  Works great! 

I'm a developer by trade and I would have been comfortable compiling the firmware from source, but my laziness bit me again here.  I couldn't figure out a way to convert my existing keymap to a unimap.c file.  But I'm realizing there's probably no shortcut for that, and I should just go ahead and manually type up my existing map.  All that laziness and I'm only using two layers and changing like a dozen keys from the base! :)

Thanks hasu!

I tried to use the new firmware a couple of times and don't see any change.  I may be doing something wrong.  I went to the keymap editor, loaded a file with my existing firmware, changed Caps Lock to be plain Caps Lock, then changed Caps Lock back to ACTION_LAYER_TAP_KEY, downloaded and flashed.

Can you please try it out also nevin?

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #616 on: Tue, 01 December 2020, 17:59:31 »
Hasu, In the TMK USB to USB converter config if I were to use something like a Unicomp PC122 which comes natively as USB the config is missing the left hand function keys as well as the key that would go below the down arrow. Also, if I wanted to split the numpad 0 into 2 seperate keys how could this be accomplished on the software end?

Interesting topic, It is worth to share this here.

If those keys have usual scan code the converter supports(not media/system codes), the converter can support them. I think USB 122-key layout has no standard scan code assignment, you will have to check the keyboard with keytester software or the converter.
Keymap Editor has 128 key and you can configure all keys theoretically. Default layout of Editor is different from the keyboard and not completely useful but can be still used if you know scan code of the keys.

Current firmware is not tested with keyboard like that yet and may need to be updated for the keys. I'll be happy to do that if you can help.


As for  "seperate keys" it is possible to remap the hidden key has scan code the converter supports again.

You will have to know scan code of the keys, first.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #617 on: Tue, 01 December 2020, 18:41:43 »
OK, I figured this out.  I was doing something stupid.  ACTION_LAYER_TAP_KEY with caps lock om MacOS does work for me after hasu's change!

I was too lazy to set up my keymap again, so I was just using the keymap editor to load my existing firmware as the base and then changing the caps lock key and re-downloading it.  This apparently just changed the keymap on the previously compiled firmware, and didn't compile a new firmware with hasu's fix.

So this time, I went to the keymap editor, selected USB-USB converter as the base firmware, loaded that, and then just manually re-entered my keymap and downloaded it.  Works great! 

It is harsh and not user friendly interface unfortunately.
I like to update and improve Editor interface later if I have time but I'm not good at interface design and web programming :D

To update to the latest firmware with existent old firmware file these steps would have worked probably.
1. Chosse your old firmware HEX file in 'File Chooser'.
2. Click 'Load Keymap from firmware' button to load your keymap from old firmware.(This loads only keymap part on Keymap Editor.)
3. Edit keymap. This is optionaly.
4. Check 'Select' radio button to use the latest firmware when downloading from Editor.(The radio buttons state decides which firmware is used when downloading.)
5. Click 'Download' button.

Or you can bookmark 'Raw URL'(or 'URL shortener' may be useful) to backup your keymap instead of storing old firmware file somewhere.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #618 on: Wed, 02 December 2020, 00:08:03 »
I found these doc on Unicomp site. Green marked keys are not fully remappable unfortunately.
https://support.pckeyboard.com/knowledgebase.php?article=52
https://support.pckeyboard.com/knowledgebase.php?article=58


Hasu, In the TMK USB to USB converter config if I were to use something like a Unicomp PC122 which comes natively as USB the config is missing the left hand function keys as well as the key that would go below the down arrow. Also, if I wanted to split the numpad 0 into 2 seperate keys how could this be accomplished on the software end?

Interesting topic, It is worth to share this here.

If those keys have usual scan code the converter supports(not media/system codes), the converter can support them. I think USB 122-key layout has no standard scan code assignment, you will have to check the keyboard with keytester software or the converter.
Keymap Editor has 128 key and you can configure all keys theoretically. Default layout of Editor is different from the keyboard and not completely useful but can be still used if you know scan code of the keys.

Current firmware is not tested with keyboard like that yet and may need to be updated for the keys. I'll be happy to do that if you can help.


As for  "seperate keys" it is possible to remap the hidden key has scan code the converter supports again.

You will have to know scan code of the keys, first.


Offline TheNeonKnight

  • Posts: 25
Re: USB to USB keyboard converter
« Reply #619 on: Thu, 03 December 2020, 13:35:30 »
I'm not sure how much faith I put in Unicomps documentation, they are resistant to most things new and probably would not even try to remap those keys. I bet it can be done, when I get my hands on one, ill be able to figure out more info.

Offline TrollyBashGuy

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #620 on: Wed, 09 December 2020, 10:11:56 »
Hi Hasu,

I got your USB to USB converter and I am having problems with one of my keyboards (Logitech G213).
Here is the output from hid_listen when I plug it in, unplug and plugin again.

Code: [Select]
Listening:


TMK:2e5e6a69+/LUFA

usb_state: 12

USB configured.

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

Interface:00
PROTOCOL SET HID_BOOT rcode:00
SET_IDLE rcode:00
RPIPE rcode:00
BM configured
host.Task: 2319
usb_state: 90
speed: full
usb_state: 12
usb_state: 20
usb_state: 40
usb_state: 50
usb_state: 51
BM Init
Addr:01
NC:01
HID_PROTOCOL_KEYBOARD
[gC]Cl:003B
crIN:05
crIN:05
crIN:05
crIN:05
crIN:05
bNumEP:01
Cnf:00
bIfaceNum:00
bNumIface:00

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

I am running on windows 10 I have Linux on another machine if you need me to test it on that. It works with a different keyboard but not the G213.

Is there a way I can fix this problem? or do you know what is happening here?

Thanks in advance!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #621 on: Fri, 11 December 2020, 09:00:12 »
Thanks for your report.

USB STALL error happens on 'GET DESCRIPTOR(CONFIGURATION)' for some reason, this is same as this report.
https://geekhack.org/index.php?topic=69169.msg2896289#msg2896289

Can you try attached firmware?  this is debug firmware based the latest code.

* usb_usb_debug.hex (74.79 kB - downloaded 131 times.)


Hi Hasu,

I got your USB to USB converter and I am having problems with one of my keyboards (Logitech G213).
Here is the output from hid_listen when I plug it in, unplug and plugin again.


I am running on windows 10 I have Linux on another machine if you need me to test it on that. It works with a different keyboard but not the G213.

Is there a way I can fix this problem? or do you know what is happening here?

Thanks in advance!


Offline TrollyBashGuy

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #622 on: Tue, 15 December 2020, 15:34:12 »
Sorry for the late reply I am doing exams at the moment. For some unknown reason the hex code that you gave me made the keyboard work.

Upon further inspection it doesn't work when I try to make the firmware myself. Is there anything that needs to be done to get it to work?

« Last Edit: Tue, 15 December 2020, 16:32:33 by TrollyBashGuy »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #623 on: Thu, 17 December 2020, 20:06:59 »
Thanks for your test.
Can you share hid_listen log with the debug firmware I attached?


The debug firmware included change by my wild guess. This is the change.
And if possible, can you test to see diference with/without the change?

This should be applied under tmk_keyboard/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0-tmk/.
Code: [Select]
diff --git a/Usb.cpp b/Usb.cpp
index d8a51cb..2e334c0 100644
--- a/Usb.cpp
+++ b/Usb.cpp
@@ -170,8 +170,8 @@ uint8_t USB::ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bReque
 #if defined(ESP8266) || defined(ESP32)
                         yield(); // needed in order to reset the watchdog timer on the ESP8266
 #endif
-                                uint16_t read = nbytes;
-                                //uint16_t read = (left<nbytes) ? left : nbytes;
+                                //uint16_t read = nbytes;
+                                uint16_t read = (left<nbytes) ? left : nbytes;
 
                                 rcode = InTransfer(pep, nak_limit, &read, dataptr);
                                 if (rcode) USBTRACE2("crIN:", rcode);


Sorry for the late reply I am doing exams at the moment. For some unknown reason the hex code that you gave me made the keyboard work.

Upon further inspection it doesn't work when I try to make the firmware myself. Is there anything that needs to be done to get it to work?



« Last Edit: Thu, 17 December 2020, 20:09:37 by hasu »

Offline santo

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #624 on: Mon, 21 December 2020, 01:34:39 »
Is Bluethooth to bluethooth converter possible?
Hi Hasu, I am thinking about all those cases where USB to USB converter is not usable because at least one end (host or keyboard) uses bluethooth only interface (iPad) or all the other cases in which a pure wireless connection is preferred.


Sent from my iPhone using Tapatalk

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #625 on: Thu, 24 December 2020, 08:54:49 »
Updated firmware and fixed STALL error on GET_DESCRIPTOR(CONFIGURATION).
You can download from Keymap Editor or github repo.

I think this solves imcompatibility issues on some keyboards like Logitech G213 and NuType F1.

TrollyBashGuy and etops,
Could you try this on your keyobard when you have time?


Offline garyngzb

  • Posts: 2
Re: USB to USB keyboard converter
« Reply #626 on: Thu, 31 December 2020, 06:07:46 »
Updated firmware and fixed STALL error on GET_DESCRIPTOR(CONFIGURATION).
You can download from Keymap Editor or github repo.

I think this solves imcompatibility issues on some keyboards like Logitech G213 and NuType F1.

TrollyBashGuy and etops,
Could you try this on your keyobard when you have time?



Just received the converter!
It works well on my Logitech Unifying receiver, but not on my other keyboard.

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

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

hid_listen output:

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


TMK:2e5e6a69+/LUFA

usb_state: 12

USB configured.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Thanks!

I tried with the new firmware downloaded from GitHub with the same keyboard, and it works now!
Thanks!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #627 on: Thu, 31 December 2020, 08:30:21 »
garyngzb, Thank you for the feedback!



Offline hyn

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #628 on: Fri, 08 January 2021, 16:30:37 »
Hi hasu, I received the converter at the tail end of last year and it's great, I'm using it with a Ducky Skyline One II (https://www.duckychannel.com.tw/en/Ducky-One2-Skyline-TKL) and it works perfectly. I really like it a lot.

I thought I would post first off to say thank you for making this, but secondly I fixed a problem that others may have.

I recently found that when I rebooted my pc or laptop it wouldn't recognise the keyboard till I unplug and re-plugged it. At first I thought it might be to do with the issues previously discussed in the thread around reboots, but I found instead it was due to the usb switch I was using to swap between my work laptop and home PC. I'm using a UGreen usb switch, and I think it just wasn't providing enough power. I found that you can power it independently and since then it's worked perfectly.

Hope this is the right place to post this and thanks again.
« Last Edit: Fri, 08 January 2021, 16:33:11 by hyn »

Offline JimDetroit

  • Posts: 5
  • Location: Detroit, MI USA
Re: USB to USB keyboard converter
« Reply #629 on: Fri, 08 January 2021, 21:35:24 »
To any users of the Rosewill RK-9200: Hasu's latest patch fixes the non-responsive issue for this keyboard and several others. Thanks, Hasu!

Thanks, Hasu. Please let me know if you think of any other tests to run and I can do them for you and report the results.

JimDetroit,
Thanks for the log. It seems to work as expected and I couldn't find any clue there unfrotunately.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #630 on: Sat, 09 January 2021, 01:05:32 »
hyn and JimDetroit,
Thank you for your feedback!

I believe that recent fix for TOGGLE error and STALL error improved compatibility of this converter grately.
If someone had problem before it is worth trying the latest firmware.

Offline ilikepi2

  • Posts: 3
  • Location: California
  • Amateur Rubber Dome Enthusiast
Re: USB to USB keyboard converter
« Reply #631 on: Mon, 25 January 2021, 18:08:26 »
Scratching my head on this one, so I figured I'd ask here:

I've got a USB to USB converter that I assembled based on this project, which is specifically for the Realforce 87U family:
https://github.com/duoshock/U2U-for-Norbaforce

However, it doesn't seem to take any input from the keyboard itself. Here's the logs from HID_Listen with the TMK debug firmware loaded:

Code: [Select]

TMK:c230460b+/LUFA
   
   
USB configured.
   
Keyboard start.
usb_state: 12

This device stays like this and does not leave this state, even if left alone for about a minute. I had one success with this board outputting inputs by plugging in the converter first and then plugging in the keyboard, but I have not had any luck since then.

 The device is plugged into a USB 2.0 port on my motherboard, but I've also tried USB 3.0 and a USB 3.0 hub as well. This has happened on two different boards I've tried (86 and 87U). Would you happen to have any insight into this?

EDIT: It seems to be hardware related. I used another one I assembled, and it looks like it's working on that one perfectly fine. I will continue investigating and see what's up.
« Last Edit: Mon, 25 January 2021, 19:45:51 by ilikepi2 »
Noxary PC XRF 86u | 87u | HHKB | Lin Montage | Exclusive E8.5 | Switch Couture ET87 | Switch Couture Alice

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #632 on: Mon, 25 January 2021, 19:47:10 »
Tried latest firmware? You can use debug firmware to get more info.

Offline ilikepi2

  • Posts: 3
  • Location: California
  • Amateur Rubber Dome Enthusiast
Re: USB to USB keyboard converter
« Reply #633 on: Tue, 26 January 2021, 01:42:46 »
Thanks for the quick reply, Hasu! I tried the latest copy of the debug firmware, unfortunately the above error is all I got. I will see if I can try and get USB descriptor working and see if anything else comes up.

From further examination, I believe this PCB might have been assembled incorrectly or something happened to it while I was handling it, as another PCB assembled to the exact same standard is working perfectly with my 86U and another one worked properly with my 87U as well. It doesn't look like the Realforce is communicating with the converter properly.

 
Noxary PC XRF 86u | 87u | HHKB | Lin Montage | Exclusive E8.5 | Switch Couture ET87 | Switch Couture Alice

Re: USB to USB keyboard converter
« Reply #634 on: Sat, 20 February 2021, 20:25:19 »
Hi hasu,

I picked up one of your usb2usb converters and have been using it without issue with a couple of keyboards and a recent TMK build.

Keychron K8 (https://www.keychron.com/pages/keychron-k8-wireless-mechanical-keyboard)
Apple A1048

Just passing the info along so they can be added to the list of supported keyboards.

Thanks for making all this possible!


Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #635 on: Sat, 20 February 2021, 23:17:53 »
Thanks for your feedback!

Just updated the first post.

Offline bluemilkfan

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #636 on: Thu, 18 March 2021, 17:54:14 »
apologies as I didn't go through all 13 pages of this thread and so these may have been mentioned. Regardless got my converter today and it worked perfectly for the UNICOMP Model M clone and a compact GMMK. Thrilled about the UNICOMP because I love my backspace and left control in the HHKB layout. Looking forward to seeing what else I can do with this. Really an amazing device! Thank you!

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #637 on: Thu, 18 March 2021, 19:25:19 »
Thanks for your feedback!
Just updated compatibility list in the first post.

Offline elcano

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #638 on: Mon, 22 March 2021, 00:23:53 »
Last week I received one USB to USB converter from 1upkeyboards. I guess that this was the most recent batch before it went out of stock again.

I already learned to use the web TMK Keymap editor and was able to load the generated firmware using dfu-programmer (I use Linux). I was also able to install TMK, compile and flash locally without problems.

However, I have been using a Brand New Model F Keyboard with QMK for some months and I have invested a lot of time learning to configure QMK and configuring my keyboard using C  language functions and macros. I was hoping to be able to use replicate most of the functionality in my non-programmable keyboards using the converter. I know that you don't support QMK, but are you aware for a reason for which this specific converter (probably latest batch) might not work with QMK, as configured currently? I tried using the web QMK Keymap editor. I did exactly the same that I did with the TMK Keymap editor, but after flashing, the PC doesn't receive the keys that I type in the keyboard connected to the converter. I also tried compiling some of the sample keyboard layouts that come in QMK for this converter and got the same results. I made sure that confirm that F_CPU = 16000000.

Again, I'm not expecting support for QMK here. I'll seek that support in the proper forum. Just wanted to check if there was something that we needed to be aware about the most recent batch/version of this device.

Thanks!
« Last Edit: Mon, 22 March 2021, 00:27:13 by elcano »

Offline Zerpellica

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #639 on: Thu, 08 April 2021, 05:25:23 »
Last week I received one USB to USB converter from 1upkeyboards. I guess that this was the most recent batch before it went out of stock again.

I already learned to use the web TMK Keymap editor and was able to load the generated firmware using dfu-programmer (I use Linux). I was also able to install TMK, compile and flash locally without problems.

However, I have been using a Brand New Model F Keyboard with QMK for some months and I have invested a lot of time learning to configure QMK and configuring my keyboard using C  language functions and macros. I was hoping to be able to use replicate most of the functionality in my non-programmable keyboards using the converter. I know that you don't support QMK, but are you aware for a reason for which this specific converter (probably latest batch) might not work with QMK, as configured currently? I tried using the web QMK Keymap editor. I did exactly the same that I did with the TMK Keymap editor, but after flashing, the PC doesn't receive the keys that I type in the keyboard connected to the converter. I also tried compiling some of the sample keyboard layouts that come in QMK for this converter and got the same results. I made sure that confirm that F_CPU = 16000000.

Again, I'm not expecting support for QMK here. I'll seek that support in the proper forum. Just wanted to check if there was something that we needed to be aware about the most recent batch/version of this device.

Thanks!

I got it running on QMK and i'm now learning to code in c.
I dont know what i did different then you because i have 0 experience with this but i would like to help you with as much as i can.
First of all i followed this tutorial (https://beta.docs.qmk.fm/tutorial/newbs_getting_started).
downloaded QMK MSYS for this and used the path converter/usb_usb/hasu.
later in the process i made my own keymap which i think other people can use also because i can see the keymaps from others too.
since you said you have some experience in C language i skip my basic commands (mostly just multiple keystroaks at once)
later i compiled it what also creates a hexfile, this file i flashed to the converter using QMK toolbox.


Offline shadowen

  • Posts: 1
Re: USB to USB keyboard converter
« Reply #640 on: Sun, 11 April 2021, 12:36:04 »
Just wanted to report the converter works for the Logitech g915 with the lightspeed receiver. The app, media, and G keys didn't work, but that is to be expected. Now I just have to make that my next project :)

Genuinely impressive work Hasu, you have changed the world for the better.
« Last Edit: Sun, 11 April 2021, 16:00:59 by shadowen »

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #641 on: Sun, 11 April 2021, 19:46:17 »
Thanks for your report. Just updated list in the first post.

Offline Volny

  • Posts: 235
Re: USB to USB keyboard converter
« Reply #642 on: Sun, 11 April 2021, 21:00:14 »
Is it possible/easy to use this converter to send characters like ("{}[]#$ directly (without needing modifiers), or at least very quickly? I currently use a Ducky Pocket that I've remapped for those characters, but the Ducky does them by sending slow modifier-based sequences. For example, to send a ( it sends Shift-down, 9-down, 9up, Shift-up. The whole sequence takes around 400ms, which makes it impossible to quickly combine or double-tap those keys. If I set the Ducky Pocket to output a single character (which is very fast), would the USB-converter be able to convert that into a very fast ( or { or $ ?

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #643 on: Sun, 11 April 2021, 23:20:18 »
In US and most layouts you can't input ( without Shift in general while you can in French AZERTY.
It depends on keyboard layout on computer regardless of this converter.

Yes, the converter can send Shift and 9 in a row respectively without any interval.


Offline Volny

  • Posts: 235
Re: USB to USB keyboard converter
« Reply #644 on: Sun, 11 April 2021, 23:24:01 »
Lovely. I'm off to buy one then :)

Offline Icemanrec

  • Posts: 25
  • Location: Hong Kong
Re: USB to USB keyboard converter
« Reply #645 on: Fri, 30 April 2021, 21:34:15 »
not listed in the first page but does this work for the 108UG-HiPro JIS model? would love to be able to reprogram all those extra keys.

Offline hasu

  • Thread Starter
  • Posts: 3471
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: USB to USB keyboard converter
« Reply #646 on: Fri, 30 April 2021, 21:58:01 »
We can't know that without trying actually, though I think it works.

All keys specific to JIS should be supported with default firmware.

Offline Icemanrec

  • Posts: 25
  • Location: Hong Kong
Re: USB to USB keyboard converter
« Reply #647 on: Sat, 01 May 2021, 06:26:15 »
We can't know that without trying actually, though I think it works.

All keys specific to JIS should be supported with default firmware.

wow same day reply, very nice! and thank you for feedback i will go and grab one of your controllers, where is best to get one? i am based in hong kong

Offline suicidal_orange

  • * Global Moderator
  • Posts: 4771
  • Location: England
Re: USB to USB keyboard converter
« Reply #648 on: Thu, 06 May 2021, 02:52:56 »
We can't know that without trying actually, though I think it works.

All keys specific to JIS should be supported with default firmware.

wow same day reply, very nice! and thank you for feedback i will go and grab one of your controllers, where is best to get one? i am based in hong kong
Hasu's sales thread for these :)
120/100g linear Zealio R1  
GMK Hyperfuse
'Split everything' perfection  
MX Clear
SA Hack'd by Geeks     
EasyAVR mod

Offline Lunatique

  • Posts: 292
  • Writer, Composer, Artist, Photographer, Gamer
Re: USB to USB keyboard converter
« Reply #649 on: Mon, 10 May 2021, 20:26:50 »
Someone suggested I take a look at this gadget as a viable replacement for TouchCursor. Before I order one, I'd like to make sure it can do exactly what TouchCursor can do, and can do the kind of mapping I need, as seen in this post: https://geekhack.org/index.php?topic=112674

The most important part is I need the spacebar to act like the activator, and then map all the various navigation and highlighting functions onto the home row and surrounding keys, so I never need to go far from home row for anything while typing.