Skip to the content
PCBKitNew board
4 layers38.1 × 101.6 mmESP32S2 Audio, the printed circuit board in 3D

ESP32S2 Audio

emeb/ESP32S2_Audio8

A Eurorack module demonstrating the use of the ESP32S2 as an audio effects processor

Size
38.1 × 101.6 mm
Copper layers
4
Thickness
1.6 mm
Parts
124
Nets
115
Pads
404
Tracks, vias
773, 101
Pours
4
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
11 Apr 2022
Updated
11 Apr 2022

Overview

ESP32S2 Audio is an open-source printed circuit board by emeb, from the emeb/ESP32S2_Audio repository on GitHub, published under the MIT licence. It is a 4-layer board of 38.1 × 101.6 mm with 124 parts on 115 nets, routed with 773 tracks and 101 vias.

It is built around the ESP32-S2, R-78E5.0-0.5 and MCP6004-E/P, with the LP2985-33DBV, MMBT3904 and BAT54C among its other parts. Its parts include 51 capacitors, 32 resistors, 12 connectors, 8 ICs and 3 diodes. It belongs with the audio and music boards and the ESP32 boards of this library.

Main components

6

README

README.md

ESP32S2_Audio

A Eurorack module demonstrating the use of the ESP32S2 as an audio effects processor

Abstract

Blah Blah Blah 2020 Microcontroller shortage. See my RP2040_Audio project if you really want to read all my whinging about this topic:

https://github.com/emeb/RP2040_Audio

So yeah - I've been using STM32 for so long that I was ignoring all this other stuff that was coming out, including these nifty IoT SoCs (more TLAS pls!) that so many folks have been using for the lst few years. Espressif has quite a family of them with a wide variety of capabilities. The ESP32-S2FN4R2 is especially interesting because it's got 4MB flash and 2MB PSRAM included in the package and the price is only a few cents more than the raw part. So I grabbed some devboards, did proof-of-concept on a breadboard and started a new hardware design. This one is remarkably similar to the RP2040 project mentioned above - basically I lifted the entire circuit, layout and all and then proceeded to jack it up on the grease rack and swap the engine out. Here's the result.

This project is a feasibility study of using the ESP32S2 MCU as an audio effects processor, with particular emphasis on performance with challenging DSP.

Hardware

The complete design consists of two PCBs:

  • The system PCB - a single board containg all electrical components. Find it in the Hardware directory.
  • The Front Panel - a PCB-based front panel that conforms to the Eurorack physical mounting standard. Found in the Hardware/esp32s2_panel directory.

The system PCB has the following features:

  • Standard Eurorack 16-pin shrouded power connector
  • Two +/-5V CV inputs and associated analog signal conditioning
  • Two +/-7V Audio inputs and associated analog signal conditioning
  • Two +/-7V Audio outputs and associated analog drivers
  • WM8731 stereo audio codec
  • ESP32S2 with 4MB SPI flash, 2MB PSRAM, USB, JTAG and serial interfaces for development. The RF antenna connection is also available for playing with WiFi if I ever get around to it.
  • 160 x 80 IPS LCD
  • UI button

Firmware

A demonstration firmware is included that exercises all of the capabilities of the system, including the LCD, UI button, CV inputs and stereo audio I/O. It is a basic multi-effects unit that supports a complement of audio DSP algorithms that are easily extended by adding standardized modules to a data structure. As provided here just three algorithms are available:

  • Simple pass-thru with no processing
  • Simple gain control
  • Basic "clean delay" with crossfaded deglitching during delay changes.

Other algorithms have been tested including phasers, flangers, frequency shifters, resampling delays and reverbs, but these are not publicly released at this time.

Findings

The ESP32S2 is not bad for doing audio, but I found it necessary to do a bit of hacking on their I2S driver - as delivered in their ESP-IDF V5.0 which I used here the driver makes some limiting assumptions about how you want to do audio: Namely that you'll be streaming large buffers to/from some external device like the WiFi interface or storage. That's NOT how I do audio - I want small buffers streaming in realtime with lots of DSP involved. Consequently, I coded up a "low-latency" driver that works more the way I want and that's included here.

The ESP32 ADCs are also noisy and a bit weird to use, so my ADC driver has a rather kludgy approach to collecting data and applies heavy filtering to clean things up. The lack of hardware floating point was a bit of a stumbling block and I spent some time converting a few of my algorithms to work with fixed point. A few others were fine using floating point in software so those were left alone. The reasonably large PSRAM works well for smaller-sized buffers in audio delays and found a lot of use in delays.

I found many other aspects of their system quite pleasant to use - the IDF has a lot of well thought-out services, and the build process is easy to work with.

TL;DR - ESP32S2 can work well for audio effects. Give it a try!

Parts

124
QtyValueFootprintReferences
180.1ufCapacitors_SMD:C_0603C4, C10, C24, C25, C32, C33, C34, C35, C38, C39, C40, C41, C43, C46, C47, C51 +2
810ufCapacitors_SMD:C_0805C1, C5, C8, C30, C36, C37, C44, C45
6100kResistors_SMD:R_0603R2, R4, R6, R7, R22, R23
61ufCapacitors_SMD:C_0603C6, C19, C20, C28, C31, C42
6AudioJack2_SwitchTfootprints:Jack_3.5mm_QingPu_WQP-PJ398SM_Vertical_CircularHolesJ4, J5, J6, J7, J9, J10
6TestPointMeasurement_Points:Measurement_Point_Round-SMD-Pad_SmallTP1, TP2, TP3, TP4, TP5, TP6
5330pfCapacitors_SMD:C_0603C11, C12, C13, C14, C48
4100Resistors_SMD:R_0603R16, R17, R24, R25
41ufCapacitors_SMD:CP_Elec_4x5.3C21, C22, C49, C50
420kResistors_SMD:R_0603R12, R13, R20, R21
30.01ufCapacitors_SMD:C_0603C15, C16, C29
310kResistors_SMD:R_0603R18, R19, R26
210kfootprints:Potentiometer_TT_P0915NRV1, RV2
2180Resistors_SMD:R_0603R14, R15
2220Resistors_SMD:R_0805FB2, FB3
2220pfCapacitors_SMD:C_0603C17, C18
227.5Resistors_SMD:R_0603R34, R35
227pfCapacitors_SMD:C_0603C2, C3
22nHCapacitor_SMD:C_0603_1608MetricL1, L2
233kResistors_SMD:R_0603R10, R11
24.7kResistors_SMD:R_0603R31, R32
249.9kResistors_SMD:R_0603R3, R5
260.4kResistors_SMD:R_0603R8, R9
268pfCapacitors_SMD:C_0603C26, C27
2DDiodes_SMD:D_SMAD1, D2
2MMBT3904TO_SOT_Packages_SMD:SOT-23Q1, Q2
11.5kResistors_SMD:R_0603R1
1100pfCapacitors_SMD:C_0603C52
11kResistors_SMD:R_0603R28
149Resistors_SMD:R_0603R33
1BAT54CPackage_TO_SOT_SMD:SOT-23D3
1CONN_CONUFL001-SMD-T_LNXfootprints:CONUFL001-SMD-TJ2
1Conn_02x08_Odd_Evenfootprints:5103308-3J8
1Crystal_4pin_SMDCrystals:Crystal_SMD_3225-4pin_3.2x2.5mmY1
1ESP32-S2footprints:Espressif_Systems-ESP32-S2-IPC_AU1
1JTAGPin_Headers:Pin_Header_Straight_1x06_Pitch2.54mmJ12
1LCDfootprints:LCD_80x160_0.96J3
1LD1117S33TR_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1LM4040DBZ-5Package_TO_SOT_SMD:SOT-23U6
1LP2985-3.3TO_SOT_Packages_SMD:SOT-23-5U10
1MCP6004Housings_SSOP:TSSOP-14_4.4x5mm_Pitch0.65mmU7
1R-78E5.0-0.5Converter_DCDC:Converter_DCDC_RECOM_R-78E-0.5_THTU4
1SW_Pushfootprints:SW_PUSH_6mm_CenterSW4
1SW_PushButtons_Switches_SMD:SW_SPST_KMR2SW1
1SerialPin_Headers:Pin_Header_Straight_1x05_Pitch2.54mmJ1
1TL072PWHousings_SSOP:TSSOP-8_4.4x3mm_Pitch0.65mmU9
1USB_B_Microfootprints:USB_Micro-B_10103594-0001LF_actual_outlineJ11
1Val**footprints:avatar_smallRef**
1WM8731Housings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mmU3

Questions

How big is the ESP32S2 Audio PCB?

It measures 38.1 × 101.6 mm and has 4 copper layers, 1.6 mm thick.

What parts does the ESP32S2 Audio use?

124 parts, built around the ESP32-S2, R-78E5.0-0.5, MCP6004-E/P and LP2985-33DBV. 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 ESP32S2 Audio KiCad files?

From the emeb/ESP32S2_Audio repository on GitHub, at the commit this page was made from: the board is Hardware/esp32s2_audio.kicad_pcb and its schematic Hardware/Euro.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ESP32S2 Audio design in my own project?

Its repository publishes it under the MIT 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

  • 4 layers58.4 × 101.9 mmUp5k osc, the printed circuit board in 3D

    Up5k osc

    emeb/up5k_osc

    The brute-force approach is to synthesize these analog waveforms at sufficiently high sample rates that the timing jitter becomes imperceptible.

    137 parts36MIT
  • 2 layers66 × 107.5 mmTonwerk haupt, the printed circuit board in 3D

    Tonwerk haupt

    Marcel-B/Synth

    Die beiden Browser-Synthesizer aus Tonwerk (YuE UI) als Plugins für Logic Pro: Tonwerk Analog und Tonwerk FM, jeder mit Delay und Hall und eigenen Werksklängen.

    100 parts
  • 2 layers38.1 × 101.6 mmRP2040 Audio, the printed circuit board in 3D

    RP2040 Audio

    emeb/RP2040_Audio

    A Eurorack module for stereo audio effects based on the Raspberry Pi RP2040 MCU

    121 parts23MIT
  • 4 layers99 × 60 mmGrip strength meter, the printed circuit board in 3D

    Grip strength meter

    houseofbigseals/grip_strength_meter_pcb

    schematic and pcb for custom esp32 grip strength meter project

    123 parts
  • 2 layers119.4 × 109.2 mmSpace, the printed circuit board in 3D

    Space

    kitspace-test-repos/kicad6-file-collection

    174 partsMIT
  • 2 layers27.9 × 101.6 mmG081 audio, the printed circuit board in 3D

    G081 audio

    emeb/g081_audio

    A Eurorack reverb module based on the STM32G081

    96 parts13MIT
  • 2 layers148 × 84.5 mmPanel daisy, the printed circuit board in 3D

    Panel daisy

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    259 parts410
  • 2 layers100 × 100 mmGrow, the printed circuit board in 3D

    Grow

    soundslikefrank/grow

    A Eurorack genetic sequencer

    140 parts3GPL-3.0