Hasu USB-USB Converter

User avatar

12 Jun 2016, 23:24

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.jpg (59.35 KiB) Viewed 11886 times
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:


Here are links to Hasu's thread on the USB-USB and other converters:


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:


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:



+ 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.

User avatar
Awake Sheep

13 Jun 2016, 01:22

This is so... brilliant...

User avatar

15 Jun 2016, 18:18

t!ng wrote: This is so... brilliant...
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.

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.

User avatar
Awake Sheep

16 Jun 2016, 14:51

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?

User avatar

16 Jun 2016, 15:14

@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!

User avatar

16 Jun 2016, 19:56

I purchased one. I'll post my impressions as soon as I get it.

User avatar

16 Jun 2016, 22:38

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.


11 Feb 2019, 17:54

matt3o wrote:
16 Jun 2016, 19:56
I purchased one. I'll post my impressions as soon as I get it.
I'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.

User avatar

11 Feb 2019, 22:07

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.

User avatar

11 Feb 2019, 23:30

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.

User avatar

12 Feb 2019, 08:41

themightymolar wrote:
11 Feb 2019, 17:54
I'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.
it took mine almost one month to arrive from order to doorstep

Post Reply

Return to “Workshop”