

Retro Stylophone
a Retro Stylophone
- Size
- 120 × 80 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 18
- Nets
- 40
- Pads
- 63
- Tracks, vias
- 153, 20
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 25 Oct 2026
- Updated
- 26 Oct 2026
Overview
Retro Stylophone is an open-source printed circuit board by rorotaggf-ctrl, from the rorotaggf-ctrl/Retro_Stylophone repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 120 × 80 mm with 18 parts on 40 nets, routed with 153 tracks and 20 vias.
Its parts include 2 connectors and 1 switch. It belongs with the retro computing and games boards of this library.
README
README.mdRetro Stylophone
A retro-style pocket synthesizer built with an ESP32 for Hack Club Half-Life (Week 3: Design Your Instrument).
The instrument utilizes the ESP32's built-in capacitive touch peripheral to create a 13-pad chromatic keyboard directly out of exposed PCB copper pads, completely eliminating mechanical button wear and complex key soldering.
Features
- Microcontroller: ESP32 NodeMCU (USB-C, dual-core 240 MHz, 320 KB SRAM)
- Keyboard: 13 capacitive touch PCB pads (Full chromatic octave: C4 to C5 including sharps/flats)
- Sound Generation: 5V Passive Piezo Buzzer driven via hardware PWM / DAC output
- Modulation & Pitch-Bend: 10K linear potentiometer for dynamic pitch modulation and glide effects
- Octave / Mode Select: SPDT mini slide switch for octave shifting and sound mode toggling
- Form Factor: Compact 2-layer PCB designed in KiCad with integrated GND planes
Pinout Configuration
Everything is mounted using through-hole female pin headers so the ESP32 can be swapped or serviced at any time.
| Component | Pin Function | ESP32 Pin Header | Pin / GPIO | Notes |
|---|---|---|---|---|
| Touch Keyboard | C4 (Root) | J2 Pin 13 | GPIO 4 | Capacitive Touch 0 |
| C#4 | J2 Pin 14 | GPIO 0 | Capacitive Touch 1 | |
| D4 | J2 Pin 16 | GPIO 15 | Capacitive Touch 3 | |
| D#4 | J2 Pin 15 | GPIO 2 | Capacitive Touch 2 | |
| E4 | J1 Pin 15 | GPIO 13 | Capacitive Touch 4 | |
| F4 | J1 Pin 13 | GPIO 12 | Capacitive Touch 5 | |
| F#4 | J1 Pin 3 | GPIO 36 | High-impedance ADC antenna pad | |
| G4 | J1 Pin 12 | GPIO 14 | Capacitive Touch 6 | |
| G#4 | J1 Pin 4 | GPIO 39 | High-impedance ADC antenna pad | |
| A4 | J1 Pin 11 | GPIO 27 | Capacitive Touch 7 | |
| A#4 | J1 Pin 6 | GPIO 35 | High-impedance ADC antenna pad | |
| B4 (H4) | J1 Pin 8 | GPIO 33 | Capacitive Touch 8 | |
| C5 (High C) | J1 Pin 7 | GPIO 32 | Capacitive Touch 9 | |
| Audio Output | Buzzer (+) | J1 Pin 9 | GPIO 25 | Hardware PWM Audio Output |
| Buzzer (-) | J1 Pin 14 | GND | Common Ground | |
| Pitch Control | Poti Wiper | J1 Pin 5 | GPIO 34 | ADC1 Analog Input (0 - 3.3V) |
| Poti Pin 1 / 3 | J1 Pin 1 / 14 | 3V3 / GND | Potentiometer Reference Rails | |
| Octave Switch | SW1 Center | J2 Pin 8 | GPIO 19 | Active LOW (Internal Pull-Up) |
| SW1 Pin 3 | J1 Pin 14 | GND | Ground Reference Rail |
Bill of Materials (BoM)
Grant Funded Components (Tier 1 Limit: $30.00)
[!NOTE] This parts list covers multipack items funded via Hack Club Half-Life. For the raw CSV file, see
BOM.csv.
| Part | What it's for | Qty | Price (USD) | Price (EUR) | Vendor | Purchase Link |
|---|---|---|---|---|---|---|
| ESP32 NodeMCU USB-C (2-Pack) | Synthesizer sound engine & touch controller | 1 | $15.66 | 13,98 € | Amazon | Amazon Link |
| 10K Linear Potentiometer WH148 (10-Pack) | Pitch-bend and waveform modulation | 1 | $7.04 | 6,29 € | Amazon | Amazon Link |
| SPDT Mini Slide Switch (40-Pack) | Power and octave mode switch | 1 | $5.59 | 4,99 € | Amazon | Amazon Link |
| Total | $28.29 | 25,26 € |
Remaining Tier 1 Budget: $1.71
Additional Self-Funded Components
[!IMPORTANT] The following components are funded personally or sourced from existing workshop inventory to complete the build without exceeding the grant limit.
| Part | What it's for | Qty | Price (USD) | Price (EUR) | Vendor | Purchase Link |
|---|---|---|---|---|---|---|
| Custom 2-Layer PCB (5 copies) | Main stylophone PCB with capacitive touch pads | 1 | $8.10 | 7,23 € | JLCPCB | JLCPCB Quote |
| PCB Shipping (Standard Line) | Tracked delivery to Germany | 1 | $9.55 | 8,53 € | JLCPCB | JLCPCB Quote |
| Passive Piezo Buzzer 5V (20-Pack) | Acoustic square-wave chiptune audio output | 1 | $8.83 | 7,88 € | Amazon | Amazon Link |
| 100nF Ceramic Capacitors | Decoupling & noise filtering | 2 | $0.00 | 0,00 € | Inventory | Existing parts |
| Female Pin Headers 2.54mm | Removable socket for ESP32 | 2 | $0.00 | 0,00 € | Inventory | Existing parts |
| Total Self-Funded | $26.48 | 23,64 € |
Software & Firmware
Developed in VS Code with PlatformIO and the Arduino framework.
- Hardware bench test (validating touch threshold tolerances, pot readings, and buzzer PWM)
- Capacitive Touch Core: Zero-bounce touch scanning for native touch pins (T0-T9) with adaptive baseline calibration
- ADC Touch Matrix: High-impedance antenna detection for remaining accidentals
- Pitch-Bend & Glide: Continuous frequency bend calculation via 10K potentiometer ADC readings
- Octave Engine: Real-time transposition (+12 semitones) via hardware slide switch
- Chiptune Audio Driver: Square-wave audio generation with low latency and distinct synth tone modes
Hardware Previews & Design
Initial Concept Sketch
Original top-down sketch outlining component placement, the 13-pad keyboard layout, potentiometer modulation, and buzzer position.

KiCad Schematic
Full schematic featuring the 38-pin ESP32 socket headers, passive piezo buzzer, modulation potentiometer, slide switch, and 13 touch pad nets.

PCB Layout
Completed 2-layer routing in KiCad with top and bottom ground copper pours and 0 DRC errors.

3D Render
Interactive 3D model view from KiCad showing the through-hole component headers, control pot, and exposed keyboard pads.

Other
Parts
18| Qty | Value | Footprint | References |
|---|---|---|---|
| 13 | TestPoint | TestPoint:TestPoint_Pad_D4.0mm | A#4, A4, C#4, C4, C5, D#4, D4, E4, F#4, F4, G#4, G4, H4 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | J_ESP_LINKS | Connector_PinSocket_2.54mm:PinSocket_1x19_P2.54mm_Vertical | J1 |
| 1 | J_ESP_RECHTS | Connector_PinSocket_2.54mm:PinSocket_1x19_P2.54mm_Vertical | J2 |
| 1 | R_Potentiometer | Potentiometer_THT:Potentiometer_Alps_RK09L_Single_Vertical | RV1 |
| 1 | SW_SPDT | Button_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1Q | SW1 |
Questions
How big is the Retro Stylophone PCB?
It measures 120 × 80 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Retro Stylophone use?
18 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Retro Stylophone KiCad files?
From the rorotaggf-ctrl/Retro_Stylophone repository on GitHub, at the commit this page was made from: the board is Retro_Stylophone_KiCAD/Retro_Stylophone.kicad_pcb and its schematic Retro_Stylophone_KiCAD/Retro_Stylophone.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Retro Stylophone design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers27.9 × 16.5 mm

- 2 layers42.7 × 13.7 mm

Stm32-mini12864
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
18 parts1.1kGPL-3.0 - 2 layers41.2 × 46.6 mm

- 2 layers44 × 51.3 mm

4272MAVcoder R4
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
18 parts915 - 2 layers28.3 × 14.3 mm

Tap Photosensor PCB
VoronDesign/Voron-Tap
Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:
18 parts716GPL-3.0 - 2 layers20.3 × 15.2 mm

L0 stepper driver
Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.
18 parts546MIT - 2 layers

- 2 layers42.5 × 28.8 mm

C5VRX JACK DIY V2
Twotoz/C5VRX
Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS
18 parts515GPL-3.0