Skip to content

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

IBM 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  

credits

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:

din 5 240
credits

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.

converter front

converter top

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.
converter side

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.

final image





















All images

image image image image image end