ADB to USB Converter DIY (Use Vintage Apple Keyboards With Modern Computers)

Matt Medsker
5 min readJan 7, 2022
Photo by Federica Galli on Unsplash

I recently came across an old Apple Extended Keyboard II. I was excited to plug it in and try it out.

The keyboard itself used an ADB (Apple Desktop Bus) cable. This meant that I would need an ADB to USB converter. This is unlike most keyboards of its time which used a PS/2 cable.

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

This is a diagram of the front side of the ADB (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 and stripped the three wires that I needed.

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.

This is the back side of the ADB (S-Video) Connector with the pins sticking straight up.
This is the back side of the ADB (S-Video) Connector with the pins sticking straight up.

I placed the connector on the table, backside up, preparing to solder the three wires to their corresponding pins (VCC, GND, DATA).

Although soldering isn’t necessary, I chose to do it for the sake of convenience. I didn’t want the wires falling out of place at all.

This is how I soldered the wires onto the ADB (S-Video) connector.

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

This is the Teensy 2.0 wiring schematic I used to achieve ADB to USB conversion.

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

This is the wiring schematic for the backside of the Teensy 2.0.

After this, I soldered a 1k Ohm pull-up resistor to the backside of the Teensy on VCC & D0 (PD0).

This is what the Teensy 2.0 looked like once it had been connected.

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.

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

cd adb-usb/

make

ls

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.

The ADB to USB conversion worked immediately, without trouble.

--

--