esparagus-snapclient-fork: Snapcast multi-room audio clients
esparagus-snapclient-fork
Esparagus Snapclient Fork Project Introduction
1. Project Overview
Esparagus Snapclient Fork is an open-source project that turns ESP32-based devices into Snapcast multi-room audio clients.
This project is based on the original CarlosDerSeher/snapclient project and has been forked to make Snapcast client deployment easier on Sonocotta Esparagus and HiFi-ESP32 audio boards.
Snapcast is a multi-room audio system that streams audio from a central server to multiple clients. Each client plays the same audio stream in sync, allowing users to enjoy synchronized music across different spaces such as living rooms, kitchens, workshops, cafés, offices, stores, and public facilities.
With Esparagus Snapclient Fork, an ESP32 board can operate as a network audio receiver. It receives an audio stream from a Snapserver via Wi-Fi or Ethernet, decodes the stream, and outputs audio through an I2S DAC or amplifier connected to speakers.
2. Key Features
ESP32-Based Snapcast Client
This project enables an ESP32 device to operate as a Snapcast client. The ESP32 receives an audio stream from a Snapserver over the network, decodes the audio data, and sends it to an I2S audio output device.
This makes it possible to build a multi-room audio system without relying on expensive dedicated network audio equipment.
Synchronized Multi-Room Playback
The main advantage of Snapcast is synchronized playback across multiple clients.
For example, by installing ESP32 Snapclient devices in different rooms or store zones, music streamed from a central Snapserver can be played simultaneously across all spaces.
Multiple Audio Format Support
The original ESP32 Snapclient project supports decoding of FLAC, OPUS, and 16-bit PCM audio streams. Esparagus Snapclient Fork is based on this architecture, allowing users to select an appropriate audio format depending on the required sound quality and network conditions.
I2S Audio Output
ESP32 devices can interface with DACs, audio codecs, and digital amplifiers through I2S. This project can therefore be used with audio components such as:
PCM5102A I2S DAC
MAX98357A I2S amplifier
TAS5805M digital input amplifier
Sonocotta Audio Board Support
A key distinction of this fork is that it targets Sonocotta’s Esparagus and HiFi-ESP32 series audio boards.
Rather than being only a generic ESP32 example, this fork is intended to make Snapclient deployment easier on real audio hardware platforms.
3. Software Architecture
Esparagus Snapclient Fork is based on ESP-IDF and follows the architecture of the original ESP32 Snapclient project.
| Component | Role |
|---|---|
| ESP-IDF | Firmware development framework for ESP32 |
| Snapclient Core | Connects to Snapserver and receives audio streams |
| Audio Decoder | Decodes FLAC, OPUS, and PCM audio streams |
| I2S Audio Output | Sends decoded audio to a DAC or amplifier |
| Network Interface | Provides Wi-Fi or Ethernet network connectivity |
| DSP / EQ | Adjusts and compensates audio output |
| sdkconfig | Provides board-specific build configuration |
The basic operation flow is as follows:
The ESP32 device boots.
The device connects to the network via Wi-Fi or Ethernet.
It connects to the Snapserver.
It receives an audio stream from the server.
The audio data is decoded.
The decoded audio is output through I2S to a DAC or amplifier.
Multiple clients play the same audio stream in synchronization.
4. Supported Hardware Concept
This project family is suitable for ESP32-based hardware combined with I2S audio output devices.
| Hardware | Role |
|---|---|
| ESP32 / ESP32-S2 / ESP32-S3 | Main MCU and network audio processor |
| I2S DAC | Converts digital audio into analog audio |
| I2S Amplifier | Drives speaker output |
| PCM5102A | High-quality I2S DAC option |
| MAX98357A | Compact I2S amplifier option |
| TAS5805M | Digital input amplifier option |
| Sonocotta HiFi-ESP32 | ESP32 audio board focused on audio output |
| Sonocotta Esparagus Series | Target board family for Snapclient deployment |
| WIZnet W5500 | SPI-based wired Ethernet controller |
5. Difference from the Original Project
The original project is CarlosDerSeher/snapclient, which implements the core Snapcast client firmware for ESP32. It provides essential features such as FLAC, OPUS, and PCM decoding, Wi-Fi configuration, Snapserver auto-connection, synchronized playback, and DSP/EQ functions.
By contrast, sonocotta/esparagus-snapclient-fork is a fork adapted for Sonocotta audio board environments.
| Category | CarlosDerSeher/snapclient | sonocotta/esparagus-snapclient-fork |
|---|---|---|
| Project Type | Original ESP32 Snapcast client | Fork for Sonocotta audio boards |
| Main Purpose | Implements core ESP32 Snapclient functionality | Adapts Snapclient for Esparagus / HiFi-ESP32 boards |
| Target Users | Users building ESP32 + I2S DAC systems manually | Users of Sonocotta audio boards |
| Deployment Direction | Manual build-oriented | Board-specific configuration and installer-oriented flow |
| Hardware Focus | Generic ESP32 audio setups | Sonocotta Esparagus / HiFi-ESP32 series |
| W5500 Relevance | General Ethernet expansion possibility | Confirmed use case with HiFi-ESP32-S3 + W5500 |
In short, the original project can be understood as the core ESP32 Snapclient engine, while the Sonocotta fork adapts that engine for practical audio board deployment and distribution.
6. WIZnet Product Usage
The WIZnet product identified in this project context is the WIZnet W5500.
In the Sonocotta fork, a user mentions a hardware configuration using HiFi-ESP32 – ESP32-S3-WROOM-N16R8 with W5500. Therefore, this project is not a W5500-only project, but it does show a real use case where an ESP32 Snapclient setup is extended with wired Ethernet using the WIZnet W5500.
A precise description would be:
“Esparagus Snapclient Fork is an ESP32-based Snapcast client project, and a wired network configuration using Sonocotta HiFi-ESP32-S3 with WIZnet W5500 Ethernet has been confirmed as a practical use case.”
7. Why WIZnet W5500 Matters
Multi-room audio is sensitive to network quality. If audio streams are interrupted or delayed, playback quality may degrade, and synchronization issues can occur across multiple rooms or zones.
Wi-Fi is easy to install, but its performance can vary depending on access point congestion, interference, walls, distance, and the number of connected devices. In contrast, a wired Ethernet configuration using the WIZnet W5500 can provide more stable and predictable network performance.
This is especially meaningful in fixed installation environments such as retail stores, hotels, offices, exhibition halls, factories, and warehouses, where long-term reliability is more important than wireless convenience.
The W5500 connects to ESP32 through SPI, making it a practical option for adding wired Ethernet connectivity to existing ESP32 audio boards.
8. Possible Applications
Smart Home Multi-Room Audio
ESP32 Snapclient devices can be installed in living rooms, kitchens, bedrooms, and workspaces to play synchronized music throughout the home.
Store and Café Background Music Systems
Cafés, restaurants, and retail stores can use multiple Snapclient devices to play the same background music across different zones. With W5500-based Ethernet, playback can remain stable even in Wi-Fi-congested environments.
Hotel, Exhibition, and Office Audio Systems
The system can be used in hotel lobbies, corridors, exhibition booths, office common areas, and meeting spaces. A central Snapserver can distribute audio to multiple ESP32-based clients across the building.
Industrial Announcements and Alerts
In factories, logistics centers, and warehouses, this architecture can be used to broadcast warning sounds, announcements, or operational voice messages to specific areas. In these environments, stable wired networking is particularly important, making W5500-based Ethernet a strong option.
9. Industry Use Cases
| Industry | Possible Use Case |
|---|---|
| Smart Home | Room-by-room multi-room audio and home audio systems |
| Retail / Café | Store BGM and zone-based audio playback |
| Hotel / Resort | Lobby, hallway, and lounge background music |
| Exhibition / Event | Booth audio guidance and synchronized zone playback |
| Office | Announcements, meeting room audio, and common area BGM |
| Education | Classroom announcements and campus audio systems |
| Manufacturing / Logistics | Workplace announcements, warning sounds, and field alerts |
Key Message
WIZnet W5500 can extend an ESP32-based Snapcast client from a Wi-Fi-centered audio device into a stable wired Ethernet multi-room audio device.
By combining ESP32 audio processing, Snapcast synchronization, I2S audio output, and WIZnet Ethernet connectivity, Esparagus Snapclient Fork can be used as a practical and cost-effective foundation for synchronized audio systems in homes, stores, offices, and industrial environments.
