We built an Analog Synth with filters and an OLED display.
Our analog synth has 12 tactile switches, each simulating one of the 12 chromatic pitches. The microcontroller is programmed to generate a wave of the corresponding pitch depending on the switch pressed and the waveform selected. This wave goes through high and low pass filters that can be adjusted to change the sound quality. The wave then goes through an amplifier and then to the speaker. At the same time, the waveform is displayed on an OLED display.
USBC for a power supply and data bus
5V to 3.3V voltage converter
ESP32 Microcontroller
Four potentiometers for filter, waveform, and volume control
12 buttons that play sound when pressed
OLED display for waveform
Class AB Amplifier
Speaker
To plan our circuit, we created a block diagram with all the main components that we were going to use. We connected each block with arrows to indicate which blocks depend on another.
We researched to discover how we could implement each of our blocks and different options for components. We collected all the parts' prices and information in our BOM. Then, we built our schematic on KiCad using the datasheets.
After completing our schematic, we started building our layout. We noticed that the positions of pins on the ESP32 were different on the layout than in the schematic, so we needed to edit the schematic to reorder which pin each component was connected to. After a lot of time spent routing and fixing errors, we were ready to submit our layout!
We recieved our PCB and soldered all the components and passives on. The hardest pieces to solder were the capacitors and the USB-C. We realized we put the wrong footprint for the USB-C on the board, but luckily there were extras of the matching USB-Cs for that footprint. One of the pads for a capacitor ripped off of our board, but we learned that since there was a piece of copper exposed, we could still solder the capacitor on. We learned how to test our soldering with a multimeter.
With the help of Gemini, we came up with a plan for how to generate waves of different shapes and frequencies and wrote code to make each button and our waveform select potentiometer work.
We completed our analog synth! We learned so much this semester and are very happy that we were able to build something cool!