Electric guitar and bass players often insert audio effects units into the signal chain between their instrument and their amplifier. These units are called "pedals" because players can use footswitches to turn effects on and off while they continue playing the instrument with their hands. Many players use many pedals in series to apply effects like compression, reverb, distortion, flangers, and phasers.
The problem is that each of these pedals comes with a price tag of around $100 to $400. While Gabe enjoys playing guitar, he does not enjoy spending money. With a custom digital guitar pedal, Gabe can unlock the world of guitar effects and expand his musical range, while also getting experience with digital signal processing and saving money. (Yuto does not play guitar or bass, but he graciously agreed to this project and to let Gabe keep the final result.)
Like most guitar pedals, our design includes 1/4" tip-sleeve jacks for input (from an instrument or another pedal) and output (to another pedal or an amplifier) and a set of potentiometers and footswitches. Specifically, we include 1 latching footswitch for an analog bypass, 1 fingerswitch controlling power, 2 momentary buttons to "reset" and "boot" the microcontroller, 2 momentary footswitches to trigger programmable actions like cycling through different effects, and 6 pots for adjusting programmable parameters. All of these are panel-mounted on a standard 125B style aluminum enclosure.
At the heart of the circuit is an ESP32-S2-SOLO microcontroller to run all of the digital effects code. It interfaces with the analog input and output through the ADC and DAC packaged in a Texas Instruments PCM3002E CODEC. The ESP32 can be programmed via a micro-USB port which also serves as the power supply for the whole pedal.
One challenge we had was choosing which microcontroller to use. There are other microcontrollers which may be better suited to this application, like the ARM Cortex-M7 which has special features for digital signal processing. That chip is used on Electro-Smith's Daisy Seed development board, which is used in PedalPCB's Terrarium board, which we referred to while designing our board. We chose to stick with the ESP32 because HOPE had them in stock, and the staff had more experience with them than with other microcontrollers. We guessed that it would be powerful enough for our application, but if we were to do this project over again, we might choose a chip with more powerful DSP capabilities.
Another challenge was choosing which CODEC to use. The chip we chose, the PCM3002E, had a clear datasheet and was available on Digikey, but didn't have an Arduino library available to support it. Another chip we considered, the Everest ES8374, was supported by the official Espressif Audio Development Framework and was cheaper than the PCM3002E, but had a more sketchy datasheet and was only available to ship from a Chinese website. We chose the PCM3002E because we were more confident about being able to follow the datasheet and wire it up in our schematic, at the cost of setting ourselves up for a challenge when it comes time to program the project.
Due to Digikey shipping delays, we haven't been able to assemble the board, but we HOPE to do so soon so that we can put the pedal to work.
Our KiCad project files are available on GitHub at starptr/guitar-pedal. People interested in mimicking our design should beware that we are electrical engineering noobs, and we haven't assembled our project yet, so we have no idea if the design actually works.
Our project schematic in KiCad
Our PCB layout in KiCad. All of the panel-mounted components — pots, switches, jacks, etc. — use header pin footprints. We'll use hook-up wire to connect the solder lugs of the components to the nicely-spaced holes on the PCB.