ESP32-based media center device with a HiFi DAC (PCM5100) and a powerful D-class amp (TPA3128)
Amped-ESP32 combines ubiquitous ESP32 with a PCM51XX series HiFi DAC, teamed up with a highly efficient TPA3128D2 D-class amplifier. It brings all the best from the HiFi-ESP32 model and adds an onboard amp to form a complete solution that can be paired with speakers directly, or an external amp/headphones
It uses an external power source to feed amps, so the host MCU uses an onboard drop-down converter. It has similar power capabilities to the Louder-ESP32 model, but it is much simpler to use since it only needs a valid I2S signal to operate, so a simple book example code will do it.
Amped-ESP32 is a flexible, open-source audio platform designed to fit into both smart homes and custom audio projects.
| Amped-ESP32 | Amped-ESP32-Plus | |
|---|---|---|
| MCU | ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8 | ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8 |
| DAC | PCM5100A 32-bit Stereo DAC with -100 dB typical noise level | PCM5122 32-bit Stereo DAC with -112 dB typical noise level |
| Amp | TPA3128D2 D-class amp | TPA3128D2 D-class amp |
| Line-out | 2.1V RMS | 2.1V RMS |
| Output (4Ω, 1% THD+N) | 2x 40W | 2x 40W |
| Output (8Ω, 1% THD+N) | 2x 25W | 2x 25W |
| Output (Bridge, 3Ω, 1% THD+N) | 2x 60W | 2x 60W |
| Flash/PSRAM | 8MB/8MB | 8MB/8MB |
| Power | Up to 26V from external PSU | Up to 26V from external PSU |
| Connectivity | WiFi + BT4.2 (except S3) + BLE Ethernet (optional module) | WiFi + BT4.2 (except S3) + BLE Ethernet (optional module) |
| DSP Features | None | Digital volume, Parametric EQ (6xBQ), DRC ** |
| Software support | ||
| Squeezelite-ESP32 | ✅ | ✅ |
| Snapclient | ✅ | ✅ |
| ESPHome (HA) | ✅ | ✅ |
⚠️ Amped boards can't drive headphones and speakers at the same time (unless you modify them)
💡 Don't need to connect speakers? Check out HiFi-ESP32
💡 Don't need to connect headphones or an external amp? Check out Loud-ESP32 and Louder-ESP32
** Enabling EQ controls in software is a work in progress
Audio streaming requires proper buffering to work, even with the ESP32's 500K of RAM; it is a challenging task. For that reason, all Louder-ESP32 board versions have an 8 MB PSRAM chip onboard, connected via a high-speed interface.
| I2S CLK | I2S DATA | I2S WS | PSRAM RESERVED | AMP EN | |
|---|---|---|---|---|---|
| ESP32 | 26 | 22 | 25 | 16, 17 | 13 (rev H+) |
| ESP32-S3 | 14 | 16 | 15 | 35, 36, 37 | 17 (rev J+) |
| 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 |
Both Louder-ESP32 versions were created specifically to be used with Home Assistant via ESPHome integration. For both boards, rich configs were pre-created with hardware configuration for common use cases. These include
Configurations are being actively maintained and upgraded, new experimental components added for you to test and enjoy
ESP32-S3 boards have two ways of firmware update: (1) similarly to classic ESP32, they can be flashed over the 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:
esp_toolPlease visit the hardware section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs.
| ESP32 |
|---|
Originally, I used the TPA3110 amp with Amped Esparagus and Amped-ESP32 boards for its simplicity and availability. The only issue with TAP3110 is that it lacks the MUTE pin. It does have an STBY pin, but as it turned out, it is not pop-free, meaning each time you switch it on and off, the amp makes a loud pop in the speakers. I tried changing the level slowly, but it didn't help.
Help came with a newer TPA3128 amp with revision H of the Amped-ESP32
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, the board will not fit the case unless it is cut to accommodate extra height.
Amped-ESP32(S3) is mechanically compatible with Raspberry Pi 4 cases, tested with transparent ones. Also, community members created a few 3-D printable designs that can be found here and here
If you’re working on an open-source project, an educational initiative, or any pro-bono/volunteer effort, feel free to reach out for sponsorship details. I’ll do my best to provide discounts or even free boards.
If you’re interested in a custom design based on or inspired by my boards, I also offer contract design work and consultation when needed.