Rotary Dial Becomes USB Keyboard

[Max] had a rotary dial from an old telephone and — unsurprisingly — had nothing in particular to do with it. The simple answer? Use an Arduino Leonardo to turn it into a USB keyboard device.

Of course, the Leonardo can easily impersonate a USB keyboard, so that’s the easy part of the project. Interfacing to the dial requires an understanding of how the phone system works.

While today, TouchTone phones are most common, they were quite uncommon for many years. Early phones required you to have an operator connect your circuit to another person’s circuit. Unfortunately for the operators, the system was inherently unscalable and also cost prohibitive.

There were a variety of schemes tried and — supposedly — an undertaker who was angry that the operator was connecting his customers to her husband’s competing mortuary invented the dial telephone.

The details are pretty simple. A typical dial has two contacts. There’s a normally open contact that closes when you spin the dial to any position. It says closed until the spring returns the dial to the home position.

The other contact is normally closed and makes or breaks the phone line. Each time the dial rewinds past a position, the contact opens briefly. Of course, this is a mechanical system, so the software has to debounce the inputs, but that’s easy enough.

If you don’t have access to a dial, you could always print one. Sort of.