Esparagus Echo is a series of two ESP32-S3-based voice control edge devices. They are designed to work with ESPHome 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.
The Esparagus Echo design shares a lot with the earlier Esparagus series of devices, using similar parts and the same pinout whenever possible. I see this as a side branch of the series, therefore.
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 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.
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). To make sure it would stream audio without a hiccup it uses an external Wifi antenna (much-improved perception) and has SPI Ethernet for the most robust networking.
Esparagus Solo | Esparagus Duo | |
---|---|---|
Image | ||
MCU | ESP32-S3-WROOM-1-N16R8 module | ESP32-S3-WROOM-1U-N16R8 module |
MIC | Single TDK InvenSense ICS-43434 I2S MEMS Mic | Dual TDK InvenSense ICS-43434 I2S MEMS Mic |
DAC | Single I2S DAC (MAX98357) with built-in D-Class amp | Dual I2S DAC (MAX98357) with built-in D-Class amp |
Power | 5V from USB-C (Up to 1.5A) | 5V from USB-C (Up to 2.5A) |
Output, 4Ω | 3W | 2x 3W |
Output, 8Ω | 5W | 2x 5W |
PSRAM | 8MB PSRAM | 8MB PSRAM |
Peripheral | 2x XL1615 RGB LED | 3x XL1615 RGB LED |
Wireless Connectivity | WiFi + BLE | WiFi + BLE |
Ethernet | none | Wizznet W5500 SPI Ethernet |
Size (excl. antenna) | 45 x 18 x 52mm | 70 x 24 x 88 mm |
I2S CLK | I2S DOUT | I2S DIN | I2S WS | DAC CE | RGB LED | |
---|---|---|---|---|---|---|
Echo Solo | 14 | 16 | 21 | 15 | 17 | 42 |
Echo Duo | 14 | 16 | 21 | 15 | 17 | 42 |
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 |
SPI CLK | SPI MOSI | SPI MISO | LAN RES | LAN CS | LAN INT | |
---|---|---|---|---|---|---|
Echo Duo | 12 | 11 | 13 | 5 | 10 | 6 |
Since both devices are designed to be primarily used within the Home Assistant setup, the software folder contains ESPHome configurations for both devices.
media-player
is a simple external speaker based on the Arduino frameworkvoice-assistans
is a work-in-progress configuration based on esp-adf pipeline and wake-word detection.
One simple way that Esparagus Echo can be used in the Home Assistant is by using a media player device. Yaml config will get you started. Below are the configuration steps that you need to do in the HA itself.
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 |
|
Prepare Esparagus Echo for ESPHome onboarding Use Web Flasher to flash stock ESPHome into device |
|
Onboard Esparagus Echo 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 |
|
Validate device in the ESPHome | |
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 |
|
Use your media device in the HA | |
Use your media device in the MA Add Music Assistant HA MediaPlayers provider to discover new Media device |
Originally I had an issue configuring the voice-assistant setup on the echo, despite having good examples shared here and here. 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 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 to make it work. Note that it will also require to configure Home Assistant properly, you may use this official guide, Seeeds docs or community created Youtube tutorial
Please visit hardware section for board schematics and PCB designs. Note that PCBs are shared as multi-layer PDFs as well as Gerber archives.
Esparagus Solo | Esparagus Duo |
---|---|
Esparagus Solo | Esparagus Duo |
---|---|
You may support our work by ordering this product at Tindie