Loud-ESP32 Audio combines ubiquitous ESP32 with a dual I2S DAC capable of delivering 5W of audio per channel. This combination provides your compact ESP32 module with the necessary memory and RAM capabilities to quickly develop Hi-Fi products.
Loud-ESP32 is handy, low-cost media streamer device that can be paired with passive speakers. Loud-ESP32 uses a dual MAX98357 Hi-Fi DAC that will output up to 5W per speaker, so it can be powered by a standard USB-C wall charger. Due to the D-class amp, it is highly efficient yet high-quality audio streamer.
Use cases
Loud-ESP32 is a flexible, open-source audio platform designed to fit into both smart homes and custom audio projects.
Smart Home Audio & TTS Integrates with Home Assistant and Music Assistant for high-quality audio playback and text-to-speech announcements. Perfect for notifications, voice alerts, and whole-home audio driven by your smart home automations.
Multi-Room Audio with Snapclient Use Loud-ESP32 as a Snapclient endpoint to create perfectly synchronized multi-room audio systems. Ideal for distributed music playback without proprietary lock-in.
Standalone Player with Squeezelite-ESP32 Run Squeezelite-ESP32 for a self-contained network audio player supporting SpotifyConnect, AirPlay, and Logitech Media Server (LMS) — no external computer required.
Educational Projects & Teaching Platforms A powerful tool for schools, universities, and technical education. Loud-ESP32 can be used to teach embedded systems, digital audio, networking, and open-source software — ranging from simple audio playback labs to advanced DSP, streaming, and real-time systems projects.
Research, Prototyping & Experimentation Well-suited for rapid prototyping of audio devices, proofs-of-concept, and research projects involving DSP, low-latency streaming, wireless audio, or human-machine interaction.
A Foundation for Custom Products & DIY Builds With all firmware and tooling fully open source, Loud-ESP32 is an ideal base for custom audio devices — whether you’re building a personal DIY project, a small production run, or a community-driven product.
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.
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): 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
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
Ethernet
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
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
Software Options
Home Assistant smart home audio and notifications. Start from the web-installer, 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 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. 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, 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, similar to standard snapclient
AirPlay 1 & 2 with Sendspin and Bluetooth. Native, actively developed AirPlay 1 & 2 firmware (rbouteiller/airplay-esp32) with PTP multi-room sync, an experimental Sendspin renderer, and Bluetooth A2DP on the ESP32 revision. Flash straight from your browser with the web-installer — no toolchain needed. See AirPlay 2 support below for details.
Loud-ESP32 runs rbouteiller/airplay-esp32, an open-source AirPlay 1 & 2 receiver you can flash straight from your browser via the web-installer — 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 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
No on-chip DSP: the MAX98357A has no configuration interface to expose
Using with Home Assistant
Both Loud-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
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 section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs.
Loud-ESP32 drawings
Image
Optional SPI Ethernet module
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, the board will not fit the case unless it is cut to accommodate extra height.
Case
HiFi-ESP32(S3), Loud-ESP32(S3) and Louder-ESP32(S3) are mechanically compatible with Raspberry Pi 3/4 cases, tested with transparent ones. Also, community members created a few 3-D printable designs that can be found here and here
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.