ADB to USB converter
So a little backstory. I got an Apple m0116 (a variant of the m0116) my first mechanical keyboard. And yhea I was thinking I could just convert this through a regular PS2 to USB converter but no. Apple keyboards talk ADB through a mini-din 4 connector not AT through a mini-din 6.
But I knew there was a way to make a converter because Chyrosran22 shown it this video
So let's start searching!
Gathering information
The first thing I found was the TMK project.
This is the backbone for all my converters and it is amazing.
It even has an online editor where you can make a custom firmware without cloning anything.
In this link you will find the diagrams for the hardware.
And by following these instructions you can easily flash the firmware to the microcontroller.
From all this searching I found a few key things:
First the Apple keyboards used to talk ADB (Apple Desktop Bus) not the IBM AT protocol, and it is better in, so many ways like Daisy-chaining, one port for keyboard and mouse and hot swapping.
Second the Apple keyboards use the mini-din 4 connector.

Not the similar and more popular mini-din 6 connector.
credits to kbdbabel
Some useful sites that helped me in this process were:
- Restoring an Apple Extended Keyboard 2
- Another page like this
- Another medium blog post
- The first one using Arduino
- The connector library
Making the converter
Getting the firmware
I will simplify the process as much as I can.
First I went to the ADB to USB converter site and changed the keys until I got the layout that I currently have.
Because my keyboard is in Portuguese layout, but it's non-standard, so I had to make a matrix to find out which key should I change and to where.
I'll leave the link here.
Now I downloaded the file
Making the hardware
So I first followed the tutorial and got the teensy 2.0 because the Arduino pro-micro was not recommended.
I spent so much time trying to make that thing work you have no idea.
No matter what I did it did not program with the code and I couldn't do anything.
The most useful thing of that teensy was the box it came in...
And now that I see I think I got the last one, because they got discontinued in 2022
Eventually I quitted and just got an Arduino.
My friends it was so much better.
The guys ate TMK do not recommend the Arduino, but they have such a good support that I had an amazing success using it. Althou I do not agree on some details.
I only needed to be careful with the wiring and follow the datasheet because if you remember the diagrams said that the data pin connects to PD0 and in the Arduino PD0 is D3.
I'll leave the diagrams in here as well (credits)
Keyboard Conveter
,------.
VCC---------+--|VCC |
| | |
R | |
| | |
DATA--------+--|PD0 |
| |
GND------------|GND |
`------'
R: 1K Ohm resistor
To flash the firmware I needed to short the RST and GND two times in short succession, and then I have 8 seconds to flash the firmware.
Flashing the firmware is simply running the line:
sudo avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:my_unimap.hex
Replace my_unimap.hex with the name of the hex file you got in the previous step. The name of the port can be another one.
This kind of commands have more support on the Linux side of life.
From my experience with pro micro converters I got a lot of success using the ones that say that go from 3 to 15 V, have the 16MHz crystal and have the USB-C port.
And after all that I got this:
This was the POC that I used for a long time. Some wires on a bread board.
After a few months I stole some prototype circuit boards from my SO, spend one afternoon drawing the best circuit:
And the next afternoon making it:
This device works "well". I had a lot of problems with bad USB cables because they are all old. And I discovered while typing this that the ADB port on the right side of the keyboard works better than the one on the left side.
For some reason if I use the ABD port on the left side the keyboard starts having some weird behaviors like not responding, not registering some keys or registering too many keys (it even turned down my computer once). I used to solve it by disconnecting and reconnecting the converter.
On the right side it behaves as it should. No weird things.
Next steps
Now I want to use my SOs 3d printer to make a nice case for this converter. I already started modeling it but making life has other plans.
So until then this is all we got.

All images
end