Building a Modular Interface for a 1916 Western Electric Wall Phone
There’s something deeply satisfying about preserving original hardware while quietly teaching it new tricks.
Rather than gutting or permanently modifying a 1916 Western Electric wall phone, this project is being built one module at a time—each responsible for understanding or interacting with a specific part of the phone’s original behavior.
The goal is simple:
Create a digital controller that works with the original hardware—not instead of it.
No irreversible changes. No lost history. Just thoughtful layering.
A Modular Approach
This system is being built in stages:
- Detect the hand crank (magneto)
- Drive the bell
- Interface with audio
- Add a rotary dial
- Coordinate everything through a central controller
Each function becomes its own self-contained module.
This post focuses on the first:
Detecting when the crank is turned.
Module 1: Hand Crank Detection
The crank generates its own electricity—roughly:
- 50–100 volts AC
- variable frequency depending on how fast it’s turned
That means the circuit must:
- Detect AC
- Handle high voltage safely
- Isolate the Raspberry Pi
The Circuit

At the heart of the design is an optocoupler (H11AA1).
This allows the high-voltage AC signal from the magneto to be detected without directly connecting it to the Raspberry Pi.

How It Works
- Turning the crank generates AC voltage (J1)
- The voltage is limited and protected (MOV1, F1, R1, R2)
- The optocoupler detects the waveform (U1 Pins 1 & 2)
- Its internal transistor pulls the signal LOW (U1 Pin 5)
- The controller interprets this as crank activity
Why Two Series Resistors
Instead of a single resistor, two resistors (R1 & R2) are placed in series:
- voltage is shared between them
- heat is distributed
- each component operates under less stress
This improves reliability, especially with unpredictable high-voltage input.
Why 1 Watt Resistors
Even though current is low, voltage is high.
Using the formula:
P = V² / R
The resistors can still dissipate measurable power.
Using 1W resistors (larger, typically blue with metal film or oxide, but not always) instead of 1/4W (smaller, typically tan with carbon film, but not always):
- reduces heat buildup
- increases durability
- provides headroom for spikes
Adjusting If Detection Is Weak
If the circuit doesn’t detect cranking reliably:
- Reduce R1 & R2 resistor values slightly (e.g., 68k → 47k)
- This increases current through the optocoupler
But lower resistance increases heat, so changes should be gradual.
What the MOV Does
The MOV (Metal Oxide Varistor) protects against voltage spikes.
- Does nothing during normal operation
- Activates only when the voltage exceeds a threshold (150 VAC)
It acts like a surge absorber across the magneto leads.
What an Optocoupler Does
An optocoupler contains:
- An LED (input side)
- A transistor (output side)
Instead of a direct electrical connection, it uses light.
This provides complete isolation between:
- high-voltage crank circuit
- low-voltage digital electronics
Why One Pin Is Not Used
The H11AA1 includes an extra pin 6 (base connection), which is not needed in this design.
The circuit only requires:
- input pins 1 & 2 (AC detection)
- output pins 4 & 5 (transistor switching)
What a Pull-Up Resistor Does
GPIO pins cannot be left floating.
The pull-up resistor ensures:
- default state = HIGH
- stable readings
The optocoupler pulls the line LOW when active.
Why 10k Was Chosen
10k provides a good balance:
- Strong enough to define logic state
- Weak enough to avoid unnecessary current draw
Why a 1k Resistor on GPIO
This resistor protects the input pin:
- limits current
- reduces risk of damage
- isolates the microcontroller slightly from the circuit
Why a Zener Diode Is Used
The zener diode clamps voltage:
- If the voltage rises too high, it conducts to ground
This protects the GPIO from spikes.
Why the Zener Voltage Is Higher
The zener must not interfere with normal logic levels.
So:
- 3.3V system → use ~3.6V zener
- 5V system → use ~5.1V zener
This ensures it only activates during faults.
3.3V vs 5V Logic
For Raspberry Pi:
- Strictly 3.3V only
- Not 5V tolerant
For Arduino:
- Often 5V tolerant (depending on model)
To adapt the circuit:
3.3V version:
- Pull-up to 3.3V
- 3.6V zener
5V version:
- Pull-up to 5V
- 5.1V zener
All crank-side components remain unchanged.
Optional Components
Optional but recommended:
- MOV → protects against spikes
- Zener diode → protects GPIO
- Fuse → protects circuit from faults
Required components:
- optocoupler
- resistors
- pull-up
Current Limitation
At this stage, the circuit detects any AC signal.
That includes:
- hand crank activity
- external ringing voltage
This means the system cannot yet distinguish between the two.
Future Module
The next module will:
- supply AC power to ring the bell
- prevent that signal from triggering crank detection
- ignore crank input while ringing is active
This will separate:
manual action vs system-driven behavior
Philosophy: Preserve, Don’t Replace
The goal is not to simulate the phone.
It is to preserve:
- Real mechanical behavior
- Real electrical generation
- Real sound and motion
The digital system simply listens and augments.
Current Status
- Circuit designed
- Verified in KiCad
- Components being sourced (including optocoupler)
- Breadboard testing next
Closing Thought
This is the first bridge between 1916 hardware and modern systems.
A simple mechanical action becomes:
a physical signal → an electrical signal → a digital event
And that’s where the real transformation begins.



One response to “Detecting a Phones Hand Crank”
[…] with the crank detection circuit, the goal is not to replace the original system but to sit alongside it. Each module is designed to […]