ESP32 Audio Developent boards: HiFi-ESP32, Loud-ESP32, Amped-ESP32, Louder-ESP32 https://sonocotta.github.io/esp32-audio-dock/
  • C++ 58.8%
  • JavaScript 17.4%
  • HTML 14.4%
  • Shell 6.6%
  • SCSS 1.9%
  • Other 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-14 12:07:46 +02:00
.github/workflows Added mini/pro configs. Disabled telnet and btsink on Louder S3 by default (#160) 2026-07-23 22:57:48 +02:00
.vscode Updated hifi-esp32-s3-plus pinout (#111) 2026-03-23 12:43:34 +01:00
docs Add built squeezelite binaries, latest templates and NVS settings binaries 2026-07-23 21:03:21 +00:00
firmware Added mini and pro boards to the esphome readme 2026-08-06 23:33:06 +02:00
flash-tools Added mini/pro configs. Disabled telnet and btsink on Louder S3 by default (#160) 2026-07-23 22:57:48 +02:00
hardware Added missing hw files 2026-08-14 12:07:46 +02:00
images Added hw files, readme and the rest 2023-03-15 10:35:55 +01:00
installer Added 32-bit builds alongside with 16-bit (#88) 2026-02-18 10:53:20 +01:00
squeezelite-configs Added S3 sdkconfig and updated build pipeline. (#80) 2026-02-01 10:48:11 +01:00
.gitignore Added mini and pro boards to the esphome readme 2026-08-06 23:33:06 +02:00
.gitmodules Features/squeezelite esp32 installer update (#64) 2025-12-21 21:31:33 +01:00
LICENSE Initial commit 2023-03-13 14:21:42 +01:00
README.md Update README.md 2026-07-30 16:18:22 +02:00

ESP32 Audio Docks and Louder ESP

I sell on Tindieelecrow logo

Dev Chat

ESP32 Audio Docks is a range of development boards (earlier docks) that allow you to develop Audio solutions based on ESP32 chips. These were created to make Audio development entry as easy and inexpensive as possible.

First generation docks

image

HiFi-ESP32 HiFi-ESP32-Plus
image image
Loud-ESP32 Loud-ESP32-Plus
image image
Louder-ESP32 Louder-ESP32-Plus
image image
Louder-ESP32-mini Louder-ESP32-Pro
image image
Amped-ESP32 Amped-ESP32-Plus
image image

⚠️ Looking for Esparagus boards? Check out sister repository: Esapragus Media Center

Table of Contents

Motivation

I spent the last few years developing different solutions based on ESP devices. It all started with ESP8266, where CPU power is not really sufficient to do real-time decoding, so you're limited to a rather simple ding-dong business. Then ESP32 came, bringing two much more capable cores, so you have a powerhouse to handle communication and decoding at the same time. Perhaps most importantly, it also came with SPIRAM, so you can do decent buffering (essential for streamed content). Now, new ESP32 C-Series and S-Series chips are entering the market, and their potential is mostly unrealized as of today.

I created those docks and subsequently development boards to be able to quickly prototype for the whole range of ESP8266 and ESP32 chips, starting with the simplest finger-sized toys and going all the way up to full-sized speakers.

HiFi-ESP32 and Hifi-ESP32-Plus

The HiFi-ESP32 is a first-in-line product that uses the legendary PCM5100 series DAC with supreme audio quality. It exposes line-level output that you can plug into a stereo amplifier. Analog power comes through an Ultra-low-noise LDO, making sure no interference from the MCU comes through to your speakers. Spend as much as you need on the external amp to deliver the sound you like (personally, I prefer late 80's audio gear).

HiFi-ESP32 HiFi-ESP32-Plus
image image

The HiFi-ESP32 Plus represents the next evolution of the board, 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 (with output to downstream DAC). 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)

Key Features:

  • PCM5122 DAC with integrated DSP
  • Parametric EQ and crossover capabilities (for cascading DACs)
  • Digital volume control (avoids loss of resolution compared to software volume)
  • Advanced audio processing features (DRC)
  • Same form factor and connectivity as HiFi-ESP32

Loud-ESP32 and Loud-ESP32-Plus

The Loud-ESP32 uses a dual MAX98357 HiFi DAC with a built-in highly efficient D-class amp to deliver 3 to 5W of music power directly to your speakers. It is not too loud, but also very simple to use and fun to play with. When DAC is not in use, it goes into shutdown mode, making sure no hissing will keep you up at night. It powers from a standard USB-C power source, like a phone charger, etc.

Loud-ESP32 Loud-ESP32-Plus
image image

The Loud-ESP32-Plus model hires a much more powerful Infineon MA12070P DAC with up to 60W per channel. Due to the D-class amp, they are highly efficient yet high-quality audio streamers. It lacks DSP features, but has the most raw horsepower across the line. It is in beta testing, and I'm still trying to fix minor issues with the DAC driver.

Louder-ESP32 and Louder-ESP32 Plus

The Louder-ESP32 is a top-of-the-range model that uses a modern, highly capable TAS5805M DAC and is aimed at being paired with medium-to-large speaker systems. With 25W per channel stereo output, it packs a punch and can easily enliven living quarters or dorm rooms. It is highly efficient, but much more demanding for power when cranked; therefore, it also uses an external power adapter using a standard jack. This DAC has a built-in DSP, so you can have a lot of fun with complex EQ, soft-clipping, DRC compression, and AGL tools, among other things.

Louder-ESP32 Louder-ESP32-Plus
image image

The Louder-ESP32-Plus upgrades the DAC to the TAS5825M model, which is more efficient (and therefore more powerful) and more capable. It introduces advanced DSP features that are not available on the base model, as it has a much more powerful DSP processor.

  • 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

Louder-ESP32 Mini

Louder-ESP32-mini is a compact and stripped-down version of the Louder-ESP32, which would replace the standard speaker terminal on your old speakers, turning them into a Hi-Fi audio solution for your smart home.

It comes in two sizes that are most common among off-the-shelf speakers: 42x42mm (small speakers typically) and 52x52mm (for larger models).

Louder-ESP32-mini is equipped with a high-quality TAS5805M DAC with powerful DSP features, allowing audio tuning to turn small speakers into high-quality audio streamers. Onboard ESP32-S3 with 8MB PSRAM is there to ensure enough horsepower for solid streaming capabilities.

It is designed to be as affordable as it can be, so more speakers can avoid landfills and be an integral part of smart homes instead. It uses minimal (if any) extra peripherals, and it requires no soldering to operate. The part choice was carefully done to make it production-friendly and affordable for everyone

Front Back
image image

Louder-ESP32 Pro

On the other side of the scale, Louder-ESP32-Pro is a feature-packed version of the Louder-ESP32-Plus, which hosts most of the optional extras as standard, adds support for color TFT screens, and, perhaps most importantly, adds an industrial-grade heat release solution for reliable heavy-duty operation.

It comes in Raspberry Pi 5 shape with the most important component placed to follow the original heat release pattern. This allows the use of Raspberry Pi aluminum radiators, including those with soft-controlled fan connectors, that can be driven through Louder-ESP32-Pro software when operating in hot conditions.

Louder-ESP32-Pro is equipped with a high-quality TAS5825M DAC with powerful DSP features, allowing audio tuning to turn your speakers into high-quality audio streamers, big or small likewise. Onboard ESP32-S3 with 8MB PSRAM is there to ensure enough horsepower for solid streaming capabilities.

image

Louder-ESP32-Pro is designed to be powered from a USB-C power source, so powering it is as easy as plugging in a standard laptop power charger. It can accept a wide range of voltages, but for maximum performance, a 20V 3.25A 65W power adapter is recommended. This will ensure that the board can deliver its full audio output capabilities without power limitations.

Model Image
20V 3.25A 65W AC Laptop Power adapter Charger image

It will also work from Quick-charge power adapters (9V, 12V) that support USB-PD protocol, and even bare USB-C power sources, but the maximum output will be limited to the power adapter's capabilities.

Amped-ESP32 and Amped-ESP32-Plus

The PCM5100 HiFi DAC is combined with a highly efficient TPA31-series D-class amplifier. It brings all the best from the HiFi model and adds an onboard amp to form a complete solution that can be paired with speakers. Compared to the Louder models, it has similar power capabilities, 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. It adds line-out, so you have a chance to switch betwwen built-in amp and external, if you need to.

Amped-ESP32 Amped-ESP32-Plus
image image

Building upon the success of the Amped-ESP32, the Amped-ESP32 Plus combines the powerful PCM5122 DAC with the same TPA31-series amplifier. This board offers the same DSP capabilities as the HiFi-ESP32-Plus while providing built-in amplification for direct speaker connection. The PCM5122's DSP features will enable advanced audio processing, including speaker correction, room EQ, and other enhancements.

Features:

  • PCM5122 DAC with integrated DSP + TPA3110/TPA3118 D-class amplifier
  • Digital EQ and dynamic range processing
  • Same power output as Amped-ESP32 with enhanced audio quality

TPA3110 vs TAP3118 designs

Recently, all Amped boards were migrated to use the new TPA3118 amp. Benefits that the new TPA3118 amp brings:

  • It is more efficient (about half the heat with the same output power, compared to TPA3110), so the board can sustain higher power for longer
  • It has a true MUTE pin that can be connected to the GPIO and shut down the output driver when no audio is playing
  • It can be powered from a 5V source, so if you're not looking for maximum power, you can use a USB-C power adapter alone
  • Being a newer design, it has better audio quality. I can't hear it, but people say it sounds better

Features

First generation docks
ESP Audio Solo ESP Audio Duo Hifi ESP Louder ESP
image image image image
ESP8266, ESP32C3, ESP32S2 Mini modules ESP32 Mini Module ESP32 Mini Module ESP32 Mini Module
Single I2S DAC (MAX98357) with built in D-Class amp Dual I2S DAC (MAX98357) with built in D-Class amp PCM5100A 32bit Stereo DAC -100 dB typical noise level Stereo I2S DAC (TAS5805M) with built in D-Class amp
3W 2x 3W Non-amplified stereo output 2x 32W (4Ω, 1% THD+N)
1.5W 2x 1.5W Non-amplified stereo output 2x 22W (8Ω, 1% THD+N)
8MB PSRAM (4MB usable) 8MB PSRAM (4MB usable) 8MB PSRAM (4MB usable)
WiFi (ESP8266, ESP32S2) WiFi + BT5.0 (ESP32C3) WiFi + BT4.2 + BLE WiFi + BT4.2 + BLE WiFi + BT4.2 + BLE Ethernet
HiFi-ESP32 HiFi-ESP32 Plus Loud-ESP32 Loud-ESP32-Plus Louder-ESP32 Louder-ESP32 Mini Louder-ESP32 Plus Louder-ESP32 Pro Amped-ESP32 Amped-ESP32 Plus
Image (ESP32) image image image image image n/a image n/a DSC_0003 image
MCU ESP32-WROVER-N8R8 ESP32-WROVER-N8R8 ESP32-WROVER-N8R8 ESP32-WROVER-N8R8 ESP32-WROVER-N8R8 n/a ESP32-WROVER-N8R8 n/a ESP32-WROVER-N8R8 ESP32-WROVER-N8R8
Image (ESP32-S3) image image image image image image image image image image
MCU (S3) ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8 ESP32-S3-WROOM-N8R8
DAC PCM5100A 32bit Stereo DAC (-100 dB typical noise level) PCM5122 32bit Stereo DAC with integrated DSP (-112 dB typical noise level) Dual I2S DAC (MAX98357) with built in D-Class amp Infineon MA12070P
with built-in D-Class amp
Stereo I2S DAC (TAS5805M) with built in D-Class amplifier and powerful DSP Stereo I2S DAC (
TAS5805M
) with built in D-Class amplifier and powerful DSP
Stereo I2S DAC (
TAS5825M
) with built in D-Class amplifier and powerful DSP
Stereo I2S DAC (
TAS5825M
) with built in D-Class amplifier and powerful DSP
PCM5100A 32bit Stereo DAC working with
TPA3110D2 D-Class amp
TPA3128D2 amp starting from Rev H
PCM5122 32bit Stereo DAC with DSP + TPA3110D2 or TPA3118D2 amp
Line-out (possibility to connect external amplifier)
Output (4Ω, 1% THD) 2x 5W 2x 60W 2x 32W,
1x 45W (bridged)
1x 5W 2x 45W,
1x 53W (bridged)
2x 45W,
1x 53W (bridged)
(TPA3110)
2x 25W
1x 40W (bridged)
(TPA3128)
2x 25W
1x 60W (bridged)
(TPA3110)
2x 25W
1x 40W (bridged)
(TPA3118)
2x 25W
1x 60W (bridged)
Output (8Ω, 1% THD) 2x 3W 2x 35W 2x 22W 1x 3W 2x 30W 2x 30W 2x 25W 2x 25W
Flash 8MB 8MB 8MB 8MB 8MB 8MB 8MB 8MB 8MB 8MB
PSRAM 8MB 8MB 8MB 8MB 8MB 8MB 8MB 8MB 8MB 8MB
Power 5V over USB-C 5V over USB-C 5V (up to 2.5A) from USB-C 5..26V from external PSU 5..26V from external PSU 5V (up to 2A) from USB-C 5..26V from external PSU USB-PD enabled power adapter (up to 65W) (TPA3110) 9..26V
(TPA3128) 5..26V
from external PSU
(TPA3110) 9..26V
(TPA3118) 5..26V
from external PSU
Connectivity WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BLE WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BLE + Ethernet WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
WiFi + BT4.2 (except S3) + BLE
Ethernet (optional module)
Built-in DSP (Digital Signal Processor) Basic (6-band EQ, DRC) Advanced (15-band EQ, DRC, AGL, FIR, etc.) Advanced (15-band EQ, DRC, AGL, FIR, etc.) Advanced+ (15-band EQ, DRC, AGL, FIR, Smart features.) Advanced+ (15-band EQ, DRC, AGL, FIR, Smart features.) Basic (6-band EQ, DRC)
Built-in mic (voice assist) optional optional optional optional optional optional optional optional
Built-in IR reader
Software support
Squeezelite-ESP32**
Snapclient***
ESPHome (Media player)
ESPHome (Sendspin player)****
ESPHome (Snapclient player)*****

** Squeezelite-ESP32 support for the ESP32-S3 is an experimental feature and is not fully stable; for styable operation, 'classic' ESP32 is recommended. Please refer to the original repo for up-to-date support information

*** Snapclient support for the ESP32-S3 is in beta and not fully stable as well. For best results, 'classic' ESP32 is recommended.

**** Sendspin player is a beta feature and in active development; currently, ESP32-S3 works considerably better than classic ESP32, but it is still in development, and the situation will improve over time.

***** Snapclient component in ESPHome is a beta feature, developed by the community. Please check the current development status for up-to-date support information.

Onboard PSRAM

Audio streaming requires proper buffering to work; even with the ESP32's 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 just works out of the box.

Boards Pinout

Legacy boards

First generation docks

ESP Audio Solo

I2S CLK I2S DATA I2S WS
ESP8266 15 3 2
ESP32-C3 5 20 6
ESP32-S2 12 37 16

ESP Audio Duo

I2S CLK I2S DATA I2S WS PSRAM CE PSRAM CLK
ESP32 26 22 25 16 17

HiFi-ESP

I2S CLK I2S DATA I2S WS PSRAM CE PSRAM CLK
ESP32 26 22 25 16 17

Louder ESP

I2S CLK I2S DATA I2S WS PSRAM CE PSRAM CLK TAS5805 SDA TAS5805 SCL TAS5805 PWDN TAS5805 FAULT
ESP32 26 22 25 16 17 21 27 33 34
ESP32-S3 14 16 15 - - 8 9 17 18

HiFi-ESP32 and Amped-ESP32

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+)

Amped-ESP32-Plus

I2C CLK I2C DATA PSRAM RESERVED AMP EN
ESP32 27 21 16, 17 13
ESP32-S3 08 18 35, 36, 37 17

HiFi-ESP32 Plus and Amped-ESP32 Plus

I2S CLK I2S DATA I2S WS I2S MCLK (optional) PSRAM RESERVED DAC/AMP EN I2C SDA I2C CLK.
ESP32 (J) 26 22 25 0 16, 17 13 27 21
ESP32-S3 (H) 14 16 15 0 35, 36, 37 4 41 42
ESP32 (J1+) 26 22 25 0 16, 17 13 21 27
ESP32-S3 (H1+) 14 16 15 0 35, 36, 37 4 42 41

Loud-ESP32

I2S CLK I2S DATA I2S WS DAC EN PSRAM RESERVED
ESP32 26 22 25 13 16, 17
ESP32-S3 14 16 15 8 35, 36, 37

Loud-ESP32-Plus

I2S CLK I2S DATA I2S WS DAC ENABLE DAC MUTE SDA SCL PSRAM RESERVED
ESP32 26 22 25 13 33 21 27 16, 17
ESP32-S3 14 16 15 17 18 9 8 35, 36, 37

Louder-ESP32 and Louder-ESP32-Plus

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

Ethernet (all boards)

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

Optional peripheral (all boards)

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
ESP32-S3 (Rev J3+) 7 9 SPI2/20MHz 12 11 13 47 38 48
HIFI-ESP32-S3 (Rev G2+) 7 9 SPI2/20MHz 12 11 13 39 40 38

Fan (optional on Louder-ESP32-Pro boards)

Louder-ESP32-Pro have a 4-pin fan connector, with a size and pinout borrowed from the Raspberry Pi 5 specification. It can be used to connect a 5V fan, which can be controlled by the onboard ESP32-S3. The fan speed can be set in software, and the actual speed can be read back from the fan's tachometer output.

IN (RPM read) OUT (speed set)
ESP32-S3 1 2

Mic header

Both versions of the Louder-ESP32 boards (ESP32 Rev. H6+, ESP32-S3 Rev. K0+) and HiFi-ESP32 (ESP32 Rev. F3+, ESP32-S3 Rev. G2+) have an unsoldered header for external I2S mic: left and right 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
HIFI-ESP32-S3 (Rev G2+) 17 18 8

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. image

TFT and Fan header (Louder-ESP32 Pro boards)

FAN PWM FAN SPD TFT SPI HOST/SPEED TFT SPI CLK TFT SPI MOSI TFT SPI MISO TFT SPI CS TFT SPI DC TFT RST TFT BACKLIGHT
ESP32-S3 2 1 SPI2/20MHz 12 11 13 47 38 48 42

Which software is right for me

image

Software samples

In the software section, two firmware examples are provided.

Platformio IDE

All samples are provided as Plarformio 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.

Arduino IDE

Follow the ESP8266Audio library guide. Default settings will work out of the box with ESP8266 and ESP32 boards. For the ESP32C3 and ESP32S2 board, please adjust the pinout according to the above section

Using ESP32 Audio Boards with the Home Assistant

There are several ways ESP32 Audio Boards can be integrated into the Home Assistant setup. Each of them gives a unique feature, losing some other in return. As usual, there is no perfect solution for everyone, but perhaps there is one for you. Below is the summary table of the methods known to me and tested by me.

Integration type Tested Description Pros Cons
LMS/Airplay Yes Connect to Music Assistant as external protocol device. Can play your media library and internet radio Still can use squeezelite, i.e. use Spotify Connect and Apple Airplay when HA is not using the device No native integration into HA, only works with Music Assistant
ESPHome way Yes Connect as HA media device. Can be used with any HA integration, including Music Assistant, Text-to-Speech announcements, alarms, etc More integrations with HA, more flexibility in use case No longer works as Spotify, Airplay, etc.
Snapcast way Yes Connect to Music Assistant as snapcast protocol device. Can play your media library and internet radio. Perfect for multiroom sync (Sonos-like, perhaps even better). Can be used with other Snapcast servers around the house No longer works with Spotify, AirPlay, etc. No native integration into HA only works with Music Assistant

Below are specific steps that you need to follow to spin up ESP32 Audio Boards in the Home Assistant

Configuring Home Assistant

I prefer to use HA with the Music Assistant. This way, you can integrate both your media library and internet radio and have a nice UI/UX at the same time (including mobile).

Generally, you need to have a supported HA (native) installation and follow these steps. I will place here a short version to have a reminder for future self

Install instructions
Step Screenshot
Add SSH Addon

Navigate to Settings > Addons > Add Addon
Search for SSH and install it.
Enable Show in sidebar switch while you there
image
Start SSH Addon

SSH addon won't start until you add at least one SSH public key to it. So navigate to SSH Addon Settings and add a key (or password) to the config
It should be able to start now
image
Install Community Store

Run this command in the Terminal session
wget -O - https://get.hacs.xyz | bash -
You need to restart your HA after that
image
Add HACS

Navigate to Settings > Devices as Services > Integrations > Add Integration, search for HACS, and add it to the HA
You'll need to authorize your extension to your GitHub account
image
Install Music Assistant via HACS

From the HACS menu, search for Music Assistant and press the Download button
You need to restart HA again
In the Settings > Addons, you should be able to see MA and enable sidebar navigation for it.
image
Configure Music Assistant

Before you enable Integration (that will in turn add speaker devices), you need to enable MA providers
Go to MA > Settings > Providers and enable both Music providers and Player providers that interest you. If you're not sure, enable all of them; you can disable them later on.
image
Add Music Assistant Integration

Navigate to HA Settings > Devices & services > Integrations. Click the big + ADD INTEGRATION button, look for Music Assistant, and click to add it.
It should discover and add media devices based on the providers you're enabled in the previous step
image
Add Music Devices discovered by MA

You should be able to add and use discovered devices. More details in below sections
image

Home Assistant: LMS or Airplay

gh://sle118/squeezelite-esp32

When you have squeezelite-esp32 installed on your ESP32 Audio Board (either stock or manually going through steps), it will announce itself by multiple protocols in the network:

  • Bluetooth
  • LMS or slimproto - auto-discovered by HA
  • Apple AirPlay - auto-discovered by HA
  • Spotify Connect

The power of this method is that you can use all four ways outside of HA, for example, using your smartphone and Spotify app, and still have it integrated into HA at the same time.

Install instructions

Native HA integration

Make sure your MA Slimproto provider is disabled; it will conflict with the native HA integration

Step Screenshot
Add SlimProto Integration

Navigate to HA Settings > Devices & services > Integrations. Click the big + ADD INTEGRATION button, look for SlimProto, and install it.
image
Add HA MediaPlayers provider to MA image

Integrate into Music Assistant directly

Disable SlimProto integration in the HA if you want to go the MA way. If you enabled SlimProto and AirPlay providers in the MA, you should find your device as both a Slimproto device and an AirPlay device. It is up to you which protocol to use; generally, they both work perfectly well.

Home Assistant: ESPHome way

Louder-ESP32 running ESPHome

All ESPHome configurations are in the firmware/esphome/ folder. See the ESPHome README for full details on supported hardware variants, configuration options, the package system, and build instructions.

All configs use the ESP-IDF framework (preferred for audio — lighter, faster, and more stable than Arduino). Each board directory contains up to four firmware variants:

Variant Files Description
Standard media player *-idf.yaml Native HA media player with mixer, resampler, TTS and announcement ducking
Snapclient *-snapclient.yaml Snapcast multi-room client with 18-band software EQ (experimental)
Sendspin *-sendspin.yaml ESPHome-native multi-room playback via Sendspin protocol (experimental, 2026.2.0+)
Voice Assistant *-voice-assist.yaml Wake-word voice assistant with HA Voice integration (Plus boards only)

Both ESP32 and ESP32-S3 variants are covered for each board. S3 variants carry -s3- in the filename.

Sendspin references:

Install steps

Install instructions
Step Screenshot
Add ESPHome Addon

Navigate to HA Settings > Addons > Add Addon
Search for SSH and install it.
Enable Show in sidebar switch while you there
image
Prepare ESP32 Audio Board for ESPHome onboarding

Use Web Flasher to flash stock ESPHome into device
image
Onboard ESP32 Audio Board ESPHome device into HA

Go to the HA ESPHome page and you should be able to find a new device. You need to onboard it with the below config (feel free to change names)
This will take a moment or two
image
Validate device in the ESPHome image
Add ESPHome Integration

Navigate to HA Settings > Devices & services > Integrations. Click the big + ADD INTEGRATION button, look for ESPHome, and click to add it.
It should discover and add ESPHome media devices based on the previous step
image
Use your media device in the HA image
Use your media device in the MA

Add Music Assistant HA MediaPlayers provider to discover new Media device
image

The latest changes in the ESPHome (deprecation of the custom components) triggered a work to implement an external TAS5805M DAC ESPHome component. It took some time, but this driver implements a few very important features of the TAS5805M DAC that can not only be used in the device configuration, but also in various automations and complex logic. Worth noting:

  • Possibility to configure Analog Gain (depending on the power supply you have, more details here) |
  • Advanced digital volume configuration (set minimum, maximum, and step value)
  • image
  • Automatic powersave modes based on playback state
  • DAC mode: 2 channel, or 1 channel bridged mode (more details here)
  • Mixer mode: MONO, STEREO, INVERTED, LEFT, RIGHT (more details here)
  • My favorite: 15 band equalizer with [-15 dB .. +15 dB] range, which is an absolute treat to configure your speakers to your audio taste
  • image
  • For the first time: read and reset fault states, no need to reboot the device. Not only reports them back to HA, but also example of automatic correction is provided (slowly reduce volume on overheat)
  • image

We have some plans for further development of the ESPHome driver, implementing subwoofer and satellite profiles (for 2.1 and bi-amp configs), enabling soft-clipping, and perhaps even unleashing the power of all BQ-parameters (to enable speaker-specific compensation of the DAC). Stay tuned!

PCM5122 DSP capabilities (HiFi-ESP32 Plus & Amped-ESP32 Plus)

The PCM5122 DAC featured in the new Plus models brings advanced DSP capabilities that were previously unavailable in the PCM5100-based lineup. This powerful 32-bit DAC includes a flexible DSP engine that enables low-latency sophisticated audio processing directly on the chip, reducing CPU load and providing professional-grade audio enhancement features.

Key DSP Features:

  • Parametric EQ: ^BQs per channel of parametric equalization for precise frequency response shaping
  • Dynamic Range Control (DRC): Automatic volume management and dynamic compression
  • Crossover Networks: Digital crossover filters for bi-amp and multi-way speaker systems
  • Bass/Treble Enhancement: Dedicated low and high frequency boost/cut controls
  • Volume Control: High-resolution digital volume with soft mute functionality
  • Sample Rate Conversion: Automatic handling of different input sample rates

Planned Implementation:

  • Integration with ESPHome for Home Assistant control of DSP parameters
  • Real-time EQ adjustment through UI
  • Preset management for different listening environments
  • Advanced crossover configurations for 2.1 setups

The PCM5122's DSP features will be gradually unlocked through firmware updates, starting with basic EQ and volume control, and expanding to include advanced crossover and room correction features. This positions the HiFi-ESP32 Plus and Amped-ESP32 Plus as professional-grade audio development platforms suitable for high-end audio applications.

Development Status:

  • - Hardware design completed (HiFi-ESP32 Plus)
  • - Basic I2C driver implementation
  • - ESPHome component development
  • - Advanced DSP feature implementation
  • - Hardware design (Amped-ESP32 Plus)
  • - Web interface for DSP control

Home Assistant: Snapcast

Snapcast is a multi-room audio player that synchronizes playback across multiple devices, ensuring that audio streams play simultaneously in perfect sync. It consists of a server, which distributes audio streams, and clients, which receive and play the audio. There is a snapcast fork that was created to implement ESP32 Audio Board-specific configuration on top of the ESP32 Snapcast client. This allows us to build flexible and extendable setups connected to various sources, like Mopidy, MPD, or Home Assistant.

Install instructions
Step Screenshot
Flash Snapcast to the ESP32 Audio Boards using web-flashing tool
image
Enable Snapcast in the MA

Got to the Ma and enable Snapcast provider. Your speaker will be discovered automatically, as long as it is running
image
Use your media device in the MA

Play your audio into new device
image
Use a group of speakers for multi-room setup

In the MA settings > Players create a new group player and add as many Eparagus players as you need. Use that group speaker to get a synced audio
image

As of mid-2025 work is ongoing (1, 2) to add snapcast component to ESPHome. This is based on the original implementation done by CarlosDerSeher. This has the benefit of enabling all the DAC features implemented by the ESPHome driver. At the moment of writing, there are quite a few issues to be solved in the code before it can be merged, but having tested this myself on a few S3-based boards as long as Louder-Esparagus and Louder-ESP32 boards, I can say it is stable and works really well. Also

  • This is the only implementation that works with ESP32-S3 (exciting!)
  • This implementation allows using advanced TAS5805M DAC features available in the Esphome driver, like bridge mode and 15-band EQ. If you have Home Assistant already, that's no brainer

Squeezelite-ESP32

Squeezelite-ESP32 is a multimedia software suite that started as a renderer (or player) of LMS (Logitech Media Server). Now it is extended with

  • Spotify over-the-air player using SpotifyConnect (thanks to cspot)
  • AirPlay controller (iPhone, iTunes ...) and enjoy multi-room synchronization as well (although it's AirPlay 1 only)
  • Traditional Bluetooth device (iPhone, Android)

And LMS itself

  • Streams your local music and connects to all major online music providers (Spotify, Deezer, Tidal, Qobuz) using Logitech Media Server - a.k.a LMS with multi-room audio synchronization.
  • LMS can be extended by numerous plugins and can be controlled using a Web browser or dedicated applications (iPhone, Android).
  • It can also send audio to UPnP, Sonos, Chromecast, and AirPlay speakers/devices.

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.

Note that the squeezelite team only supports officially 'classic' ESP32 boards. The ESP32-S3 build is done based on the latest code and S3-specific SDKCONFIG provided by the team, but according to them, "It is not yet part of official releases, but it compiles & runs. The S3 does not have Bluetooth audio. Note that CPU performance is greatly enhanced". It is not running stably at all times, but it might depend on the configuration also.

How to flash and configure

Use Installer for ESP Audio Dock to flash the firmware first. It has been preconfigured to work with ESP Audio boards and will configure all hardware automatically.

Install instructions
Select the correct device first image
Connect the device to the USB port and select it from the list image
Press Flash and wait around 2 minutes image
(Optional) You may enter the serial console to get more information image
Device is in recovery mode. Connect to squeezelite-299fac wifi network with squeezelite password (your network name suffix will be different) image
When redirected to the captive portal let the device scan wifi network and provide valid credentials
You can use provided IP address (http://192.168.1.99/ on the screenshot) to access settings page image
(Optional) You may change device names to something close to your heart image
Exit recovery image

You can use it now

Bluetooth Spotify Connect AirPlay LMS Renderer
image image image image

Ethernet configuration

If you have optional Ethernet on the board, please put this config in the NVS settings

# ESP32
eth_config = model=w5500,cs=5,speed=20000000,intr=35,rst=14
spi_config = mosi=23,clk=18,host=2,miso=19
# ESP32S3
eth_config = model=w5500,cs=10,speed=20000000,intr=6,rst=5
spi_config = mosi=11,clk=12,host=2,miso=13

Squeezelite-esp32 reboots and connection drops

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).

image

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

image

Airplay-2

The drawback is squeezelite's implementation is a first version of AirPlay. This new, open-source implementation of the Airplay protocol is a standalone v2 alternative, with great work done by the community despite lack of help from Apple!

The good news is the project supports Louder boards out of the box (the rest of the boards are cmoing soon as well). You just need to pull the code from the repo and flash it to your device. A code-free web-installer is coming as well.

How to Get Started

While I'm working on a simplified web-installer with pre-built binaries, you can try it out right away with the help of another community project - Platformio. All you need to do is install vscode, add platformio plugin, and you're ready to go.

Pull the AirPlay code somewhere into your filesystem first:

git clone https://github.com/rbouteiller/airplay-esp32 && code airplay-esp32

When VSCode loads, find the Platformio tab in the left navigation, select esparagus-audio-brick or esparagus-louder in the list of available configs, and run the Upload Filesystem image and Upload and Monitor tasks (assuming you have your board connected to the USB).

The Platformio magic happens now, pulling all the dependencies, platform files, frameworks, and building a binary for your board. Once it is flashed, all that is left to do is configure Wifi credentials using the built-in access point or connect Ethernet, if you're looking for lower latency.

Other smart home options

In case you use Domoticz or OpenHAB, or in fact any other system that supports MQTT integration, Tasmota is a way to go with ESP32 Audio Devices, which can be integrated into TTS, Media Player, or Web-radio scenarios. Since HiFi-ESP32 and Loud-ESP32 devices only need an I2S signal to work, setting them up would not differ from any other I2S-based device. With Louder-ESP32, it is a little more involved story, but in fact, folks at the Tasmota community did a heavy lifting of porting the I2C driver, and since mid-2025, it is a simple template that can be applied in a few clicks.

Unfortunately, the default configuration of the tasmota firmware would not include I2S by default; building firmware from source is required (which makes it more fun, if you ask me). Below is an instruction that I did test with the Louder-ESP32-S3 board (Non-S3 model will require only minor adjustments along the way)

Building Tasmota with I2S support

# Description Image
1 Pull the source code from the official repo. It is a Platformio project, so if you didn't have it before, install it now
git clone https://github.com/arendst/Tasmota/
2 In the code repository find a file named user_config_override.h, and add USE_I2S_ALL macro right before closing #endif image
3 Build and flash using the conifguration named tasmota32s3 for the S3 model, or tasmota32 for classic ESP32 image
4 Your device will need to connect to a Wi-Fi network, and you do this as usual by connecting to a Wi-Fi hotspot and providing wifi credentials

Connect to the MQTT broker

This step will depend on your specific setup, but since I have Home Assistant, I'll document the steps I had to do in the HA installation I have. Other brokers will fundamentally need the same steps, but clearly every system would have its own specific steps to take.

# Description Image
1 Install the MQTT broker into HA by installing the MQTT Addon. As soon as it is installed, it will use the HA user database, so credentials will be configured elsewhere image
2 Add mqtt_user in the HA User list. Keep the password nearby, as we will need it to connect the ESP32 device to the broker image
3 Add MQTT integration to the HA. It will autodiscover the local MQTT broker and connect automatically image
4 Add Tasmota integration to the HA. At this point, it will only connect to MQTT, but it will not find any devices just yet image

Connect Louder-ESP32 to the MQTT broker

# Description Image
1 Find out your device IP address (either from Serial logs or from your WiFi router), since we would need to access its web-UI to configure the device image
2 Navigate to Configure > MQTT section and update your MQTT host, user, and password settings image
3 After the device restarts, it should be able to connect to the broker. This can be confirmed in the Tasmota integration, as it will discover a new device now. image
4 Navigate to Configure > Auto-conf section and apply Louder-ESP32S3 config. After the device restarts, you're all set. image

Testing audio playback with MQTT controls

Description Image
Using the commands described here you can control device playback image
Start web-radio plaback
topic: cmnd/tasmota_XXXXXX/i2swr, payload: http://192.168.1.48:18000/bb
image
Stop playback
topic: cmnd/tasmota_XXXXXX/i2swr, payload: ``
image
Change volume
topic: cmnd/tasmota_XXXXXX/i2sgain, payload: 85
image
Commands I2SRtttl and I2Ssay didn't work for me, unfortunately. I didn't have time yet to figure out what the issue is.

Standalone Snapclient

Snapcast is a multi-room audio player that synchronizes playback across multiple devices, ensuring that audio streams play simultaneously in perfect sync. It consists of a server, which distributes audio streams, and clients, which receive and play the audio.

Standalone Snapclient is now available for all Esparagus boards. The main implementation (ESP32 Snapclient) is an ESP32 port of the Snapcast client. An installer repository maintained by me (Esparagus Snapclient) contains pre-configured settings for all Esparagus boards as well as a web-installer project.

The web-installer allows you to flash snapclient firmware using nothing but a browser - no additional software required. Once flashed, the Snapcast server will be auto-discovered on the same network (it can be hosted on Music Assistant, a standalone Raspberry Pi, or any other compatible server).

Snapclient benefits

  • Perfect multi-room synchronization - All speakers play in perfect sync across multiple rooms, similar to Sonos but with better accuracy
  • Zero configuration - Auto-discovers Snapcast servers on the network
  • Browser-based flashing - No need to install any tools, flash directly from the web
  • Low latency - Optimized for minimal audio delay
  • Flexible server options - Works with Music Assistant, standalone servers, or DIY Raspberry Pi setups
  • Cost-effective - Build a whole-home audio system at a fraction of commercial solutions
  • Possibility to mix up client with diffrent architecture - ESP32 side-by-side with Raspberries, etc.

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 an 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, then release the FLASH button last
  • 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 section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs.

First generation docks

image

ESP Audio Solo

Image Legend
image image MAX98357 DAC
image Speaker Terminal

ESP Audio Duo

Image Legend
image image MAX98357 DAC
image Speaker Terminals
image 8MB PSRAM IC

HiFi-ESP

Image Legend
image image PCM5100A DAC
image Speaker Terminals
image 8MB PSRAM IC
image Ultra-Low noise LDO 3V3 Voltage regulator

Louder ESP

Image Legend
image image TAS5805M DAC
image Speaker Terminals
image 8MB PSRAM IC
image 3V3 Drop-Down voltage regulator (powers ESP32)
image Input Voltage terminal
image (REV B, C, D) image TAS5805M DAC
image Speaker Terminals
- 8MB PSRAM IC (Hidden under ESP32 module)
- 3V3 Drop-Down voltage regulator (powers ESP32, hidden under ESP32 module)
image Input Voltage terminal

HiFi-ESP32

ESP32 ESP32-S3
image image

Loud-ESP32

ESP32 ESP32-S3
image image

Amped-ESP32

ESP32
image

Amped-ESP32 with TPA3118/TPA3128 amp

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

  • It does have a true MUTE pin, and now it is software-controlled on Amped-ESP32. It means that the board starts dead-quiet, and it stays quiet when the audio is paused
  • MUTE pin also disables PCM5100 DAC on rev H, so line-out is also dead quiet (not that it was noise before, but why not?)
  • It can work with 4.5V, so it plays even when powered from a simple USB-C, similar to Louder-ESP32. TPA3110 needs at least 8V to spin up
  • TPA3128 has a marginally better audio quality, as they say. I cannot hear the difference 😉
image

On the latest revisions I'm switching over to the TPA3118 amp, replacing TPA3128 for a few reasons:

  • MUTE schematic is updated to slow down voltage ramping speed on turn on this helps reduce pop noise to “I can no longer hear it” level
  • Modulation is hardwired to BD (1SPW is more efficient, but caused pops as well)
  • Gain is fixed at a 20dB level also helps with pops
  • I added a band-pass input filter network to make sure it is noise-free.

Louder-ESP32

ESP32 ESP32-S3
DSC_0013_small JPG-mh DSC_0012_small JPG-mh

Optional SPI Ethernet module

image

Every board has a header that allows for soldering in a 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.

HiFi-ESP32(S3) Loud-ESP32(S3) Louder-ESP32(S3)
image image image
Louder-ESP32-Plus Amped-ESP32-Plus
image image

squeezelite-esp32 nvs settings that you need to apply to enable it

# ESP32
eth_config = model=w5500,cs=5,speed=20000000,intr=35,rst=14
spi_config = mosi=23,clk=18,host=2,miso=19
# ESP32S3
eth_config = model=w5500,cs=10,speed=20000000,intr=6,rst=5
spi_config = mosi=11,clk=12,host=2,miso=13

BTL and PBTL mode (Louder and Amped boards)

The TAS5805M DAC DAC used on Louder boards, and the TPA3110D2 / TPA3128 amplifiers used on Amped boards support PBTL (Parallel BTL), also known as bridge mode. In practice, this lets the amplifier deliver roughly double the current capability into a single speaker, enabling higher output power when paired with a lower-impedance load.

A common misconception is that switching to PBTL will automatically double the power into the same speaker you used in normal 2-channel BTL/stereo mode. It wont. Even in stereo BTL operation, each channel already drives the speaker across the full supply voltage (VCC), so the power is limited by both the supply voltage and the current capability of each output driver.

In PBTL mode, both channels are paralleled and drive the same signal, effectively doubling the current capability. This allows you to safely connect a lower-impedance speaker, which is what actually increases the possible output power. If you keep the same speaker impedance you used in stereo mode, you only balance the load between the drivers — you do not gain additional output power.

Summary:

  • Use 34 Ω speakers in PBTL mode for optimal performance
  • Use 68 Ω speakers in standard BTL (stereo) mode

This ensures the amplifier can operate efficiently and deliver its intended power without overloading the output drivers.

In either scenario, you'd need to inform DAC/AMP to change modulation for PBTL mode (via I2C command or physical pins) and connect speakers "across" channels, so both channel drivers can contribute. This can be done in 2 alternative ways:

Desc Image
Bridge outputs before the speaker connector either with jumpers or solder bridges, use (either) single wire for each speaker terminal image
More recent boards introduce solder bridges instead of jumpers image
Wire both outputs of the speaker terminals together image

Power figures (comparison of BTL and PBTL modes)

DAC BTL (4Ω) BTL (8Ω) PBTL (3-4Ω)
TAS5805M image image image
TPA3110 image image image
TPA3128 image image image

Louder-ESP32 and Louder-ESP32-Plus (recent revisions)

Physical connections that need to be done on the board's back side (using solder bridges - normally open bridges to be closed for PBTL mode).

image

Note that apart from physical bridges, it also needs Bridge mode to be enabled via I2C command (see below)

Amped TPA3110 Amp

Physical connections that need to be done on the board (using solder bridges - normally open bridges to be closed for PBTL mode). image

Both drivers will play RIGHT channel signal

Amped TPA3128 Amp

image

Both drivers will play RIGHT channel signal

Louder TAS5805M DAC

The most important step is to inform the Amp to change the modulation in the first place via the I2C command. In the case of sqeezelite DAC control 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 the 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 simple setup will send only RIGHT channel to the output, thats just how the basic DAC setup works. In case you want true mono (LEFT + RIGHT)/2 or pure RIGHT or LEFT audio, you need to apply a mixer configuration. Full config looks like below (thanks @frdfsnlght for helping me here)

Single speaker (PBTL mode), TRUE MONO mix (L+R)/2:

{"init":[{"reg":3,"val":2},{"reg":3,"val":3},{"reg":2,"val":4},{"reg":0,"val":0},{"reg":127,"val":140},{"reg":0,"val":41},{"reg":24,"val":[0,64,38,231]},{"reg":28,"val":[0,64,38,231]},{"reg":32,"val":[0,0,0,0]},{"reg":36,"val":[0,0,0,0]},{"reg":0,"val":0},{"reg":127,"val":0}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]} 

Single speaker (PBTL mode), RIGHT input only:

{"init":[{"reg":3,"val":2},{"reg":3,"val":3},{"reg":2,"val":4},{"reg":0,"val":0},{"reg":127,"val":140},{"reg":0,"val":41},{"reg":24,"val":[0,128,0,0]},{"reg":28,"val":[0,0,0,0]},{"reg":32,"val":[0,0,0,0]},{"reg":36,"val":[0,0,0,0]},{"reg":0,"val":0},{"reg":127,"val":0}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]} 

Single speaker (PBTL mode), LEFT input only:

{"init":[{"reg":3,"val":2},{"reg":3,"val":3},{"reg":2,"val":4},{"reg":0,"val":0},{"reg":127,"val":140},{"reg":0,"val":41},{"reg":24,"val":[0,0,0,0]},{"reg":28,"val":[0,128,0,0]},{"reg":32,"val":[0,0,0,0]},{"reg":36,"val":[0,0,0,0]},{"reg":0,"val":0},{"reg":127,"val":0}],"poweron":[{"reg":3,"val":3}],"poweroff":[{"reg":3,"val":0}]} 

Physical connections:

Image Legend
Stereo Mode - leave open image
(Option A) Mono (PBTL) Mode, close horizontally image
(Option B) Mono (PBTL) Mode, close bridges (recent revisions) image
(Option C) Close at the speaker image

TAS5805M DSP capabilities

The TAS5805M DAC has a very powerful DSP, which 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 the DAC configuration you asked for. (C) You find out that it will work with TI's own evaluation board, which 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 at 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
  • Automatic Gain Limiter with flexible configuration
  • Soft clipper
  • and a few other things

At this moment, it is very experimental. In the perfect world, you should be able to adjust all of those settings to make your speaker-enclosure setup work the best it can, and even apply your room factors into the equation. But with the above disclaimer, I can only deliver a limited set of configurations corresponding to the most common use cases:

  • Stereo mode with enabled DRC (Loudness) and AGL settings
  • Full range Mono mode with DRC (Loudness) and AGL settings
  • Subwoofer Mono mode with a few filter frequency options
  • Bi-Amp configuration with a few crossover frequency options

All of the above are available right now for experimentation. I'm keen to hear your feedback while I move forward with porting this to other software options

Louder-ESP32 and Amped-ESP32 power considerations

The power adapter requirements depend on the speaker power rating and impedance.
Since the amplifier (DAC) operates at roughly 80% efficiency, use the following method to determine the minimum voltage and current required.

Calculate the Required Voltage (per channel)

  1. Take the rated power of one speaker (e.g., 10 W for a 2×10 W setup).

  2. Take the speaker impedance (e.g., 8 Ω).

  3. Compute the RMS voltage needed to deliver that power: V_RMS = sqrt(P * R)

    For a 10 W, 8 Ω speaker: V_RMS = sqrt(10W * 8Ohm} = ~9V

  4. This RMS value is your minimum supply voltage per channel.

Calculate the Required Current (including efficiency)

  1. Use the RMS voltage from Step 1.

  2. Compute the output current per channel: I_out = V_rms / R

    For 9 V RMS into 8 Ω: I_out = 9V / 8Ohm = ~1.2A

  3. Adjust for amplifier efficiency (≈ 80%) to determine input current.

  4. Multiply by the number of channels (e.g., 2 channels).

  5. Round up for safety and headroom.

Example:
Two 10 W, 8 Ω speakers → ≈ 1.2 A per channel × 2 ≈ 2.4 A, rounded up to 3 A total.

Final Result

For a pair of 10 W / 8 Ω speakers, you need a power adapter rated for at least:

  • Voltage: ~9 V
  • Current: 3 A total
  • Power: 25..30 W

It is not recommended to go far beyond the voltage your speakers can handle; otherwise, the amp will blow your speakers in no time. Using 12V power source with 9V requirement probably will be totally fine, but getting 20V power source for 10W speakers is a waste of budget and added risk.

Connector specs

Barrel jack used is spaced at 6mm hole/2mm pin, which is typically 5.5/2.5mm jack on the male side.

image

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

On the latest boards (starting from Amped-ESP32), I switched to barrel jack with thick middle pin with a 2.5mm pin, its a bit unusual but still common enough in the laptop world. It is far more comfortable in handling high currents, and importantly, much more sturdy and resistant to desoldering.

image

Model Image
19V 3.42A 65W 5.5X2.5mm AC Laptop Power adapter Charger For ASUS image

Efficiency

I performed Louder-ESP32 board load tests to analyze the thermal stability of the board under maximum load. These tests output a 100Hz sin-wave with a close to rail-to-rail signal (adjusting volume and gain) into an 8-Ohm load (both BD and 1SPW modulation). I started testing with bare naked DAC. As soon as I reached the point where DAC was entering thermal shutdown, I added a small radiator on top, and once more, a larger radiator on the back side (where the thermal pad is connected to the ground plane)

SIN wave, 100 Hz BD-mode 1-SPW mode
VCC, V Speaker voltage Ratio Speakers power RMS, W Consumed power, W Efficiency, % Losses, W Naked chip, 1min run Heat Sink 10x15mm (top cover) Heat sink 32x32mm(back side) Speaker voltage Speakers power RMS, W Consumed power, W Efficiency, % Losses, W Naked chip, 1min run Heat Sink 10x15mm (top cover) Heat sink 32x32mm(back side)
5 3.09 1.62 2.4 3.2 75% 0.8 stable - - 3.09 2.4 3.1 76% 0.7 stable - -
6 3.47 1.73 3.0 4.0 75% 1.0 stable - - 3.49 3.0 3.9 78% 0.9 stable - -
7 3.92 1.78 3.8 5.0 77% 1.2 stable - - 4.05 4.1 5.4 77% 1.3 stable - -
8 4.36 1.83 4.8 6.1 77% 1.4 stable - - 4.37 4.8 5.9 80% 1.2 stable - -
9 5.49 1.64 7.5 9.4 80% 1.9 stable - - 5.49 7.5 9.2 82% 1.6 stable - -
10 6.48 1.54 10.5 12.8 82% 2.3 stable - - 6.48 10.5 12.7 83% 2.2 stable - -
11 6.90 1.59 11.9 14.7 81% 2.8 stable - - 6.90 11.9 14.2 84% 2.3 stable - -
12 7.33 1.64 13.4 16.9 80% 3.4 stable - - 7.33 13.4 16.4 82% 3.0 stable - -
13 7.64 1.70 14.6 18.8 78% 4.2 stable - - 7.66 14.7 18.3 80% 3.7 stable - -
14 8.74 1.60 19.1 23.9 80% 4.8 stable - - 8.74 19.1 23.2 82% 4.1 stable - -
15 9.22 1.63 21.3 27.0 79% 5.7 OT warning stable - 9.21 21.2 25.8 82% 4.6 stable - -
16 9.70 1.65 23.5 30.0 78% 6.5 shutdown OT warning stable 9.70 23.5 28.7 82% 5.2 OT warning - -
17 10.28 1.65 26.4 33.0 80% 6.6 - shutdown OT warning 10.29 26.5 33.0 80% 6.5 OT warning OT warning -
18 11.40 1.58 32.5 41.0 79% 8.5 - - shutdown 11.37 32.3 40.2 80% 7.9 shutdown OT warning OT warning

Conclusion: Long-term operation without an additional heatsink is only possible up to VCC=15V. Adding a passive heatsink only helps to sustain 1-2 more volts; more power requires active cooling.

Speakers selection

When choosing speakers, focus on realistic power ratings rather than the often-inflated numbers printed on labels.

A good reference point is 10 watts at 1% THD (Total Harmonic Distortion) — this provides clean, pleasant audio without noticeable distortion. Many manufacturers, however, market their speakers based on higher distortion levels or theoretical peaks: • Nominal Power (e.g., 20W) — This is often measured at around 10% THD, which produces harsh, phone-like distortion. • Rated or “Maximum” Power (e.g., 40W) — The level a speaker can handle continuously, but without limiting distortion; sound quality is not measured. It is simply a scenario where speaker is used as a room heater. • Peak Power (e.g., 80100W) — The absolute maximum a speaker can withstand for a very short burst (milliseconds), not suitable for sustained playback.

In short, when a speaker claims “100W,” it typically translates to about 10W of clean, listenable power in real use. Always prioritize low-distortion ratings over inflated wattage numbers for the best listening experience.

OLED screen

Starting May 2025, all boards will have an OLED screen with a solder-less connector. Originally, I added the OLED header on the back side of the PCB that would require careful and skillful soldering (It is quite nice when using squeezelite since you can get quite a lot with existing plugins and settings). Later on, I managed to find the right model of the screen and corresponding connector for a reasonable price, and decided to equip every board with the connector as standard.

At this moment, one can simply throw in a compatible OLED screen and use a small strap of double-sided adhesive to fix it mechanically. The final result is a nice and finished look

DSC_0055

OLED models

Most of the 64x128 pixel OLED screen models that are very common among hobbyists will use a compatible 30-pin ribbon connector with 0.5mm pin spacing, and they are really easy to find.

Model Image
1.3" OLED Screen 128x64 SH1106 30Pin image

Software side

Although you're free to use it your way, using the pinout above, I'd expect the most common case to be squeezelite, thus here are the steps you'd need to do

# Description Image
1 Update NVS settings in the Web UI (switch to recovery mode first)
display_config = SPI,width=128,height=64,cs=15,reset=32,driver=SH1106
spi_config = mosi=23,clk=18,host=2,miso=19,dc=4
You may need to replace SH1106 with SSD1306 depending on your model.
image
1 (S3) In case of ESP32-S3, it is display_config = SPI,width=128,height=64,cs=47,reset=48,driver=SH1106
spi_config = mosi=11,clk=12,host=1,miso=13,dc=38
image
2 In the LMS settings install the SqueezeESP32 plugin image
3 Update each speaker's settings in the LMS, and navigate to Display settings image

TFT screen

Since the development of the Sendspin protocol went into the visualisation area, and the latest features allow displaying album art, track status, and progress, I'm replacing the OLED screen with a larger and colorful TFT screen. The first board to receive an upgrade is the Louder-ESP32 Pro board, introducing a 14-pin connector for a ST7789-based 320x240 pixel TFT screen.

Model Image
2.0" TFT Screen 320x240 ST7789 14Pin image
2.4" TFT Screen 320x240 ST7789 14Pin image

Case

HiFi-ESP32(S3), Loud-ESP32(S3), Amped-ESP32 and Louder-ESP32(S3) are mechanically compatible with Raspberry Pi 3/4 cases, tested with transparent ones.

Hifi-ESP32 Loud-ESP32
DSC_0013 DSC_0019
Amped-ESP32 Louder-ESP32
DSC_0007 DSC_0001
Amped-ESP32-Plus Louder-ESP32-Plus
image image

Also, community members created a few 3D-printable designs for Louder-ESP32 boards that can be found below

# Image
#1 image
#2 image
#3 image
#4 image
3D Printed Case for HiFi ESP32 Plus image
#5 image
#6 image
#7 image
#8 image

Louder-ESP32 Pro case

Louder-ESP32-Pro boards are mechanically compatible with aluminum cases for Raspberry Pi 5. The most important components that release heat under heavy operation would be covered by the case heat release pads. On top of that, the board allows connecting a 4-pin fan with speed control and RPM readout, so it can be engaged only when needed.

image

Louder-ESP32 Mini shell

Since the Louder-ESP32 Mini is designed to fit a standard speaker terminal, a vertical USB-C port was added instead of the more traditional horizontal type. It is highly recommended to protect it from sideways force, which would be common when the cable is inserted. The simplest solution is to use a 3D-printed shell that will protect the board and the USB-C port from mechanical stress.

42mm model 55mm model
image image

You can pull it from the folder or pull directly from Tinkercad (42mm and 55mm model) and modify if needed. The shell is designed to be printed without support, and it is perfectly okay to print it with PLA plastic or similar material.

Louder-ESP32 Mini Speakers Compatibility

Most of the speakers with 42mm or 55mm square terminals would work without any mechanical work needed. Smaller terminals can be extended for Louder-ESP32-mini use with basic mechanical work

A B C
image image image
image image image

The main benefit of the 55mm model is an onboard USB PD-trigger chip that allows use with 65W USB-C power adapters. Compared to the 5W limit of the 42mm model, this gives a healthy power headroom when used with larger speakers.

Louder-ESP32 Mini USB-PD note

While the 55mm variant has a Hynetek HUSB238 USB-PD trigger chip, capable of pulling more power from the PD-enabled power adapters (most commonly modern laptop power adapters), there are certain limitations to the way it can be used.

The chip allows two modes of operation: (a) "Dumb" GPIO mode, where voltage is requested via pin configuration and no code is needed; it will work right from the start; and (b) "Smart" mode, where voltage /curent is requested via I2C and reported back to the host.

The default mode of operation of the Louder-ESP32-Mini (55mm) is "Smart" mode, which requires an I2C driver that actively sets the required voltage on start. The ESPhome driver is currently in development (PR6693 and PR16572) and might be available in the near future, but not today.

However, it is fairly easy to change the mode of operation to GPIO, so it would always require maximum available power from the power adapter. For this, you need to do two changes:

  • Cut the I2C line from the MCU - it will set voltage and current to the maximum available
  • Remove 1M resistor marked with (*) - it will force GPIO mode
image

If you decide to go with the change, since your software can't trigger higher voltage, I advise not to remove the resistor completely, but disconnect it on one end - this way you can go back to "Smart" mode later on.

Community projects

If you don't mind showing off your projects, please send me a note or create a PR directly

# Image
V4 - DIY $90 Home Assistant bookshelf speaker for ESPHome & SendSpin or Squeezelite image
Inexpensive DIY Wi-Fi & BT speaker for Home Assistant audio image
DIY WiFi & BT audio speaker for Home Assistant, modify prebuilt 3D printed speaker image

Where to buy

You may support my work by ordering these products at Lectronz, Elecrow, and Tindie