Skip to content

Voice assistant edge device for your Home Assistant voice controlled automation

License

Notifications You must be signed in to change notification settings

sonocotta/esparagus-echo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Esparagus Echo

Open Source Hardware Open Source Software

I sell on Tindie

Dev Chat

DSC_0030

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.

Table of Contents

Why Esparagus

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.

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_0006

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). 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.

DSC_0015

Features

Esparagus Solo Esparagus Duo
Image DSC_0005 DSC_0031_1
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

Boards Pinout

Peripheral - Common

Rev A (test samples)

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

Rev B (distribution)

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

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 framework
  • voice-assistans is a work-in-progress configuration based on esp-adf pipeline and wake-word detection.

Home Assistant - media player

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
image
Prepare Esparagus Echo for ESPHome onboarding

Use Web Flasher to flash stock ESPHome into device
image
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
image
Validate device in the ESPHome image
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
image
Use your media device in the HA image
Use your media device in the MA

Add Music Assistant HA MediaPlayers provider to discover new Media device
image

Home Assistant - voice assistant

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

Hardware

Please visit 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 Esparagus Duo
image image
image image

PCB

Esparagus Solo Esparagus Duo
image image

Where to buy

You may support our work by ordering this product at Tindie

About

Voice assistant edge device for your Home Assistant voice controlled automation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published