Note: This synthesizer started out as a school project as part of my studies in physics and engineering, and gradually evolved into a true passion for digital audio and audio hardware design.
Instead of standard mechanical keys, I am building a custom capacitive touch interface using copper tape and MPR121 sensors. The layout features 12 notes for melodies and 9 dedicated touchpads to trigger chords and control their qualities (Major, Minor, 7ths, Diminished, etc.).
Under the hood, all the digital signal processing is handled from scratch by the ESP32.
Click to expand the Audio Engine Specs
- An 8-voice polyphonic engine with four selectable waveforms.
- A State Variable Filter with a dedicated decay envelope.
- A built-in arpeggiator with multiple dynamic modes (Up, Down, Bounce).
- A complete effects chain featuring Reverb, Delay, Chorus, Stereo Widening, Tube Drive, and an "Analog Slop" modifier.
- An OLED display that acts as both a menu interface and a real-time oscilloscope.
Click to expand the Hardware & Components (BOM)
The project is currently transitioning from a standard ESP32 development board to a more powerful, battery-operated ESP32-S3 architecture.
Core & Processing:- MCU: Moving to ESP32-S3 N16R8 (16MB Flash, 8MB PSRAM) for heavy DSP handling.
- Audio: PCM5102A I2S DAC Decoder Module for clean, high-fidelity stereo output.
- Sensors: 2x Adafruit MPR121 I2C Capacitive Touch controllers.
- Keyboard: Custom-cut conductive copper adhesive tape.
- Display: 0.96" 128x64 OLED Display (SSD1306 I2C).
- Navigation: 1x Rotary Encoder (with push-button switch) and 1x discrete tactile button for menu navigation.
- Volume: 1x Analog Potentiometer (read via ADC).
- Battery: 3.7V LiPo / 18650 cell.
- Charger: TP4056 Lithium Battery Charger Module (Type-C).
- Power Regulation: ND0205MA DC-DC Step-Up Boost Converter (0.8V-5V to 3.3V/5V) for stable audio and logic power.
- Main Switch: 12mm 1NO Self-locking waterproof metal push button.
- Voltage Divider: 2x 100k Ohm resistors to safely monitor battery voltage via ESP32 ADC.
Click to expand the Prototyping Tools
- Breadboards: Multiple standard breadboards joined together to accommodate the wide 44-pin ESP32-S3 format.
- Wiring: Assorted Dupont jumper wires (Male-Male, Male-Female).
- Soldering: Basic soldering iron (used to secure wires to the back of the copper tape and the main power switch).
- Software: Arduino IDE / C++ environment.
Right now, the project is a beautiful mess of jumper wires on my desk. The core audio DSP and the capacitive touch logic are up and running smoothly on a V1 prototype. I am currently waiting for the delivery of the new power management modules and the S3 processor to build the V2 architecture.
Roadmap:
- Create an initial stable prototype that demonstrates the general concept
- Replace the ESP32D board with an ESP32-S3 board.
- Add a battery for greater portability.
- Add MIDI communication support.
- Create a Bluetooth interface between a smartphone and the ESP32 board to adjust the instrument’s settings.
- Convert the wiring diagram into a clean PCB layout in KiCad.
- Design and 3D-print a portable, ergonomic enclosure.
- Publish the final source code along with the hardware design files.
- Find a partner to mass-produce the instrument and offer it for sale.
If you are into synth DIY, DSP coding, or just want to see how this instrument comes to life, please hit the Star button at the top of the page!