I’m lucky enough to have a fab Apple Extended Keyboard II that belongs to my Macintosh SE. Unfortunately, it wasn’t doing much good connected to my rarely-used SE, so I figured a better home for it would be on my desk at work, where I spend the day pounding away on a crummy keyboard anyway.
This keyboard is a dream to type on because it uses mechanical switches. And I lucked out: Apple made a lot of revisions of this keyboard with cheap switches, but it turns out that I got one of the good ones. Mine is a USA model with authentic Alps Cream key switches. Lovely!
The biggest stumbling block is the interface to the computer. The Apple Extended Keyboard II is from the days of ADB, Apple Desktop Bus. The internet revealed two solutions: An expensive and sometimes-hard-to-find adapter by Griffin, or a $16 microcontroller and some DIY elbow grease. Naturally I chose the latter.
All that’s in this project is a Teensy 2.0 microcontroller and the keyboard. You do have to compile and install the firmware, though. A simple task, though on my Mac I had to install CrossPack to compile for the Teensy and TeensyLoader to flash code to it. Here I must give a shout out to the awesome folks who developed it - they also have support for a bunch of keyboard types.
~$ git clone git://github.com/tmk/tmk_keyboard.git
~$ cd tmk_keyboard/converter/adb_usb
Then use the TeensyLoader app to flash the .hex image onto the uC.
Connect ADB pin 1 (data) to Teensy pin F0, pin 3 to Teensy vcc (5v), and pin 4 to Tesny gnd (ground). You could wire up a DIN-4 (“s-video”) connector if you wanted (female to use an authentic Apple cable, male to make your own cable), or you could completely enclose the Teensy into the keyboard like I did.
Here’s a gallery. The process is as simple as connecting the proper 3 pins to your ADB keyboard and then programming the microcontroller. I chose to enclose the entire converter inside my keyboard, as I didn’t want a little dongle hanging out to break and I also didn’t have the proper connecters to mate with the keyboard’s.