XT to USB converter
So let's start at the beginning, I got a 1986 Model M.
This keyboard talks the XT protocol through a 240º DIN 5 connector
This is a connector that I had never seen and didn't have any kind of converter. So I made one!
Hardware
For the converter itself I used the pro micro because I had already made the ADB converter for the Apple keyboard with great success.
I connected everything according to this diagram:
Keyboard MCU(AVR)
-----. ,-----.
5V|------------------------------+--+----|VCC |
| | | | |
| R R | |
| | | | |
DATA|------------------------------|--+----|PD0 |
CLOCK|------------------------------+-------|PD1 |
| | |
GND|--------------------------------------|GND |
-----' `-----'
R: 1K-4.7K Ohm resistor
I used 1K resistors and it is working fine.
Be very careful and follow the datasheet the Atmega PD0 is the Arduino pin D3 and PD1 is D2 so:
D2 -> Clock
D3 -> Date
To connect the wires to the connectors I followed the diagram at kbdbabel:
In the current version I have the jumper J1 soldered but the 5V connected to RAW... It should be connected to VCC.
It works thou.
Oh, and I didn't find a 240º DIN 5 connector, so I just used a DIN 6 and didn't connect the middle pin.
For the pro micro I have more success using the 3–15 V version with the USB port.
All electronics where bought in AliExpress.
Firmware
For the firmware I used the wonderful TMK project website and chose IBMPC-USB converter link.
To flash the firmware you have to put the Arduino in bootloader mode
This is done by shorting the RST and GND pins twice in quick succession.
After that you have 8s to flash the firmware using this command
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 different.
And now the converter should be ready to use!
Next steps
There are 3 things that I need to do:
- This IBM keyboard sends scancodes that do not correspond to keys that are being pressed. The firmware needs to change to fix that.
- Make a pretty PCB and send it to JLCPCB to get it done.
- Make a 3d printed case.
Only when that is done the project will be finished.
Until then, I'm just enjoying the keyboard.

All images
end
