# Louder ESP32 Plus

ESP32-based audio development board with TAS5825M DAC with built-in DSP

- **Seller:** [Sonocotta store](https://lectronz.com/stores/sonocotta), Warsaw, Mazowieckie, Poland
- **Price:** $29.00 (USD, before shipping and taxes)
- **Availability:** Sold out
- **Categories:** Home automation, ESP32, Audio
- **Product page:** https://lectronz.com/products/louder-esp32-plus

## Options

**Board version**

- [A] Classic ESP32 with built-in antenna ■ (0 left)
- [B] Classic ESP32 with external antenna ■ [Add $1.00] (0 left)
- [C] ESP32-S3 with built-in antenna ■ (0 left)
- [D] ESP32-S3 with external antenna ■ [Add $1.00] (0 left)

## Links

- [Documentation](https://sonocotta.com/louder-esp32/)
- [Code](https://github.com/sonocotta/esp32-audio-dock/)

## Images

![Louder ESP32 Plus](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc0MDcsInB1ciI6ImJsb2JfaWQifX0=--6213db15dd8cc65483b22984dab06392bf4b9005/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbOTYwLDY0MF0sInNhdmVyIjp7InN0cmlwIjp0cnVlfX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--4e27bac8cdfb621fb828f6a3a5982fe1a423b516/DSC_0090.jpeg)
![Louder ESP32 Plus](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc0MTEsInB1ciI6ImJsb2JfaWQifX0=--f84576fb2a8fc70bdefbdef22b8509c5f472145a/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbOTYwLDY0MF0sInNhdmVyIjp7InN0cmlwIjp0cnVlfX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--4e27bac8cdfb621fb828f6a3a5982fe1a423b516/DSC_0106.jpeg)
![Louder ESP32 Plus](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc0MTUsInB1ciI6ImJsb2JfaWQifX0=--bde16eaeb886f4a29045ef3430c499f1d7731b47/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbOTYwLDY0MF0sInNhdmVyIjp7InN0cmlwIjp0cnVlfX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--4e27bac8cdfb621fb828f6a3a5982fe1a423b516/DSC_0023.jpeg)
![Louder ESP32 Plus](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc0MjIsInB1ciI6ImJsb2JfaWQifX0=--b75b53e027a445166212382fc7ed5cfea3dca496/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbOTYwLDY0MF0sInNhdmVyIjp7InN0cmlwIjp0cnVlfX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--4e27bac8cdfb621fb828f6a3a5982fe1a423b516/DSC_0050.jpeg)

## Description

# What is it

Louder-ESP32-Plus combines ESP32 with an external I2S DAC with powerful DSP features, capable of driving full-size speakers. This combination provides your compact and efficient ESP32 module with the necessary memory and capabilities to stream high-quality audio.

- [TAS5825M](https://www.ti.com/product/TAS5825M) DAC with integrated DSP
- Digital volume control (avoids loss of resolution compared to software volume)
- Gain digital control
- Parametric EQ (15xBQ), 128-tap FIR, 3-band DRC, AGL
- Advanced DSP: Smart Excursion, Smart Thermal, Smart Bass, SmartEQ


## Features

|  | [Louder-ESP32](https://lectronz.com/products/louder-esp32) | **Louder-ESP32-Plus** |
|---|---|---|
| MCU | ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8 | ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8 |
| DAC | Stereo I2S DAC ([TAS5805M](https://www.ti.com/product/TAS5805M)) with built in DSP and D-Class amp | Stereo I2S DAC (<br>[TAS5825M](https://www.ti.com/product/TAS5825M)<br>) with built in DSP and D-Class amp |
| Output (4Ω, 1% THD+N) | 2x 32W | 2x 45W |
| Output (8Ω, 1% THD+N) | 2x 23W | 2x 32W |
| Output (Bridge, 4Ω, 1% THD+N) | 1x 45W | 1x 53W |
| 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 <br> Ethernet (optional module) | WiFi + BT4.2 (except S3) + BLE <br> Ethernet (optional module) |
| DSP Features | Advanced (EQ, FIR, DRC, AGL, etc.) | Advanced (EQ, FIR, DRC, AGL, Smart Amp, SmartEQ, Smart Bass) |
| **Software support** |  |  |
| Squeezelite-ESP32 | ✅ | ✅ |
| Snapclient | ✅ | ✅ |
| ESPHome (HA) | ✅ | ✅ |

⚠️ *Louder boards will connect to passive speakers; you can't use headphones or an external amp*

💡 *Need to connect an external amp? Check out [HiFi-ESP32](https://lectronz.com/products/hifi-esp32) / [HiFi-ESP32-Plus](https://lectronz.com/products/hifi-esp32-plus) and [Amped-ESP32](https://lectronz.com/products/amped-esp32) / [Amped-ESP32-Plus](https://lectronz.com/products/amped-esp32-plus)*

💡 *Don't need DSP capabilities? Check out [Loud-ESP32](https://lectronz.com/products/loud-esp32) / [Loud-ESP32-Plus](https://lectronz.com/products/loud-esp32-plus)*

💡 *Looking for a more feature-packed version? Check out [Louder Esparagus](https://lectronz.com/products/louder-esparagus) and [Esapragus Audio Brick](https://www.crowdsupply.com/sonocotta/esparagus-audio-brick)*


## Which chip: ESP32 or ESP32-S3?

This board is available with either the 'classic' ESP32 or the newer ESP32-S3. They are not interchangeable for every use case, and picking the wrong one is the single most common support question — here's the short version:

- **ESP32-S3 is the newer, more capable chip** — more RAM headroom, a faster CPU, and native USB — but it has **no Bluetooth Classic radio**, so Bluetooth A2DP only works on the original ESP32.
- **Squeezelite-ESP32 and standalone Snapclient**: pick the **classic ESP32**. Neither firmware is fine-tuned for the S3 yet, and current S3 support is noticeably laggier.
- **ESPHome / Home Assistant media player**: pick **ESP32-S3**. The new Sendspin renderer runs much better on the S3's extra headroom.
- **Voice assistant (wake word) in Home Assistant**: **ESP32-S3 is mandatory** — the classic ESP32 doesn't have the RAM/CPU headroom to run it.
- **AirPlay 1 & 2** ([rbouteiller/airplay-esp32](https://github.com/rbouteiller/airplay-esp32)): both chips are fully supported; ESP32-S3 is preferred for its extra performance headroom.

| Your use case | Pick |
|---|---|
| Bluetooth A2DP from a phone/laptop | **ESP32** |
| Squeezelite-ESP32 or standalone Snapclient | **ESP32** |
| ESPHome media player / Sendspin | **ESP32-S3** |
| Home Assistant voice assistant | **ESP32-S3** |
| AirPlay 1 & 2 | Either — **ESP32-S3** for more headroom |

If none of that applies to you and you just want the safe default, pick **ESP32-S3** — it's the newer chip. Only choose classic ESP32 if you specifically need Bluetooth A2DP, or plan to run Squeezelite-ESP32/Snapclient today.

## Board Pinout

### Louder-ESP32-Plus

|       | I2S CLK | I2S DATA | I2S WS | PSRAM RESERVED |  TAS5825 SDA | TAS5825 SCL | TAS5825 PWDN | TAS5825 FAULT |
|-------|---------|----------|--------|----------------|--------------|-------------|--------------|---------------|
| ESP32 | 26      | 22       | 25     | 16, 1          | 21           | 27          | 33           | 34            |
| ESP32-S3 | 14   | 16       | 15     | 35, 36, 37     | 8            | 9           | 17           | 18            |

### Ethernet

|       | SPI CLK | SPI MOSI | SPI MISO | ETH 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           |  

### Optional peripheral

|       |  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    | 21       | SPI2/20MHz          | 12           | 11            | 13            | 47          | 38          | 48          |

### Mic header

Both versions of the Louder-ESP32-Plus boards have an unsoldered header for external I2S mic: left and riggh channels. ESP32 uses the same I2S bus with an extra DATA IN pin due to the pin limitations, while S3 uses a dedicated I2S bus. It can be used for wake word functionality in the Home Assistant or for custom firmware.

|          | I2S CLK | I2S WS | I2S DATA |
|----------|---------|--------|----------|
| ESP32    | 26      | 25     | 13       |
| ESP32-S3 | 41      | 40     | 39       |

The mic model that I used for testing and validation is the INMP441 MEMS microphone; the pinout is created for this model. Other models might be available.

# Software Options

*   **Home Assistant** smart home audio and notifications.
    Start from the [web-installer](https://web.esphome.io/), as soon as you configure WiFi, the boards will be discovered by the ESPHome add-in automatically. Dedicated configs can be found in the [documentation](https://github.com/sonocotta/esp32-audio-dock/tree/main/firmware/esphome) for simple and stable media-player, experimental sendspin protocol, and experimental snapclient component
*   **Squeezelite-ESP32** Spotify Connect, AirPlay, Bluetooth or Logitech Media Server.
    Flash directly from your browser using the [web-installer](https://sonocotta.github.io/esp32-audio-dock/). Configure WiFi using Hotspot (default password: squeezelite). Don't forget to exit Recovery mode when done.
*   **Snapclient** multi-room audio streaming with snapserver.
    Flash directly from your browser using the [web-installer](https://sonocotta.github.io/esparagus-snapclient/), as soon as you configure the WiFi board will discover the snapserver automatically
*   **Snapclient (edge)** - developer version.
    Developer's version of the snapclient, less stable and more feature-rich for those who cannot wait for new features to be released. Installed via [web-installer](https://anabolyc.github.io/esparagus-snapclient-edge/), similar to standard snapclient
*   **AirPlay 1 & 2** with Sendspin, Bluetooth, and full DSP control.
    Native, actively developed AirPlay 1 & 2 firmware ([rbouteiller/airplay-esp32](https://github.com/rbouteiller/airplay-esp32)) with PTP multi-room sync, an experimental Sendspin renderer, Bluetooth A2DP on the ESP32 revision, and full 15-band DSP control over the TAS5825M from the board's web UI. Flash straight from your browser with the [web-installer](https://rbouteiller.github.io/airplay-esp32/getting-started/flashing/) — no toolchain needed. See [AirPlay 2 support](#airplay-2-support) below for details.
*   **Your own software**.
    Use [Arduino IDE](https://www.arduino.cc/en/software/) or [Platformio IDE](https://platformio.org/install/ide) and the provided [software samples](https://github.com/sonocotta/esp32-audio-dock/blob/main/firmware)

## AirPlay 2 support

Louder-ESP32-Plus runs [rbouteiller/airplay-esp32](https://github.com/rbouteiller/airplay-esp32), an open-source **AirPlay 1 & 2** receiver you can flash straight from your browser via the [web-installer](https://rbouteiller.github.io/airplay-esp32/getting-started/flashing/) — no PlatformIO or toolchain required. It's a separate firmware image from Squeezelite-ESP32 and Snapclient above, so flash whichever matches how you want to use the board.

- **AirPlay 1 & 2** — shows up natively in Control Center and any AirPlay app, with PTP-based multi-room sync
- **Sendspin** (experimental) — an open multi-room protocol renderer sharing the same output path, DSP, and volume control as AirPlay
- **Bluetooth A2DP** on the ESP32 revision — phones and laptops can stream directly whenever AirPlay is idle (the ESP32-S3 revision has no Bluetooth Classic radio)
- **OLED status display** — track metadata and progress for AirPlay, Bluetooth, and Sendspin alike
- **USB audio (UAC)** — the ESP32-S3 revision can be built as a USB sound card for a connected computer, sharing the same DAC path and DSP
- **Full DSP control** — the TAS5825M's on-chip EQ is fully exposed: 15 cascaded biquad sections per channel, each an arbitrary peaking filter, shelf, high/low pass, band pass, notch, phase shift, or raw coefficients, plus a crossover builder and full PurePath Console 3 tuning replay for tone, loudness, and DRC beyond the EQ page — all from the board's web UI

### TAS58xx DSP: full parametric EQ and crossover control

AirPlay 2 support above isn't just playback — it exposes the TAS5825M's on-chip DSP in full from the board's web UI:

- **15 biquad (BQ) filters per channel**, usable as a full 15-band parametric equalizer
- **Bi-amp filter configuration** for 2-way speaker systems — split the signal between tweeter and woofer with independent filter chains per amplifier
- **Low-pass filtering for subwoofer tuning and bass enhancement**
- **Generic filters for speaker and room equalization** — peaking filters, shelf filters, and EQ sections with a configurable Q-factor, applied per channel individually or to both at once

| A | B |
|------|------------|
| ![dsp-frequency-response](https://github.com/user-attachments/assets/c5d6fd74-e1ad-4bee-bc38-02b2b4a6d051) | ![dsp-filter-settings](https://github.com/user-attachments/assets/d6ad9d34-c694-41f6-bd89-6deab1791fcf) |

**Work in progress:** REW (Room EQ Wizard) integration, to drive automatic room-correction algorithms directly from a measured response.

## Using with Home Assistant

Both **Louder-ESP32 Plus** versions were created specifically to be used with Home Assistant via ESPHome integration. For both boards, rich [configs](https://github.com/sonocotta/esp32-audio-dock/tree/main/firmware/esphome) were pre-created with hardware configuration for common use cases. These include

- media_player component for simple and robust media playback and TTS announcements (with ducking effect)
- Sendspin media player – new experimental protocol for multi-room sync with media controls and more
- An experimental snapclient component that allows near-perfect multi-room sync and seamless integration with Music Assistant
- Another snapclient fork with an implemented 15-band software equalizer and a rich set of EQ presets
- Voice assist config for S3-based boards, allowing local voice-controlled assist and automation

Configurations are being actively maintained and upgraded, new experimental components added for you to test and enjoy

### Flashing ESP32-S3

ESP32-S3 boards have two ways of firmware update: (1) similarly to classic 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, it 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 the IO0 (FLASH) button and keep it pressed
- Press and release the RESET button. Release the FLASH button.
- ESP32-S3 will enter download mode, and the 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

## Hardware

Please visit the [hardware](https://github.com/sonocotta/esp32-audio-dock/tree/main/hardware) section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs.

### Optional Ethernet

Every board has a header that allows soldering in the W5500 SPI Ethernet module that 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.

### BTL and PBTL mode (TAS5825M DAC)

[TAS5825M DAC](https://www.ti.com/lit/ds/symlink/tas5825m.pdf) Allows 2 modes of operation - BTL (stereo) and PBTL (parallel, or mono). In Mono amp will use a completely different modulation scheme and basically will fully synchronize output drivers. Jumpers on the board allow both output drivers to connect to the same speaker. The most important step is to inform the Amp to change modulation in the first place via I2C comman. In the case of sqeezelite DAC controls set value is the following:

dac_controlset: {"init":[{"reg":3,"val":2},{"reg":3,"val":3},{"reg":2,"val":4}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]}

compared to default:
dac_controlset: {"init":[{"reg":3,"val":2},{"reg":3,"val":3}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]}

One can test audio with a single speaker connected between L and R terminals (plus on one side and minus on the other). Optionally, jumpers on the board will effectively connect the second driver in parallel doubling the current capability.

Important point, this will send only one channel to the output, that’s just how the DAC works. True mono as (L+R)/2 is possible via more in-depth configuration (very poorly documented), but I haven’t managed to configure that on the stand. I’m still working on that. (Along with a few more really cool DSP features that this DAC has, like EQ, subwoofer mode and tone compensation settings)

|  | BTL | PBTL |
|---|---|---|
| Descriotion | Bridge Tied Load, Stereo | Parallel Bridge Tied Load, Mono |
| Rated Power | 2×23W (8-Ω, 21 V, THD+N=1%) | 45W (4-Ω, 21 V, THD+N=1%) |
| Speaker Connection | ![image](https://github.com/user-attachments/assets/8e5e9c38-2696-419b-9c5b-d278c655b0db) | ![image](https://github.com/user-attachments/assets/8aba6273-84c4-45a8-9808-93317d794a44)

### TAS5825M DSP capabilities

The TAS5825M DAC has a very powerful DSP, that allows doing lots of data processing on the silicon, that otherwise would take a considerable part of your CPU time. As of the moment of writing it is mostly an undiscovered part of the DAC, since unfortunately, TI is not making it very easy for developers. (A minute of complaint) To be more specific, you need to be (A) a proven hardware manufacturer to get access to the configuration software, namely PurePath. (B) you need to apply for a personal license and go through an approval process, and after a few weeks of waiting you get access to one DAC configuration you asked for. (C) You find out that it will work with TI's own evaluation board that will set you back $250 if you'd be able to find one. Otherwise, all you have is a list of I2C commands that you need to transfer to the device on your own cost. No wonder no one knows how to use it.

But moanings aside, what do you get after:

- Flexible input mixer with gain corrections
- 15 EQ with numerous filter configurations
- 3-band Dynamic Range Compression with flexible curve configuration
- 128-tap FIR filter 
- Automatic Gain Limiter with flexible configuration
- Soft clipper
- Smart Excursion, Smart Thermal, Smart Bass, SmartEQ - not really sure waht they do though

At this moment I'm adding most useful features one by one, focusing on EQ and Bi-amp filtering capabilities. All of the above are available right now for experimentation. I'm keen to hear your feedback while I'm moving forward with porting this to other software options

- [ ] - [espragus-snapclient](https://sonocotta.github.io/esparagus-snapclient/) software with self-hosted UI
- [ ] - [ESPHome component](https://github.com/mrtoy-me/esphome-tas58xx) with on-the-fly configuration changes
- [ ] - [squeezelite-esp32](https://sonocotta.github.io/esp32-audio-dock/)

### Louder ESP power considerations

[Barrel jack used](https://www.lcsc.com/product-detail/AC-DC-Power-Connectors_XKB-Connectivity-DC-044D-2-5A-2-0-SMT_C397342.html) is spaced at 6mm hole/2mm pin, which is typically 5.5/2.5mm jack on the male side. 

![image](https://github.com/sonocotta/esp32-audio-dock/assets/5459747/0b18f215-e4ce-4335-9217-d8859566c3a4)

The screw terminal is connected in parallel to the barrel jack; you can use either interchangeably.

The power adapter specs depend on the speaker you're planning to use. DAC efficiency is close to 100%, so just take the power rating of your speaker (say 2x10w), and impedance (say 8 ohms), and you'd need at least 9 volts rated at 1.2 amps per channel, round up to 3 total amps. 

It is not recommended to go beyond the voltage your speakers can take; otherwise amp will blow your speakers in no time.

### Case

Louder-ESP32 and Louder-ESP32-Plus boards are mechanically compatible with Raspberry Pi 4 cases, and they are very easy to source

| Louder-ESP32 |
|---|
| ![DSC_0001](https://github.com/sonocotta/esp32-audio-dock/assets/5459747/68d5c2ab-d5f7-4f66-8ff7-4301ddaab7ed)

# Restocking & Availability

New restock batches are regularly ordered from the factory, and I plan to keep all versions available at least until the next board revision is released. For current availability, you can also check the official distributor [Elecrow](https://www.elecrow.com/louder-esp32-plus.html).

## USA shipping Update

Due to the new tariffs introduced by the Trump administration, standard shipments are temporarily on hold. However, shipping to the US has now resumed via UPS, though rates are currently quite high. I’ll fully resume regular shipping as soon as the restrictions are lifted. In the meantime, you may consider ordering through [Elecrow](https://www.elecrow.com/louder-esp32-plus.html).

## Sponsorship & Community Support

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.

## Custom Design & Consultation

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.


## Shipping policy

Most orders are shipped the next business day morning. All shipments are tracked. Delivery time in the EU is 3-7 days, outside 2-3 weeks, depending on the distance. After 30 days, the package is considered lost - reach out for a refund or replacement.
