-
Notifications
You must be signed in to change notification settings - Fork 0
Hardware Wiring and Pinouts
Tyler Hatfield edited this page Aug 30, 2026
·
1 revision
This page documents the complete hardware architecture, pinout assignments, and electrical interface circuits for reviving vintage rotary telephones with the Hosyond ESP32-S3-WROOM-1 development board.
| GPIO Pin | Function | Peripheral / Connection | Electrical Characteristics |
|---|---|---|---|
| GPIO 1 | ADC1_CH0 | MAX4466 Electret Microphone Analog Out | 0.0V – 3.3V Analog (Internal DC baseline tracking) |
| GPIO 4 | Input Pullup | Handset Hook Switch | Grounded (LOW) when handset is lifted; Open (HIGH) on cradle |
| GPIO 5 | Input Pullup | Rotary Dial Pulse Switch | Normally Closed (LOW); Pulses HIGH/LOW as dial spins back |
| GPIO 6 | Input Pullup | Rotary Dial Off-Normal Shunt | Grounded (LOW) continuously while dial is off its rest position |
| GPIO 7 | Output PWM | IRF640N MOSFET Gate | 3.3V Logic PWM driving 15Hz–30Hz AC Bell Ringing |
| GPIO 16 | Output | MAX98357A I2S BCLK | I2S Bit Clock (16kHz |
| GPIO 17 | Output | MAX98357A I2S LRCK | I2S Word Select / Frame Clock (16kHz) |
| GPIO 18 | Output | MAX98357A I2S DOUT | I2S Serial Audio Data Stream Out |
| GPIO 48 | Output | WS2812 RGB LED | Built-in status indication LED |
| GPIO 0 | Input | Boot / Setup Button | Hold 5s on boot to trigger Captive Setup AP |
- VIN: Connect to 5V (VBUS / External 5V).
- GND: Connect to common GND.
- BCLK (Bit Clock): Connect to GPIO 16.
- LRC / WS (Word Select): Connect to GPIO 17.
- DIN (Data In): Connect to GPIO 18.
- GAIN: Tie to GND (default 9dB gain) or leave floating (12dB gain).
- Speaker Out (+ / -): Connect to handset earpiece dynamic capsule.
- VCC: Connect to 3.3V.
- GND: Connect to common GND.
- OUT: Connect to GPIO 1 (ADC1_CH0).
- Gain Trimmer: Set the potentiometer on the back of the MAX4466 board to roughly 50%–70% for standard conversational speech.
Vintage telephones require high-voltage AC resonance (~40V–90V AC at 20Hz) to swing the internal clapper between the twin brass gongs. We drive this safely using an IRF640N N-Channel Power MOSFET paired with an inductive flyback snubber:
+24V to +48V DC Power Supply (Ringer Rail)
│
├───[ 470nF 250V AC Cap ]───┐
│ │
┌────┴───────────────────────────┴────┐
│ Telephone Ringer Coils │
│ (Red & Black / Slate leads) │
└────┬────────────────────────────────┘
│
├───────|<────────┐ (1N4007 Diode)
│ │
Drain ┌──┴──┐ │
GPIO 7 (PWM 20Hz) ──[100Ω]──┤ │ IRF640N │
└──┬──┘ MOSFET │
Source │ │
├─────────────────┴─ Common GND
===
- MOSFET Gate Resistor: 100$\Omega$ between GPIO 7 and Gate to suppress parasitic high-frequency ringing.
- Gate Pull-Down: 10k$\Omega$ between Gate and GND to keep the MOSFET off during microcontroller boot.
- Series Capacitor: 470nF / 250V non-polarized film capacitor in series with the bell coils to block DC current and generate pure resonant AC swings.
Vintage dials (such as the Western Electric No. 7 / No. 9 or AE type 24) have two contact sets:
-
Pulse Switch (GPIO 5): Opens and closes 1 to 10 times as the rotary wheel springs back to rest. Connected to GPIO 5 with internal pullup (
INPUT_PULLUP). -
Off-Normal / Shunt Switch (GPIO 6): Closes as soon as the finger wheel is pulled from its rest stop, and re-opens only after the dial returns home. Connected to GPIO 6 with internal pullup (
INPUT_PULLUP).
DecaTone Open-Source Vintage Rotary Phone VoIP Switch • Licensed under GNU GPL v3.0