Skip to the content
PCBKitNew board
2 layers96 × 66 mmKeypad synth revB, the printed circuit board in 3D

At boot it plays a generative splash that's different every time: two random geometry scenes (string-art mandala, polygon rings, flow-field particles, a rotating tunnel, a 3D Lissajous knot), glitch cuts.

Size
96 × 66 mm
Copper layers
2
Thickness
1.6 mm
Parts
9
Nets
20
Pads
44
Tracks, vias
61, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Oct 2026
Updated
4 Oct 2026

Overview

Keypad synth revB is an open-source printed circuit board by mhellar, from the mhellar/blasteroid-megasynth repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 96 × 66 mm with 9 parts on 20 nets, routed with 61 tracks and 0 vias.

It belongs with the keyboards and input and audio and music boards and the ESP32 boards of this library.

README

README.md

BLASTEROID MEGASYNTH

Experimental industrial ambient on an ESP32-S3. A slow machine drone you build from layers, two robot mouths (SAM, the 1982 Software Automatic Mouth, and the Talkie Speak & Spell LPC voice) that can freeze into drones, get scratched on a knob and talk to each other, a box of industrial noises, and a huge reverb "space". It runs on a 4x4 keypad, one rotary pot, a 128x128 OLED and a small speaker.

At boot it plays a generative splash that's different every time: two random geometry scenes (string-art mandala, polygon rings, flow-field particles, a rotating tunnel, a 3D Lissajous knot), glitch cuts. Then everything converges into the Blasteroid: a cyborg cyclops in wraparound shades. His eye charges up, two lasers burn BLASTEROID / MEGASYNTH in from opposite ends, SAM says the name, and Talkie answers "OPERATIONAL".

splash storyboard

The board is a single-sided PCB designed to be milled on a desktop CNC. The modules plug into headers or edge pads, so there's no SMD soldering.

board layout

What's in here

FolderContents
firmware/blasteroid_megasynth/The Blasteroid Megasynth sketch (Arduino), with SAM's C core and the Talkie vocabularies bundled alongside
firmware/keypad_bringup/Bring-up test: I2C scan, every key plays a note, pot = volume. Flash this first
firmware/short_finder/Finds pins shorted to GND or to each other on a freshly milled board (pull-ups only, safe)
hardware/kicad/KiCad project for the board (rev B: pot standing under the OLED), custom symbols + footprints
hardware/cnc/Gerbers + drills, G-code for a Genmitsu Cubiko (GRBL), FlatCAM script, 1:1 fit-test print, cheat sheet
tools/splash_preview.py: a Python mirror of the boot splash that renders storyboards (python splash_preview.py <seed> <seconds...>, needs numpy + Pillow)

Parts

RefPartNotes
U1ESP32-S3 SuperMini2x 1x9 female headers. Needs PSRAM (e.g. 4 MB flash / 2 MB PSRAM)
U2MAX98357A I2S amp breakout1x7 female header, VIN on 5 V, plus a small 4-8 ohm speaker
U31.5" 128x128 OLED, SH1107, I2C1x4 female header (VCC GND SCL SDA)
U44x4 tact keypad module (passive matrix, e.g. QYF-JP01)hangs off the bottom edge; its right-angle pins lie on 8 edge pads
U510k rotary pot module (3 pins)stands in 3 holes under the OLED, knob towards the keypad
100 x 70 mm single-sided copper cladboard is 96 x 66 mm, M3 holes

Pinout

FunctionGPIO
OLED SDA / SCL9 / 8
Amp DIN / BCLK / LRC43 (TX) / 44 (RX) / 1
Keypad rows R1-R4 / columns C1-C42 3 4 5 / 6 7 13 12
Pot wiper / pot high leg10 / 11 (driven HIGH as the pot's supply), low leg to GND

The amp uses the TX/RX pins, so USB CDC On Boot must be Enabled (serial goes over native USB).

Build the firmware

  1. Arduino IDE (or arduino-cli) with the ESP32 core 3.x and the U8g2 library.
  2. Board settings: ESP32S3 Dev Module, USB CDC On Boot: Enabled, PSRAM: enabled. arduino-cli FQBN: esp32:esp32:esp32s3:CDCOnBoot=cdc,PSRAM=enabled
  3. Flash keypad_bringup first to check the keys, pot, OLED and speaker, then blasteroid_megasynth.
text
arduino-cli compile --fqbn esp32:esp32:esp32s3:CDCOnBoot=cdc,PSRAM=enabled firmware/blasteroid_megasynth
arduino-cli upload  --fqbn esp32:esp32:esp32s3:CDCOnBoot=cdc,PSRAM=enabled -p COMx firmware/blasteroid_megasynth

Tips:

  • The OLED needs the U8G2_SH1107_PIMORONI_128X128 constructor. The generic SH1107 one shifts the picture by 32 px.
  • If the SuperMini sits silent after an upload, press RST. The auto-reset can leave it in the bootloader.
  • If the knob works backwards, turn the pot module round. Swapping its outer legs reverses the direction.

Playing it

text
[MODE ] [ pad 0 ] [ pad 1 ] [ pad 2 ]      left column: tap = quick action,
[FX   ] [ pad 3 ] [ pad 4 ] [ pad 5 ]      HOLD = the screen shows what the 12 pads do
[SEQ  ] [ pad 6 ] [ pad 7 ] [ pad 8 ]
[SHIFT] [ pad 9 ] [ pad 10] [ pad 11]
Keytaphold + pad
MODEnext mode (HUM > SAM > TALK > MACH)modes, volume, Talkie bank, REPLAY the boot film, SAM voice (ROBOT SAM GHOST DEEP)
FXnext voice FXCLEAN ECHO RADIO GRAIN DEEP VOX CHOIR, momentary STUTTER / REVERSE / TAPE STOP / UNDERWATER, INFINITE (reverb freeze)
SEQREC on/offPLAY, CROSSTALK, AUTO, BPM -/+, MUTATE, RANDOM machines (sparse > busy > factory), clears, SILENCE
SHIFTPLAY/STOPper mode: drone octave / brightness / LFO speed / detune; SAM words backwards; Talkie bends; machine mutes

The knob

  • Knob alone: the current voice FX's main control: pitch, echo feedback, radio tuning, grain density, depth, vocoder wet, choir breath.
  • SHIFT + knob = SCRATCH: scrub through the current SAM or Talkie word like a record under your hand. It's silent while the knob is still.
  • FX + knob = SPACE: from dry and close to a huge, long reverb.

Modes

  • HUM: drone layers on/off: MAINS (transformer hum), SUB, PAD, CHOIR (morphing vowel), METAL (inharmonic FM girder), WIND, RADIO (shortwave whistle and crackle), PULSE (heartbeat). Also DRIFT (the chord wanders i-bVI-bIII-bVII), KEY -/+, and CHORD (fifth, minor7, sus2, minor9, void).
  • SAM: 12 words (OHM, SILENCE, SIGNAL, MACHINE, BREATHE, ECHO, VOID, DRIFT, STATIC, RESONANCE, FREQUENCY, WE ARE LISTENING). Tap = say it, hold = freeze it into a granular drone.
  • TALK: four Talkie banks: SIGNAL, NUMBERS (numbers station), ELEMENTS, MACHINE. Tap = say it, hold = freeze the mouth on one frame, humming in the drone's key.
  • MACH: 12 industrial sounds: KLANK, PIPE, HAMMER, HISS, GEIGER, RELAY, SERVO, SONAR, CHAIN, DRIP, HORN, THUD. Hold = repeat.
  • CROSSTALK: SAM and Talkie take turns, a word per bar, over whatever is playing.
  • With REC on, voices and machines are quantized into the 16-step sequencer.

Make the board

Single-sided, all copper on B.Cu, made for isolation milling. The Gerbers also work at a board house as a 1-layer board. Full steps are in hardware/cnc/CNC_CHEATSHEET.txt: V-bit isolation, 1.0 mm drill, 2.0 mm drill, outline score. The keypad's pins solder flat onto edge pads, and the pot stands in 3 holes.

Isolation gutters: with a single 0.1 mm V-bit pass, several SuperMini pads stayed shorted to the ground pour. load_and_mirror.tcl now isolates with 3 passes (about a 0.3 mm gutter). The ready-made 1_isolation_0.1vbit.nc is the older single-pass file, so regenerate it with FlatCAM (set the path at the top of the script). After milling, meter every header pad to GND before soldering, or flash short_finder on a populated board.

Print PRINT_1to1_fit_test.pdf at 100% and check your modules against it before milling. The keypad and pot outlines were measured from photos.

Credits and license

  • SAM (Software Automatic Mouth) by Mark Barton / Don't Ask Software (1982). C port by Sebastian Macke, ESP8266SAM by Earle F. Philhower III.
  • Talkie LPC speech by Peter Knight, extended by Armin Joachimsmeyer (vocabulary data bundled).
  • U8g2 by olikraus; esp-dsp and the ESP32 Arduino core by Espressif.
  • Co-created by Mark Hellar and Claude (Anthropic). PCB milled and soldered by Mark Hellar.

Licensed under the GNU GPL v3 (see LICENSE), matching the bundled SAM and Talkie code.

Parts

9
QtyValueFootprintReferences
4MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
1ESP32-S3_SuperMiniks_cnc:ESP32-S3_SuperMini_CNCU1
1Keypad 4x4ks_cnc:EdgePads_Keypad4x4_CNCU4
1MAX98357Aks_cnc:MAX98357A_Module_CNCU2
1OLED 1.5in SH1107ks_cnc:OLED_1.5in_128x128_I2C_CNCU3
1Pot 10kks_cnc:Pot_Standing_CNCU5

Questions

How big is the Keypad synth revB PCB?

It measures 96 × 66 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Keypad synth revB use?

9 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 Keypad synth revB KiCad files?

From the mhellar/blasteroid-megasynth repository on GitHub, at the commit this page was made from: the board is hardware/kicad/keypad_synth_revB.kicad_pcb and its schematic hardware/kicad/keypad_synth_revB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Keypad synth revB 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 layers103 × 30.5 mmTS Back Endcap, the printed circuit board in 3D

    TS Back Endcap

    EEVengers/ThunderScope

    ThunderScope GitHub Repo

    9 parts1.3kMIT
  • 2 layers31.8 × 47.6 mmNGC 38 connector, the printed circuit board in 3D

    NGC 38 connector

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    9 parts1.2k
  • 2 layers24 × 27.3 mmExpansion Card Retrofit, the printed circuit board in 3D

    Expansion Card Retrofit

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    9 parts1.1kCC-BY-4.0
  • 2 layers15.6 × 17.3 mmSKR Mini TFT Thermistor Board, the printed circuit board in 3D

    SKR Mini TFT Thermistor Board

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    9 parts1.1kGPL-3.0
  • 2 layers39.1 × 49.5 mmLearnoliver, the printed circuit board in 3D

    Learnoliver

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    9 parts915
  • 2 layers17.4 × 16.9 mmToolhead, the printed circuit board in 3D

    Toolhead

    tanaes/whopping_Voron_mods

    9 parts787GPL-3.0
  • 2 layers9.8 × 108 mmExpander, the printed circuit board in 3D

    Expander

    wntrblm/Castor_and_Pollux

    A Juno-inspired dual oscillator

    9 parts587
  • 2 layersKeyboard after, the printed circuit board in 3D

    Keyboard after

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    9 parts547GPL-3.0