Summary of ROTARY DIAL BECOMES USB KEYBOARD
This project by Max repurposes an old rotary telephone dial by connecting it to an Arduino Leonardo, which acts as a USB keyboard device. The rotary dial’s mechanical pulses are interpreted by the Arduino to emulate key presses, requiring an understanding of the dial's two-contact mechanism and signal debouncing. This transforms vintage hardware into a modern USB interface, demonstrating creative reuse and the Arduino Leonardo’s capability to impersonate USB keyboards.
Parts used in the Rotary Dial USB Keyboard Project:
- Rotary dial from an old telephone
- Arduino Leonardo microcontroller
- Connecting wires
- Pull-up or pull-down resistors (for debouncing)
- USB cable (for connecting Arduino to computer)

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.
Source: ROTARY DIAL BECOMES USB KEYBOARD