Hasu USB-USB Converter
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
As many here already know, Hasu has developed converters to enable various classic keyboards to be used with USB. These include Apple ADB, Apple M0110, IBM 4704, Next, Sun, IBM XT, and others.
More recently, he has made a USB to USB converter that is programmable, so that virtually any USB keyboard can be programmed to any layout. It includes up to 7 layers and up to 32 Fn keys. I have found this converter so extraordinary and helpful that I decided to post my impressions of it.
Hasu USB-USB Converter; image from Hasu. https://geekhack.org/index.php?topic=72052.0
Once you program the converter to your liking, you can plug any USB keyboard into it to get the layout you have programmed into the converter. Moreover, if you decide to change your layout, you can reprogram the converter. You do this by flashing the firmware, so you could save collections of hex files with various layouts. This would save you the bother of re-entering the key assignments.
Hasu provides instructions for building the converter yourself from a Circuit@Home USB Host Shield and Arduino Leonardo chip, or, for a mere $55, you can buy a fully assembled converter directly from Hasu.
There is a really nice review of the converter on GH:
https://geekhack.org/index.php?topic=74708.0
Here are links to Hasu's thread on the USB-USB and other converters:
https://geekhack.org/index.php?topic=69169.0
workshop-f7/tmk-keyboard-firmware-colle ... 0converter
Here is the link to the TMK firmware:
https://github.com/tmk/tmk_keyboard/tre ... er/usb_usb
And here is the link to the online configurator:
http://www.tmk-kbd.com/tmk_keyboard/editor/usb_usb/
Looking at the configurator, you can see how generic and all-encompassing it is. You could even program a 122-key IBM keyboard as long as it had first been converted to USB (See "Soarer's Converter"). The generic layout also includes European ISO and Japanese layouts. You can simply ignore the keys that aren't on your keyboard, or you can label them with the "NO" code.
There are a few limitations. For example, the converter can only work with keys that send scan codes, so hardwired Fn and Pn keys, like on the Pok3r, could not themselves be remapped in this way. However, any key with a scan code could be assigned a role as Fn (and you could have up to 32 such keys if you wanted to do so). In addition, the converter cannot do NKRO, but it can handle 6KRO, which is more than enough for me.
Hasu is also extremely helpful, answering questions posted on the forums in a timely fashion.
I have programmed the converter for a HHKB-like layout. Thus far, I have found that it works on the following keyboards:
+ CM QFS TKL
+ KBP V60MTS-C
+ IBM SSK with Orihalcon's SDL to USB converter cable
Moreover, it works with an Iogear DVI 4-port KVM and powered USB Hub.
It also works on Windows 10 and Linux (Linux Mint 17.3 64-bit Xfce).
Finally, it works with Synergy software between Windows and Linux computers.
At present, I am using the converter in my home office. I have ordered a second one for work, and I am considering a third for travel.
Because I switch keyboards frequently, one concern I have is how well the converter will withstand repeated connections and disconnections. It looks fairly durable, but I am considering putting it into an enclosure with strain-relief cables to panel-mount connectors. Alternatively, KHAANNN suggested simply using some coiled USB cables and connecting the keyboard to the coiled cable instead of directly to the converter. It might be nice to encapsulate it in a USB cable, such as Orihalcon has done with a variety of converters.
More recently, he has made a USB to USB converter that is programmable, so that virtually any USB keyboard can be programmed to any layout. It includes up to 7 layers and up to 32 Fn keys. I have found this converter so extraordinary and helpful that I decided to post my impressions of it.
Hasu USB-USB Converter; image from Hasu. https://geekhack.org/index.php?topic=72052.0
Once you program the converter to your liking, you can plug any USB keyboard into it to get the layout you have programmed into the converter. Moreover, if you decide to change your layout, you can reprogram the converter. You do this by flashing the firmware, so you could save collections of hex files with various layouts. This would save you the bother of re-entering the key assignments.
Hasu provides instructions for building the converter yourself from a Circuit@Home USB Host Shield and Arduino Leonardo chip, or, for a mere $55, you can buy a fully assembled converter directly from Hasu.
There is a really nice review of the converter on GH:
https://geekhack.org/index.php?topic=74708.0
Here are links to Hasu's thread on the USB-USB and other converters:
https://geekhack.org/index.php?topic=69169.0
workshop-f7/tmk-keyboard-firmware-colle ... 0converter
Here is the link to the TMK firmware:
https://github.com/tmk/tmk_keyboard/tre ... er/usb_usb
And here is the link to the online configurator:
http://www.tmk-kbd.com/tmk_keyboard/editor/usb_usb/
Looking at the configurator, you can see how generic and all-encompassing it is. You could even program a 122-key IBM keyboard as long as it had first been converted to USB (See "Soarer's Converter"). The generic layout also includes European ISO and Japanese layouts. You can simply ignore the keys that aren't on your keyboard, or you can label them with the "NO" code.
There are a few limitations. For example, the converter can only work with keys that send scan codes, so hardwired Fn and Pn keys, like on the Pok3r, could not themselves be remapped in this way. However, any key with a scan code could be assigned a role as Fn (and you could have up to 32 such keys if you wanted to do so). In addition, the converter cannot do NKRO, but it can handle 6KRO, which is more than enough for me.
Hasu is also extremely helpful, answering questions posted on the forums in a timely fashion.
I have programmed the converter for a HHKB-like layout. Thus far, I have found that it works on the following keyboards:
+ CM QFS TKL
+ KBP V60MTS-C
+ IBM SSK with Orihalcon's SDL to USB converter cable
Moreover, it works with an Iogear DVI 4-port KVM and powered USB Hub.
It also works on Windows 10 and Linux (Linux Mint 17.3 64-bit Xfce).
Finally, it works with Synergy software between Windows and Linux computers.
At present, I am using the converter in my home office. I have ordered a second one for work, and I am considering a third for travel.
Because I switch keyboards frequently, one concern I have is how well the converter will withstand repeated connections and disconnections. It looks fairly durable, but I am considering putting it into an enclosure with strain-relief cables to panel-mount connectors. Alternatively, KHAANNN suggested simply using some coiled USB cables and connecting the keyboard to the coiled cable instead of directly to the converter. It might be nice to encapsulate it in a USB cable, such as Orihalcon has done with a variety of converters.
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
Yes, I quite agree that Hasu is a genius. He and Soarer have made it possible for the rest of us to use vintage keyboards with modern computers and to remap them to our liking.t!ng wrote: ↑This is so... brilliant...
I have been doing some additional tests with the Hasu USB-USB converter, and I find that it works with a KVM and two tandem hubs. I added the second 4-port hub that has a switch for each port. This way, I can keep several keyboards connected and switch among them. Alternatively, I can keep different types of USB cables attached, such as a mini-USB for most of my keyboards and a micro-USB for a few of them, such as my Novatouch. In addition, the extra hub provides another level of mechanical protection for the converter.
Comp1, Comp2, Comp3 --- KVM --- pHub --- USB-USB-C --- npsHub --- Kbd1, Kb2, Kb3, Kb4
Comp1 = Computer1, etc.
KVM = 4-port KVM switch
pHub = Powered USB 2.0 hub
USB-USC-C = Hasu USB-USB converter
nps = Non-powered USB 2.0 hub with a switch for each port
Kbd1 = Keyboard1, etc.
My setup has 1 Windows computer and 2 Linux computers sharing a keyboard and mouse and each connected to 3 monitors. The monitors can switch inputs so that any of the computers can use 1, 2, or all 3 monitors. The computers are also running Synergy with the host on Windows and the clients on linux. The Hasu USB-USB converter works fine across all computers. This is more reliable and consistent than using keyboard remapping software.
I have programmed the converter to a HHKB layout. I used Hasu's online configurator to produce the hex file, and I used Atmel FLIP to flash the converter. It was not necessary to use any code or to compile anything.
BTW, I learned the hard way not to use WinAVR (or if you do use this, not to allow the program to modify your Path. I was not careful, and WinAVR overwrote my Path, leaving only the path to WinAVR. Luckily, I was able to retrieve my previous Path by using regedit.
I heard from Hasu today, and he is working on modifications to the firmware for multiple hubs and multiple keyboards attached to the USB-USB converter. However, for me, it is already working with a KVM and two tandem hubs. My second hub has switchable ports, so I can keep multiple keyboards physically attached if desired and switch to the one that I wish to have active. The switchable hub I am using is the Sabrent 4-Port USB 2.0 Hub with Individual Power Switches and LEDs (HB-UMLS):
https://www.amazon.com/Sabrent-4-Port-I ... B00BWF5U0M
Last edited by Hypersphere on 16 Jun 2016, 15:18, edited 1 time in total.
- t!ng
- Awake Sheep
- Location: Germany
- Main keyboard: G80 5000
- Main mouse: Logitech G3
- Favorite switch: Topre/BS
- DT Pro Member: -
Thanks for the amazon link. One question remains here:
Laptop/PC --- USBUSBConverter --- SabrentUSBHub --- Kbd1, USB3.0Stick
Would the USB3.0Stick just ignore the Converter so the Laptop/PC could read/write on it?
Laptop/PC --- USBUSBConverter --- SabrentUSBHub --- Kbd1, USB3.0Stick
Would the USB3.0Stick just ignore the Converter so the Laptop/PC could read/write on it?
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
@t!ng: With my current setup, I think it would be necessary to switch between the keyboard and the USB stick. Note also that the Sabrent hub I am using is USB 2.0, but I think that a USB 3.0 version is available. I would suggest putting a hub between the PC and the converter instead of the way you have it in your diagram. However, Hasu is working on an update to the firmware that should enable attaching more devices after the converter.
EDIT: I edited my previous post -- I had omitted the USB-USB converter!
EDIT: I edited my previous post -- I had omitted the USB-USB converter!
- matt3o
- -[°_°]-
- Location: Italy
- Main keyboard: WhiteFox
- Main mouse: Anywhere MX
- Favorite switch: Anything, really
- DT Pro Member: 0030
- Contact:
I purchased one. I'll post my impressions as soon as I get it.
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
Great, matt3o! Looking forward to your impressions.
I am typing this on my Novatouch, remapped to a HHKB-layout via the Hasu USB-USB converter. It works perfectly.
EDIT: Thus far, I have only used the online configurator to make my hex file. This works okay for some of my keyboards. However, I have run into problems with the CapsLock indicator light on some keyboards -- it behaves in the opposite way to what is expected. That is, the CapsLock LED is on when the CapsLock is off, and conversely, the CapsLock LED is off when the CapsLock is on. What should I do to make the CapsLock indicator LED function correctly with the USB-USB converter? BTW, I have remapped CapsLock to L_Ctrl, and I use Fn+Tab ---> CapsLock.
In addition, on my Realforce 87U, the situation gets very confused with the NumLock and CapsLock LEDs and controls. To avoid major problems, I have had to disable the NumLock using a DIP switch setting. However, I have not explicitly assigned a NumLock key using the online configurator. I might try this, make a new hex file, and reflash the USB-USB converter.
UPDATE: I erased the USB-USB converter, used the online configurator to generate a new hex file, and reflashed the converter. This time, the CapsLock and its indicator LED worked as expected.
In addition, this time, I remapped Scroll Lock in the nav island on my RF87U to NumLock. With all 4 DIP switches set to Off, the CapsLock and NumLock together with their indicator LEDs now work as expected.
I am typing this on my Novatouch, remapped to a HHKB-layout via the Hasu USB-USB converter. It works perfectly.
EDIT: Thus far, I have only used the online configurator to make my hex file. This works okay for some of my keyboards. However, I have run into problems with the CapsLock indicator light on some keyboards -- it behaves in the opposite way to what is expected. That is, the CapsLock LED is on when the CapsLock is off, and conversely, the CapsLock LED is off when the CapsLock is on. What should I do to make the CapsLock indicator LED function correctly with the USB-USB converter? BTW, I have remapped CapsLock to L_Ctrl, and I use Fn+Tab ---> CapsLock.
In addition, on my Realforce 87U, the situation gets very confused with the NumLock and CapsLock LEDs and controls. To avoid major problems, I have had to disable the NumLock using a DIP switch setting. However, I have not explicitly assigned a NumLock key using the online configurator. I might try this, make a new hex file, and reflash the USB-USB converter.
UPDATE: I erased the USB-USB converter, used the online configurator to generate a new hex file, and reflashed the converter. This time, the CapsLock and its indicator LED worked as expected.
In addition, this time, I remapped Scroll Lock in the nav island on my RF87U to NumLock. With all 4 DIP switches set to Off, the CapsLock and NumLock together with their indicator LEDs now work as expected.
-
- Location: Canada
- Main keyboard: Apex 350 and 300
- Main mouse: Dell MS111-L
- Favorite switch: Lua Macros
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Hasu ships this stuff himself. When I ordered my HHKB BT controller from him, he dispatched it quickly but with the distance it took several days to arrive. Maybe a week, if I recall. I was in California at the time.
- Hypersphere
- Location: USA
- Main keyboard: Silenced & Lubed HHKB (Black)
- Main mouse: Logitech G403
- Favorite switch: Topre 45/55g Silenced; Various Alps; IBM Model F
- DT Pro Member: 0038
You can order direct from Hasu or buy the converter from 1up keyboards.
https://www.1upkeyboards.com/shop/contr ... converter/
Iup keyboards is currently out of stock, but they say they will be back in stock soon. You can sign up for their newsletter to get notifications.
https://www.1upkeyboards.com/shop/contr ... converter/
Iup keyboards is currently out of stock, but they say they will be back in stock soon. You can sign up for their newsletter to get notifications.
- matt3o
- -[°_°]-
- Location: Italy
- Main keyboard: WhiteFox
- Main mouse: Anywhere MX
- Favorite switch: Anything, really
- DT Pro Member: 0030
- Contact:
it took mine almost one month to arrive from order to doorstepthemightymolar wrote: ↑11 Feb 2019, 17:54I'm getting one as soon as it is in stock. How long does the process to get one take? I'm told they are handmade in Japan and I kinda need it yesterday--for work.
-
- Location: Bensalem, PA, USA
- Main keyboard: IBM Model M
- Main mouse: Kensington Slimblade Trackball
- Favorite switch: Buckling Spring
- DT Pro Member: -
- Contact:
I'm considering ordering this and was hoping people could answer some questions:
1. I see that this runs TMK. Can this be flashed to run QMK? If so, can it use with VIA?
2. I'm concerned about the available memory. I'd like to program a LOT of Macros and I'm worried I am going to run out of memory.
1. I see that this runs TMK. Can this be flashed to run QMK? If so, can it use with VIA?
2. I'm concerned about the available memory. I'd like to program a LOT of Macros and I'm worried I am going to run out of memory.
-
- Location: The Netherlands
- Main keyboard: New Model F77
- Main mouse: Logitech Trackman Wheel
- Favorite switch: Beamspring
I have one of those converters.
I asked Hasu about it; he said he didn't know.
Checking the QMK source, I see references to the usb-usb converter, so maybe it will work. I haven't tried it yet, though.
I asked Hasu about it; he said he didn't know.
Checking the QMK source, I see references to the usb-usb converter, so maybe it will work. I haven't tried it yet, though.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
You should be able to design your own layout and layers and build straight from QMK Configurator using this preset:
https://config.qmk.fm/#/converter/usb_u ... LAYOUT_all
Macros, however, need to be done in source code, which you'd need to build locally. But you can at least give QMK a test drive on your hardware to check that it works.
https://config.qmk.fm/#/converter/usb_u ... LAYOUT_all
Macros, however, need to be done in source code, which you'd need to build locally. But you can at least give QMK a test drive on your hardware to check that it works.
-
- Location: The Netherlands
- Main keyboard: New Model F77
- Main mouse: Logitech Trackman Wheel
- Favorite switch: Beamspring
I'm now typing this from my freshly flashed QMK-hasu-usb-usb converter.
Works like a charm.
- depletedvespene
- Location: Chile
- Main keyboard: IBM Model F122
- Main mouse: Logitech G700s
- Favorite switch: buckling spring
- DT Pro Member: 0224
- Contact:
That layout has everything except the split numpad0. Who should we sue now?Muirium wrote: ↑31 Jul 2022, 15:07You should be able to design your own layout and layers and build straight from QMK Configurator using this preset:
https://config.qmk.fm/#/converter/usb_u ... LAYOUT_all
Macros, however, need to be done in source code, which you'd need to build locally. But you can at least give QMK a test drive on your hardware to check that it works.
-
- Location: The Netherlands
- Main keyboard: New Model F77
- Main mouse: Logitech Trackman Wheel
- Favorite switch: Beamspring
Indeed, I didn't know, but as it turns out, the USB-HID standard ( https://www.usb.org/sites/default/files ... 1_12v2.pdf ) actually defines keycodes for 00 and 000:depletedvespene wrote: ↑01 Aug 2022, 01:49That layout has everything except the split numpad0. Who should we sue now?
- 176 = 0xb0 for Keypad 00
- 177 = 0xb1 for Keypad 000
- depletedvespene
- Location: Chile
- Main keyboard: IBM Model F122
- Main mouse: Logitech G700s
- Favorite switch: buckling spring
- DT Pro Member: 0224
- Contact:
Model M keyboards can have their numpad0 key split (just like numpad+ and numpadEnter). The right side produces the 0x62 (PAD_0) scan code and the leftside outputs 0xB6 (EXTRA_INSERT). I already have successfully used this with a Soarer Converter, so I don't see any reason why hasu (and QMK, by extension) wouldn't be able to include splitting numpad0 — perhaps it slipped under hasu's radar because most keyboard manufacturers cheapened out on the switch and it just wasn't there on whatever he tried on.BuGless wrote: ↑01 Aug 2022, 23:47Indeed, I didn't know, but as it turns out, the USB-HID standard ( https://www.usb.org/sites/default/files ... 1_12v2.pdf ) actually defines keycodes for 00 and 000:depletedvespene wrote: ↑01 Aug 2022, 01:49That layout has everything except the split numpad0. Who should we sue now?
- 176 = 0xb0 for Keypad 00
- 177 = 0xb1 for Keypad 000
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Hasu will certainly appreciate you blaming QMK’s (Configurator’s contributor’s) feature shortfalls on him.
TMK. That’s his one. Confusing, I know.
TMK. That’s his one. Confusing, I know.
- depletedvespene
- Location: Chile
- Main keyboard: IBM Model F122
- Main mouse: Logitech G700s
- Favorite switch: buckling spring
- DT Pro Member: 0224
- Contact:
Discovering a slight oversight in TMK gives me the Sacred Right and Saintly Duty of slightly trolling hasu for it.
AFTER TMK has been corrected, I'll go to pest the QMK guys for falling behind.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Loads TMK's USB to USB keymap (which doesn't update the Unimap url when selecting?) and sees you are correct. Fair enough. Good luck with your request.