ESP32 audio development board with PCM5122 I2S DAC, delivering 2.1V RMS audio with -112dB noise level
The HiFi-ESP32 Plus represents the next evolution of HiFi-ESP32 boards, featuring the advanced PCM5122 DAC with built-in DSP capabilities. This board maintains the same audio quality as the original HiFi-ESP32 while adding powerful digital signal processing features, including parametric EQ (6 BQs per channel), DRC, and crossover functionality. The PCM5122’s flexible DSP engine can be configured for various audio enhancement scenarios, making it ideal for projects requiring sound tuning (why would you not), and opening the path to create 2.1 systems with PCM5122+PCM5102 master-slave config.
Key Features:
| HiFi-ESP32(S3) | HiFi-ESP32(S3)-Plus | Loud-ESP32(S3) | Louder-ESP32(S3) | Amped-ESP32(S3) | |
|---|---|---|---|---|---|
|
|
|
|
|
|
| MCU |
ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8 |
||||
| Flash | 8MB | ||||
| PSRAM | 8MB | ||||
| DAC | PCM5100A 32-bit Stereo DAC -100 dB typical noise level | PCM5122 32-bit Stereo DAC -112 dB typical noise level | Dual I2S DAC (MAX98357) with built-in D-Class amp | Stereo I2S DAC (TAS5805M) with built-in D-Class amp | PCM5100A 32-bit Stereo DAC working with TPA3128D2 D-class amp |
| DSP | n/a | Digital Volume, Analog Gain, 6x BQs | n/a | Digital Volume, Analog Gain, 15x BQs per channel | n/a |
| Line out | Non-amplified stereo output, 2.1V RMS | Non-amplified stereo output, 2.1V RMS | n/a | n/a | Line-level putput, 2.1V RMS |
| Speaker Output (4Ω) | n/a | n/a | 2x 5W | 2x 32W (4Ω, 1% THD+N) | 2x 40W (4Ω, 1% THD+N) at 20V 1x 60W (3Ω, 1% THD+N) at 20V (bridged) |
| Speaker Output (8Ω) | n/a | n/a | 2x 3W | 2x 22W (8Ω, 1% THD+N) | 2x 22W (8Ω, 1% THD+N) at 20V |
| Power |
5V over USB-C, 2x LP5907 3.3 V Ultra-Low-Noise LDO for analog section |
5V over USB-C, 2x LP5907 3.3 V Ultra-Low-Noise LDO for analog section |
5V (up to 2.5A) from USB-C |
Up to 26V from external PSU 5V over USB-C with power limited to 2x5W |
Up to 26V from external PSU 5V over USB-C with power limited to 2x5W |
| Connectivity |
WiFi + BT4.2 + BLE W5500 Ethernet (optional module) No BT on the ESP32-S3 |
||||
|
Software support (ESP32) |
squeezelite-esp32 (Spotify Connect, Airplay, LMS, Bluetooth) esp32-snapclient (Multi-room sync) ESPhome (Home Assistant) |
||||
|
Software support (ESP32-S3) |
ESPhome (Home Assistant, Music Assistant) |
||||
Audio streaming requires proper buffering to work; even with ESP32 500K of RAM it is a challenging task. For that reason, most of the projects will require WROVER modules that have onboard PSRAM chips. All ESP32 Audio boards have an 8MB PSRAM chip onboard, connected via a high-speed interface. Any code using PSRAM with just work out-of-the box.
| I2S CLK | I2S DATA | I2S WS | I2S MCLK (optional) | PSRAM RESERVED | DAC/AMP EN | I2C SDA | I2C CLK. | |
|---|---|---|---|---|---|---|---|---|
| ESP32 (J1+) | 26 | 22 | 25 | 0 | 16, 17 | 13 | 21 | 27 |
| ESP32-S3 (H1+) | 14 | 16 | 15 | 0 | 35, 36, 37 | 4 | 42 | 41 |
| SPI CLK | SPI MOSI | SPI MISO | SPI CS | SPI HOST/SPEED | ETH INT | ETH RST | |
|---|---|---|---|---|---|---|---|
| ESP32 | 18 | 23 | 19 | 05 | 2/20MHz | 35 | 14 |
| ESP32-S3 | 12 | 11 | 13 | 10 | SPI2/20MHz | 6 | 5 |
| IR IN | RGB OUT | OLED SPI HOST/SPEED | OLED SPI CLK | OLED SPI MOSI | OLED SPI MISO | OLED SPI CS | OLED SPI DC | OLED RST | |
|---|---|---|---|---|---|---|---|---|---|
| ESP32 | 39 | 12 | 2/20MHz | 18 | 23 | 19 | 15 | 4 | 32 |
| ESP32-S3 | 7 | 9 | SPI2/20MHz | 12 | 11 | 13 | 39 | (37) | 38 |
In the software section, two firmware examples are provided.
All samples are provided as Platformio IDE projects. After installing it, open the sample project. Select the proper environment based on your dock. Run the Build and Upload commands to install necessary tools and libraries, and build and upload the project to the board. Communication and proper upload method selection will be handled by IDE automatically.
Follow the ESP8266Audio library guide. Default settings will work out of the box with ESP8266 and ESP32 boards. For ESP32C3 and ESP32S2 board please adjust the pinout according to the above section
Being an ESP32-based device, you can easily integrate it into your Home Assistant using ESPHome. Please find detailed instructions in the linked repo
Squeezelite-ESP32 is a multimedia software suite that started as a renderer (or player) of LMS (Logitech Media Server). Now it is extended with
And the LMS itself
All ESP32-based boards are tested with Squeezelite-ESP32 software, which can be flashed using nothing but a web browser. You can use Squeezelite-ESP32 installer for that purpose. more details and setup instructions can be found here
The default configuration of the squeezelite-esp32 runs automatic discovery of the available LMS server nearby. In fact, it depends on it so much that in case the LMS service is not found on the network, it will reboot automatically (every few minutes).
In many cases, if you use squeezelite for AirPlay and Spotify only and don't have an LMS server, you need to disable discovery altogether. Currently, disabling Squeezelite in the GUI does not work correctly; it places too many spaces between the commands in the autoexec command. Following autoexec1 NVS setting can be used to disable it:
squeezelite -o i2s -s -disable -b 500:2000 -C 30 -d all=sdebug
ESP32-S3 boards have two ways of firmware update: (1) similarly to classing ESP32, they can be flashed over built-in UART, or (2) uniquely for S3, over built-in USB host controller. Since it is firmware-controlled, and may be disabled if not used (or, more commonly, not available with factory default empty firmware). When come unflashed, ESP32-S3 device comes into a boot loop, with a USB-CDC device appearing and disappearing every second, and **requires a special flashing initialisation sequence to get flashed**:
- Press IO0 (FLASH) button and keep it pressed
- Press RESET button and release FLASH button after
- ESP32-S3 will enter download mode, and USB-CDC device will appear and stay available
- Run flashing routine as usual, either through web-serial or `esp_tool`
- This time, it is not possible to reboot the device over USB, so press RESET once more
- Device will boot normally into firmware, and if USB-CDC is enabled in the firmware, you will be able to flash it normally, download mode and reset sequence will work over USB.
- If you manage to flash firmware without USB-CDC support, you need to go through the above sequence once more
Please visit the hardware section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs.
Every board has a header that allows soldering in the W5500 SPI Ethernet module, which is very easy to find. The only downside is that with the module installed board will not fit the case unless it is cut to accommodate extra height.
HiFi-ESP32(S3)-Plus is mechanically compatible with Raspberry Pi 4 cases, tested with transparent ones