Apple Extended Keyboard II

From Bibliotheca Anonoma

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

USB Keyboard Converter[edit]

It's what you need to make use of the Apple Extended Keyboard II.

They even sell X68000 keyboard adapters.

https://geekhack.org/index.php?topic=72052.0

Make Your Own[edit]

https://geekhack.org/index.php?topic=14290.msg277407#msg277407

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[edit]

<img src="http://i.imgur.com/6eCxrpW.jpg" width=400>

<img src="http://i.imgur.com/kZH4pyg.jpg" width=400>

Teensy 2.0[edit]

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

Pro Micro[edit]

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.

Parts[edit]

Total: $24

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[edit]

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

1K Resistor[edit]

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.

Here's a good pull up 1K resistor: 100pcs.

Solder on the pull up 1K resistor from VCC pin to Pin 3, along the top.

S-Video (4-pin Mini-DIN) Socket[edit]

The ADB Cable is exactly the same pinout as an 4-pin S-Video socket. Just buy one of those on Amazon:

https://www.amazon.com/gp/product/B00EK7ZCD4/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

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[edit]

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 #
1 (Data) 3 D0
2 (Power) N/A N/A
3 (+5V) VCC 5V
4 (GND) GND GND
Note: The Power Key Pin (Pin 2) does not need to be connected at all. Traditionally, ADB uses this line to power the Mac system up, but this converter interprets the power key as an ordinary key instead.

The result should look something like this:

[[File:|frame|none]]

With that, we're ready to install the firmware.

Dependencies[edit]

Use apt-get or yum/dnf to install:

  • avr-gcc and 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

Bootloader Mode[edit]

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.

https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/troubleshooting-and-faq#ts-reset

Modify the Makefile[edit]

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[edit]

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 tmk_keyboard/converter/adb_usb/ directory:

sudo make -f Makefile KEYMAP=plain program

This will compile the code and program the Pro Micro all in one shot.

Note: If you are recompiling the code and meet compilation errors, delete all the new object files adb_usb_lufa* and the folder obj_adb_usb_lufa/, then try again.

Make a Case[edit]

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.