Using A Vintage Apple Keyboard With A Modern Computer

The project was an Apple M0110A keyboard from the Mac Plus era, and the problem was getting it to work on a modern computer over USB. This keyboard used the older telephone-style connector that came before ADB, and the cable wasn’t the same as a normal handset cord. I showed the keyboard first, pointed out the missing rear foot that someone had replaced with a rubber washer, and gave a quick listen to the switches, which had a fairly loud mechanical sound with a bit of spring echo inside the case.

The adapter I had ordered took a long time to arrive from Japan, but once it showed up I opened it and found that it already included a cable. The converter was a small TMK M0110 board with a USB connection on one side and the Apple keyboard jack on the other. I opened the shrink wrap and took a closer look at the board, which used an Atmel ATmega32U2 microcontroller and a 16 MHz crystal, along with a few supporting components.

First Look
First Look

Even though the included cable meant I could have skipped it, I went ahead and showed how to make one. The keyboard side used 4P4C connectors, not the larger RJ11 style used for wall phone jacks. I used a handset cord, a cheap crimp tool, and loose 4P4C plugs, then cut one end off, stripped back the outer jacket, lined up the conductors, and crimped on a new plug. I also pointed out that the adapter board itself had pads for either crossed or straight-through wiring, and the one I received was set up for a crossed cable.

Making A Cable
Making A Cable

With the adapter connected to a Linux Mint laptop, I unplugged and reconnected it to watch the system messages. Linux detected it as a TMK M0110 keyboard converter with no errors, and the keyboard worked right away in a text editor. The basic keys, numbers, tab, and shift all behaved as expected, but some of the modifier keys were mapped in ways I didn’t want. Option acted like Alt, Caps Lock was acting as Control, and the Clear key was tied to Num Lock.

To fix that, I pulled up Hasu’s online keymap editor and loaded the M0110 layout. I remapped the modifier keys to better match a more modern keyboard layout, changed Caps Lock back to Caps Lock, and looked through some of the layer and function options the firmware supported. The editor ran entirely in the browser and let me download a custom firmware image once the layout was set.

Testing The Keyboard
Testing The Keyboard

Flashing the new keymap took a little command-line work. I put the converter into programming mode with the button on the board, checked the USB device ID, and used dfu-programmer under Linux. The chip identified itself as an ATmega32U2, so I erased the existing firmware, flashed the new file, and reset the board. After that, the remapped keys worked the way I wanted, including copy and paste using the reassigned modifier key and a proper Caps Lock.

Examining The Key Switches
Examining The Key Switches

I pulled a few keycaps to see what switches were inside and compared them against Deskthority’s documentation. Since this keyboard was made in Japan, the switches matched the Mitsumi version rather than Alps or SMK. I also cleaned off the old improvised foot on the bottom and replaced it with a rubber foot that matched the height well enough to level the keyboard.

Wrap Up
Wrap Up

The keyboard worked well over USB, the new keymap stuck, and it typed cleanly on the modern machine.

— Aaron

Watch Now!

Links

Timestamps

00:00 – Intro

00:25 – First Look

04:48 – Unboxing

09:22 – Making A Cable

16:43 – Testing The Keyboard

20:45 – Updating The Keymap

30:38 – Examining The Key Switches

34:50 – Wrap Up

«
»