Apple Extended Keyboard II
<img src="http://i.imgur.com/ohvte2M.jpg" width=500>
The best mechanical keyboard on the other side of the spectrum. Also supports ADB so can be used on the Mac LC III, a Motorola 68000 Mac that also has an ethernet card or an Apple ][e Card.
It doubles as my primary mechanical keyboard, thanks to an ADB to USB adapter I made and put in an Altoids tin.
- 1 USB Keyboard Converter
- 2 Building an ADB Keyboard Converter with Pro Micro
USB Keyboard Converter
It's what you need to make use of the Apple Extended Keyboard II.
They even sell X68000 keyboard adapters.
Make Your Own
You don't even need much for this one, just a cheap Arduino Pro Micro and an S-Video female adapter. If you use something other than a teensy++ though, reconfigure the keymap.
A pull up resistor of 1K is required though, especially for mouse functionality. But you might get away with it if you have a short S-Video cable.
<img src="http://i.imgur.com/6jcvBl.jpg" width=400>
Building an ADB Keyboard Converter with Pro Micro
<img src="http://i.imgur.com/6eCxrpW.jpg" width=400>
<img src="http://i.imgur.com/kZH4pyg.jpg" width=400>
If you decide to use a Teensy, at $15, that's probably the best and least frustrating option.
Simply follow the steps shown here: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
You can also choose to use a converter firmware with simpler code built by gblargg. https://github.com/gblargg/adb-usb
I decided to use an $8 Arduino Pro Micro to cut costs. However, the Pro Micro can be deeply frustrating to work with, so it might not be worth saving $7 when you might spend extra hours.
The first thing to notice is that the Pro Micro comes in both 5V and 3.3V forms. The Apple keyboard requires 5V to power up, so make sure you purchase the right one. Here's a good cheap version that you can purchase on Amazon.
- $8 - OSOOYOO 5V Arduino Pro Micro
- $5 - 1K Resistor
- $6 - 4-pin Mini-DIN (S-Video) Female Socket
- $5 - Breadboard Jumper Cable (Female to Female)
You will also need a decent soldering iron, so factor that in for cost and effort if you don't already have one.
Soldering the Pro Micro Header Pins
The header pins of the Pro Micro come unsoldered. You'll need to solder them on yourself.
Here's a good guide: https://learn.sparkfun.com/tutorials/arduino-shields/installing-headers-assembly
We need to connect a resistor(any of 1k-10kOhm) between VCC (5V) and data. The converter might work without the resistor, but we strongly recommend having it, especially if you have long cables or are using an ADB mouse.
Solder on the pull up 1K resistor from VCC pin to Pin 3, along the top.
S-Video (4-pin Mini-DIN) Socket
The ADB Cable is exactly the same pinout as an 4-pin S-Video socket. Just buy one of those on Amazon:
Next, we need to add wires to the socket. The easiest method is to use Breadboard Jumper Cable (Female to Female). It's as simple as plugging them in: note that on the socket it might be a bit of a tight fit, but it works. If you want to keep the wires on there, hot glue them in.
Attaching the ADB Socket
With jumper cable attached, plugging in the socket to the Pro Micro is quick and easy and needs no soldering (other than the soldering already done to attach the header).
However, you do need to make sure the correct socket pins go to the right place on the Pro Micro. Observe the pinouts below:
ADB Male Pinout Diagram (or, female socket looking from behind)
,-.,-. +5V / 3 4 \ GND Data | 1 2 | Power key \ == / ------
The pinout is very simple:
|ADB Pin||Pro Micro Pin #||Teensy Pin #|
The result should look something like this:
With that, we're ready to install the firmware.
Use apt-get or yum/dnf to install:
avr-libc- Development dependencies.
avrdude- The flasher program used for the Pro Micro.
- Example: Flashing a .hex binary (run as root):
avrdude -p atmega32u4 -P /dev/ttyACM0 -b57600 -c avr109 -D -U flash:w:adb_usb_lufa.hex
Also make sure to git clone this: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
One major issue is that the Pro Micro comes set in bootloader mode by default, but after flashing it, there is no button like on the Teensy to send it back to bootloader mode.
This means that if you made a flashing mistake, to send it back to bootloader mode (for a mere 8 seconds!) you'll need to tap the GND and RST pins together with a wire twice, immediately after plugging it into USB. You could wire up a button to make this easier, but you might as well get a Teensy at that point.
Modify the Makefile
Before building, you need to modify the Makefile to fit your board. Open up
tmk_keyboard/converter/adb_usb/Makefile and change the following variables to these new values:
MCU = atmega32u4 OPT_DEFS += -DBOOTLOADER_SIZE=512 PROGRAM_CMD = avrdude -p $(MCU) -P /dev/ttyACM0 -c avr109 -U flash:w:$(TARGET).hex
Compile and Flash
Now we can compile and flash the ADB Converter.
You have a choice between
KEYMAP=plain (Standard Apple Keyboard Layout) and
KEYMAP=hasu (Hasu's PS/2 Style Layout).
Run this command as root from the
sudo make -f Makefile KEYMAP=plain program
This will compile the code and program the Pro Micro all in one shot.
Make a Case
This is optional, but you can put the keyboard controller into an Altoids tin and keep it encased and stable using glue gun. It's cheap, durable, and looks pretty cool.