Skip to content

USB Devices

USB Input Devices

I like to build devices that show up as standard USB HID interfaces, which allows them to work without requiring any additional drivers.

ADB to USB adapter

Older Macintosh computers used the Apple Desktop Bus protocol to communicate with keyboards and mice. It is a one-wire, bidirectional multi-drop protocol. More information on my adapter design

Symbolics keyboard to USB interface

If you want to connect your Symbolics Lisp machine's keyboard to your more modern recent system, you need to convert it to USB. The interface is quite simple: it looks like a 128-bit shift register with one bit per key on the keyboard. There does not appear to be any ghosting, which means N-key roll over is not an issue! Read on for more details...

USB E-Stop

The ATmega32u4 has built in USB hardware and makes it possible to make just about anything into a USB HID device. This is a emergency stop from an ancient CNC mill that now talks to any mill control program.

MIDI to USB Foot pedals

For my office I've built a set of MIDI footpedals that replay vi keyboard commands and mouse macros. it isn't as useful as I had initially thought, but occasionally useful. The MIDI interface is a total hack -- I just use a resistor to transform the current loop into a voltage. Read on for more details...

USB Morse Code Keyboard

I'm an Amateur Extra class radio operator and occasionally enjoy working the HF bands. For working digital modes like PSK31, this iambic paddle Morse code keyer acts as a USB keyboard when you key in correct codes and restores some of the old-fashioned feel. Read on for more details...

USB HID class

I taught a class a few times at NYC Resistor and again to Princeton's CS club on turning arbitrary things into USB HID devices. Students made keyboards, joysticks and mice from various random bits of electrical components from the scrap bins. Presentation PDF if you want to try it yourself.

Output and misc devices

Digital calipers

Digital calipers have an SPI like data signal that reports the current position. It's pretty easy to tap, with the caveat that the voltages are too low to trigger a +5V Teensy. Instead I enabled pull-ups on the data lines, which seem to back drive the MCU in the calipers and it seems to work without a battery installed.

Model 15 Teletype

To drive a 1930's Model 15 Teletype, I've designed a USB serial port and 100VDC, 60mA current loop boost converter. It converts the ASCII to 5-bit Baudot at 45.5 Baud and generates the high voltage to operate the selector coil. Read on for more details...

Analog gauge

To have an out-of-band display on my desk, I've converted this antique miliampere gauge into a USB output device. The teensy reads commands from the serial port to control the value displayed on the gauge as well as the color of the RGB LED. Read on for more details...


List of pages



Last update: November 8, 2020