# Esparagus Echo

ESP32-S3-based micro media center with dual MAX98357A DAC, Ethernet and voice-assist capability

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

## Options

**Board version**

- Echo Solo (Rev B) ▲ (0 left)
- Echo Duo (Rev C) ▲ [Add $10.00] (2 left)

## Links

- [Documentation](https://sonocotta.com/esparagus-echo/)
- [Code](https://github.com/sonocotta/esparagus-echo/)

## Images

![Esparagus Echo](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc5MDEsInB1ciI6ImJsb2JfaWQifX0=--5394e424bc13a551cf46ede82f80530a8663adac/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--a1419a086f227676aca33a49760ac51e58b523e3/DSC_0102.JPG)
![Esparagus Echo](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc5MDUsInB1ciI6ImJsb2JfaWQifX0=--13830f8d01afb8fdc9e3d4c2925cdb2070bc7988/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--a1419a086f227676aca33a49760ac51e58b523e3/DSC_0104.JPG)
![Esparagus Echo](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc5MDksInB1ciI6ImJsb2JfaWQifX0=--f70bda58372c8f0a1cbbb550bf2babd1ea6ae5bd/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--a1419a086f227676aca33a49760ac51e58b523e3/DSC_0107.JPG)
![Esparagus Echo](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDc5MTMsInB1ciI6ImJsb2JfaWQifX0=--b11b9a7eee76fc8a8f890214463e8fbe249102f1/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJKUEciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--a1419a086f227676aca33a49760ac51e58b523e3/DSC_0108.JPG)

## Description

# What is it

**Esparagus Echo**  is a series of two ESP32-S3-based voice control edge devices. They are designed to work with [ESPHome](https://esphome.io) as an edge part of the voice control pipeline. Both devices are enclosed in a neat-looking aluminum case and expose feedback LEDs on the front panel where it is easy to spot them, leaving power and speaker connectors on the backside. 

![DSC_0102](https://github.com/user-attachments/assets/84f3732c-cb69-4689-89ab-f31cbbc4554e)

The Esparagus Echo design shares a lot with the earlier [Esparagus](https://github.com/sonocotta/esparagus-media-center) series of devices, using similar parts and the same pinout whenever possible.

## Motivation

I'm a big fan of Alexa. I'm using it around the house, and my family is using it all the time, including 2 years old. However, I do not need to mention privacy concerns, these are quite common. My biggest pain point is the inability to integrate Alexa into the Home Assistant setup that I have at home. I'm a big fan of automation around the house and want to trigger complex flows based on the specific sensors and devices that I have. I think the freedom of the implementation is a bit like the magic of the Home Assistant. Why not have voice control, since everyone around the house is used to it already?

## Esparagus Solo

Esparagus Solo has all the basic necessities, a Mic on the front panel, a couple of feedback LEDs, and a speaker at the back. Onboard is a simple and well-known MAX98357 DAC with a reasonable 5W of output audio. It uses a built-in antenna for simplicity. And that's pretty much it.

![DSC_0108](https://github.com/user-attachments/assets/b4957751-f71e-4a23-b3bd-ac48bdb77a90)

## Esparagus Duo

On top of Solo capabilities, Esparagus Duo uses a dual Mic setup, extra LED, and most importantly 2-channels MAX98357 channels to deliver quality stereo-audio (and thus can be used as a media player device). It uses an external Wifi antenna (much-improved perception) and has SPI Ethernet for the most robust networking to make sure it would stream audio without a hiccup. 

![DSC_0015](https://github.com/user-attachments/assets/fa25aedf-96f9-48c8-bf72-99b5bf84d71a)

## Features

|  | [Loud Esparagus](https://lectronz.com/products/loud-esparagus)  | Esparagus Echo Solo | Esparagus Echo Duo |
|---|---|---|---|
| MCU | ESP32-WROVER-N8R8 | ESP32-S3-WROOM-N8R8 | ESP32-S3-WROOM-N8R8 |
| DAC | Dual I2S DAC (MAX98357) with built-in D-Class amp | Single I2S DAC (MAX98357) with built-in D-Class amp | Dual I2S DAC (MAX98357) with built-in D-Class amp |
| Output (4Ω) | 2x 5W | 1x 5W | 2x 5W |
| Output (8Ω) | 2x 3W | 1x 3W | 2x 3W |
| RGB LED | 1 | 2 | 3 |
| I2S Microphone | ❌ | 1 x TDK InvenSense ICS-43434 | 2 x TDK InvenSense ICS-43434 |
| Flash/PSRAM | 8MB/8MB | 16MB/8MB | 16MB/8MB |
| Connectivity |  | WiFi + BLE | WiFi + BLE + Ethernet |
| Case | WiFi + BT4.2 + BLE | 80 x 50 x 20 mm Aluminum case | 70 x 24 x 88 mm Aluminum case |
| Power requirement | 5V from USB-C | 5V from USB-C | 5V from USB-C |
| **Software support** |  |  | |
| Squeezelite-ESP32 | ✅ | ✅ |✅ |
| Snapclient | ✅ | ✅ |✅ |
| ESPHome (HA) | ✅ | ✅ |✅ |

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

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

💡 *Need DSP capabilities? Check out [Louder Esparagus](https://lectronz.com/products/louder-esparagus) and [Esapragus Audio Brick](https://www.crowdsupply.com/sonocotta/esparagus-audio-brick)*

💡 *Looking for a more cost-efficient version? Check out [Loud-ESP32](https://lectronz.com/products/loud-esp32) / [Loud-ESP32-Plus](https://lectronz.com/products/loud-esp32-plus)*

## Boards Pinout

### Peripheral - Common

|           | I2S CLK (OUT) | I2S DATA (OUT) | I2S WS (OUT) | I2S CLK (IN) | I2S DATA (IN) | I2S WS (IN) | DAC CE | RGB LED |
|-----------|---------------|----------------|--------------|--------------|---------------|-------------|--------|---------|
| Echo Solo | 18            | 17             | 8            | 16           | 15            | 7           |  9     |  42     |
| Echo Duo  | 18            | 17             | 8            | 16           | 15            | 7           |  9     |  42     |


### Peripheral - W5500 Ethernet

|          | SPI CLK  |SPI MOSI| SPI MISO | LAN RES   | LAN CS    | LAN INT   | 
|----------|----------|--------|----------|-----------|-----------|-----------|
| Echo Duo |  12      |  11    |   13     |  5        |  10       |  6        |

# 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/esparagus-media-center/). 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 (Echo Duo).
    Native, actively developed AirPlay 1 & 2 firmware ([rbouteiller/airplay-esp32](https://github.com/rbouteiller/airplay-esp32)) with PTP multi-room sync and an experimental Sendspin renderer. 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

Esparagus Echo **Duo** 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
- **USB audio (UAC)** — since this is an ESP32-S3 board, it can be built as a USB sound card for a connected computer, sharing the same DAC path
- No Bluetooth (the ESP32-S3 has no Bluetooth Classic radio) and no on-device display; the MAX98357A has no on-chip DSP to expose
- **Echo Solo** (the single-mic, single-channel variant) is not yet in the supported board list — AirPlay 2 currently targets Echo Duo's dual-channel, Ethernet-equipped design

## Using with Home Assistant

Both HiFi Esparagus versions were created specifically to be used with Home Assistant via ESPHome integration. For both boards, rich [configs](https://github.com/sonocotta/esparagus-media-center/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 (see note below)

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

### Home Assistant - voice assistant

Originally I had an issue configuring the voice-assistant setup on the echo, despite having good examples shared [here](https://github.com/esphome/firmware/blob/main/voice-assistant) and [here](https://github.com/HA-TB303/ultimatesensor_mini/). The reason for the examples to fail was a single I2S bus handling both audio input and output. In theory, this is a perfectly good configuration, since both DACs and both MICs work in slave mode as they should, and I even made a simple Arduino code that captures frames from MIC and sends them over to the Speakers in stereo mode, working beautifully. 

ESPHome however was not collaborating, so I decided to go with a hardware fix and use extra pins to run independent I2S buses for both MICs and DACs. Note that currently [wakeword](https://www.home-assistant.io/voice_control/install_wake_word_add_on/) does not benefit from the second MIC, but I hope support will be added in the future since Espressiff folks seem to work on that (although they may use external noise-reduction IC, I'm not sure). 

All in all, wakeword started to work in revision B, and although it is not as fast as say, Alexa, it is truly amazing to have it working on such a small device. 

Please look at [this config](/firmware/esphome/echo-duo-b-voice-assist.yaml) to make it work. Note that it will also require to configure Home Assistant properly, you may use [this official guide](https://www.home-assistant.io/voice_control/), [Seeeds docs](https://wiki.seeedstudio.com/respeaker_lite_ha/) or community created [Youtube tutorial](https://www.youtube.com/watch?v=VAFDgib95Ls)

As I still have a few boards of revision A that I was planning to use with the Walkie-Talkie project, I make them available for purchase, noting once again that it is not working with the wake-word example because of the software quirks, although it works well outside ESPHome (although as a Home Assistant speaker with RGB LEDs it also works without a hassle)

## Hardware

Please visit the [hardware](https://github.com/sonocotta/esparagus-echo/tree/master/hardware) section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs as well as Gerber archives.

### Boxed


| Esparagus Solo (Prototype) | Esparagus Solo | Esparagus Duo  | 
|---|---|---|
| ![image](https://github.com/user-attachments/assets/b650bccd-84e5-4a5e-81ac-86187e45e2ef) | ![image](https://github.com/user-attachments/assets/9cae5e9d-4d7e-48bd-a289-85b84be51282) | ![image](https://github.com/user-attachments/assets/fe4e7137-e51a-4827-b44d-3520adf3159f) 
| ![image](https://github.com/user-attachments/assets/ad078714-8822-4c29-ad7d-3a537a74fca6) | ![image](https://github.com/user-attachments/assets/de751a1a-3c80-434c-8a80-8177ae99a032) | ![image](https://github.com/user-attachments/assets/5e5fd427-333e-4336-872e-6a40ef548f83)


### PCB

| Esparagus Solo (Prototype) | Esparagus Solo | Esparagus Duo  | 
|---|---|---|
| ![image](https://github.com/user-attachments/assets/761b231c-c5f4-4479-b12b-1be4ae2b4831) | ![image](https://github.com/user-attachments/assets/60ff9542-6a02-4ac6-8828-350baf6fede7) | ![image](https://github.com/user-attachments/assets/9561e312-61d7-4463-8947-f37b56da8db0)

# Restocking & Availability

The stock is limited at the moment, as Tindie is currently having trouble with payouts. As soon as this is resolved, I will resume restocking all boards. Until then, consider checking stock on [Tindie](https://www.tindie.com/products/sonocotta/esparagus-echo/) and [Elecrow](https://www.elecrow.com/esparagus-echo.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/esparagus-echo.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.
