ADB to USB Converter DIY (Use Vintage Apple Keyboards With Modern Computers)
I recently came across an old Apple Extended Keyboard II. With vintage keyboards back in style, I was excited to plug it in and try it out.
The keyboard itself used an ADB (Apple Desktop Bus) cable. This is unlike most keyboards of its time which used a PS/2 cable. This meant that I would need an ADB to USB converter.
After taking a look at the few options, I determined that most of these converters were hard to come by. None of them were available on Amazon. Those that were listed on eBay were less than reputable.
There were some private retailers that offered converters Although, the majority of listings come with a hefty price tag, long wait times, and overpriced shipping costs.
Since I’m not a big fan of any of those things, I decided to build my own. I wanted to build this ADB to USB converter with cheap supplies that I could get quickly. Here’s how I did it.
I began by ordering the parts. The list included: a Teensy 2.0, a Mini USB cable, 22 AWG Color Coated Electrical Wire, a 1k Ohm Resistor, shrink tubing, an S-Video Cable, and an S-Video connector.
Wiring the S-Video Connector
There were four pins on the ADB (S-Video) connector. I knew I didn’t need to worry about (2) P SW. I wouldn’t be using it.
I cut one piece of wire for each of the (4) GRND, (3) VCC, and (1) DATA lines and stripped the ends, ignoring the power switch line.
I placed the connector on the table, backside up, preparing to solder the three wires to their corresponding pins (VCC, GND, DATA).
Although soldering was optional, I chose to do it for the sake of convenience. I didn’t want the wires falling out of place at all.
I soldered a red wire to VCC, a black wire to GND, and another red wire to DATA.
I then placed shrink tubing around the three wires and applied heat.
Wiring the Teensy 2.0
Following the above schematic, I wired the ADB (S-Video) connector to my Teensy 2.0. First, I soldered the GND wire to GND. Second, I soldered the VCC wire to VCC. Last, I soldered the DATA wire to D0 (PD0).
After this, I soldered a 1k Ohm pull-up resistor to the backside of the Teensy on VCC & D0 (PD0).
Now that the Teensy 2.0 wiring was complete, I was ready to work on the software aspects of the project.
Flashing the Teensy 2.0
To begin, I needed to download the Teensy loader. This would allow me to flash the Teensy with firmware that would enable it to convert an ADB connection to USB.
I selected my operating system (Windows) and clicked the “Teensy Loader Program” link that was present on the very next page.
If you’re using Windows, I highly recommend installing Linux Mint as a virtual machine in order to take advantage of the “make” command when compiling. Though there are ways to compile on Windows, I can’t vouch for them.
I double-clicked the “teensy.exe” file that was present and was greeted by a window that looked like this.
After plugging my Teensy into my computer with a mini-USB cable, I pressed the button on my Teensy 2.0 to manually enter “Program Mode”.
Now I just needed the hex file that I could flash to the Teensy and convert ADB to USB.
I’ve provided the hex file I compiled here so you don’t have to compile it yourself.
On a new Mint Linux Virtual Machine I ran the commands:
sudo apt install git
sudo apt install gcc-avr
sudo apt install g++
sudo apt install avr-libc
git clone https://github.com/gblargg/adb-usb
Now I could see that the ‘main.hex’ file had been compiled.
I created a share folder in the settings of my Mint Linux virtual machine (VirtualBox) in order to transfer the main.hex file back to my Windows desktop.
After doing this, I simply dragged the ‘main.hex’ file to the teensy loader window and clicked the ‘auto’ button.
Now that everything was ready, I plugged the keyboard into the ADB port that I had soldered to the Teensy.
The ADB to USB conversion had worked and the keyboard was immediately recognized by the computer.