# HiFi ESP32

ESP32-based audio development board with PCM5100 DAC with line out

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

## Options

**Board version**

- [a] Classic ESP32 with built-in antenna ○ (12 left)
- [b] Classic ESP32 with external antenna ○ [Add $1.00] (9 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/hifi-esp32-and-hifi-esp32s3/)
- [Code](https://github.com/sonocotta/esp32-audio-dock/)

## Images

![HiFi ESP32](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc2NTYsInB1ciI6ImJsb2JfaWQifX0=--4583be56e75708ccdd05e37cc7246ab2fe79d9d8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--a1419a086f227676aca33a49760ac51e58b523e3/DSC_0011.JPG)
![HiFi ESP32](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc2NDgsInB1ciI6ImJsb2JfaWQifX0=--d69801c8830256e38f2d0acde83cf5e18a5c3ee3/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbOTYwLDY0MF0sInNhdmVyIjp7InN0cmlwIjp0cnVlfX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--4e27bac8cdfb621fb828f6a3a5982fe1a423b516/DSC_0001.jpeg)
![HiFi ESP32](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc2NTIsInB1ciI6ImJsb2JfaWQifX0=--8ab0d1c2f982ca286810a75a04081157df80de32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGVnIiwicmVzaXplX3RvX2xpbWl0IjpbOTYwLDY0MF0sInNhdmVyIjp7InN0cmlwIjp0cnVlfX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--4e27bac8cdfb621fb828f6a3a5982fe1a423b516/DSC_0003.jpeg)

## Description

# What is it

HiFi-ESP32 is handy, low-cost media device that will upgrade your legacy audio system with internet streaming capabilities. It exposes line-level output that you can plug into active speakers, a stereo amplifier, or headphones. They use the legendary PCM5100 DAC with supreme audio quality.

## Use cases

**HiFi-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 HiFi-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 **Spotify** **Connect**, **AirPlay**, and **Logitech Media Server (LMS)** — no external computer required.
*   **Educational Projects & Teaching Platforms**  
    A powerful tool for **schools, universities, and technical education**. HiFi-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**, HiFi-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.

## Features

|  | **HiFi-ESP32** | [HiFi-ESP32 Plus](https://lectronz.com/products/hifi-esp32-plus) |
|---|---|---|
| MCU | ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8  | ESP32-WROVER-N8R8 or ESP32-S3-WROOM-N8R8  |
| DAC | [PCM5100A](https://www.ti.com/product/PCM5100A) 32bit Stereo DAC (-100 dB typical noise level) | [PCM5122](https://www.ti.com/product/PCM5122) 32bit Stereo DAC with integrated DSP (-112 dB typical noise level) |
| Output | Non-amplified stereo output, 2.1V RMS | Non-amplified stereo output, 2.1V RMS |
| Flash/PSRAM | 8MB/8MB | 8MB/8MB |
| Power | 5V over USB-C, 2x [LP5907](https://www.ti.com/lit/ds/symlink/lp5907.pdf) 3.3 V Ultra-Low-Noise LDO for analog section | 5V over USB-C, 2x [LP5907](https://www.ti.com/lit/ds/symlink/lp5907.pdf) 3.3 V Ultra-Low-Noise LDO for analog section |
| Connectivity | WiFi + BT4.2 (except S3) + BLE <br> Ethernet (optional module) | WiFi + BT4.2 (except S3) + BLE <br> Ethernet (optional module) |
| DSP Features | ❌ | Parametric EQ (6xBQ), DRC ** |
| **Software support** |  |  |
| Squeezelite-ESP32 | ✅ | ✅ |
| Snapclient | ✅ | ✅ |
| ESPHome (HA) | ✅ | ✅ |

⚠️ *HiFi boards require an external amplifier or active speakers; you can't connect passive speakers to it.*

💡 *Need to connect speakers as well? Check out [Amped-ESP32](https://lectronz.com/products/amped-esp32) / [Amped-ESP32-Plus](https://lectronz.com/products/amped-esp32-plus)*

💡 *Need only speakers output? Check out [Loud-ESP32](https://lectronz.com/products/loud-esp32) / [Loud-ESP32-Plus](https://lectronz.com/products/loud-esp32-plus)*

💡 *Need more powerful DSP? Check out [Louder-ESP32](https://lectronz.com/products/louder-esp32) / [Louder-ESP32-Plus](https://lectronz.com/products/louder-esp32-plus)*

** *Enabling EQ controls in software is a work in progress*

💡 *Looking for a more feature-packed version? Check out [HiFi Esparagus](https://lectronz.com/products/hifi-esparagus)*


### 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, 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](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


### HiFi-ESP32

|       | I2S CLK | I2S DATA | I2S WS | PSRAM RESERVED | 
|-------|---------|----------|--------|----------|
| ESP32 | 26      | 22       | 25     | 16, 17        |
| ESP32-S3 | 14      | 16       | 15     | 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](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 and Bluetooth.
    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, and Bluetooth A2DP on the ESP32 revision. 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

HiFi-ESP32 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 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 PCM5100 is a line-level DAC, so tone shaping stays outside the DAC itself

## Using with Home Assistant

Both HiFi-ESP32 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, Gerber files, and 3D-models (step files).

### HiFi-ESP32

| Image  |
|---|
| ![image](https://github.com/user-attachments/assets/6cb02a5b-a0ef-4dce-b101-1cd92f6addc8)  |
| ![image](https://github.com/user-attachments/assets/17c488ec-65b1-46df-a6f6-c0abaa99830c)  |

### 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.

| HiFi-ESP32 | 
|---|
| ![DSC_0015](https://github.com/user-attachments/assets/7c71f12a-744c-4d25-bb3b-492df4cf5c78) |

### Case

HiFi-ESP32 and HiFi-ESP32-Plus boards are mechanically compatible with Raspberry Pi 4 cases, and they are very easy to source

| Hifi-ESP32 | 
|---|
| ![DSC_0013](https://github.com/user-attachments/assets/3eb6bb16-e103-40e1-8142-a239dc5271ca) |

# 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/hifi-esp32.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/hifi-esp32.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.
