Check out Koala Satellite, the next step of evolution for this project!
This repository contains example code to integrate Seeed Respeaker Lite Voice Kit (with XIAO ESP32-S3 on board) with ESPHome. I'm thankful for continuous help of ESPHome team and Seeed developers, that let me put this thing together. It's using brilliant job of ESPHome team, as well as firmware and guides from Seeed Wiki and their repository for Respeaker.
At the moment, all this is changing at very fast pace. Respeaker board considered alpha, PE (Voice Kit) software is under heavy development. I will try to update YAML and XMOS board firmware as soon as i can, but it can't be instantenuous... If you encounter a problem, before creating ticket here you may go to PE and Seeed repos, linked above, and see if something changed there. I'll gladly accept pull-requests. :)
I ditched all proprietary assistants for good about 6 months ago, and dove into Assist all-hands. With this board i finally can build device, that will satisfy me and (more important) my family as their trusted voice assistant.
* Make sure you're using corresponding versions of I2S and ESPHome firmware. There is default one (working on 16kHz), and 48kHz one. Latter is even more experimental, but the sound quality is MUCH better. Thanks to Mike aka @mikey60 and his fork to nabu_microphone!
- Get Respeaker Lite with ESP32 soldered to it (you may solder it yourself, pins on the back can remain dry, they're not used)
- Solder USR to D2 and MUTE to D3 pins
- Flash I2S firmware to the XMOS board (pay attention to USB port, you need the main board port, not ESP32 one)
- Flash ESPHome firmware (YAML included, adjust to your environment) to ESP32 (use its port)
- Add device to Home Assistant.
- voice communication: works
- playing media: works (with exception of files, containing album art, playing from HA media picker - this is getting addressed by ESPHome guys (i can't thank them enough!!!)
- media ducking while voice communication ongoing: works
- interactions with HA timers: works
- LED: works (also can be exposed as light in HA)
- mute: hardware button works, software button works
- action button: works, multifunctional, based on PE logic
- DONE
software mute switch. Software triggering works, but state read doesn't work so far (needs custom ESPHome component for reading mute status with i2c). Check Arduino example here if you want to help - OTA software update for Respeaker board. Can snug this functionality from PE project. Will be part of Koala
- DONE
48kHz bitrate. Right now the board works on 16kHz, but Seeed already preoared 48kHz firmware. Great guys!It doesn't work yet with ESPHome though, since we need to add resampler for the microphone to downsample it to 16kHz (currently there's no way to use 48kHz for mic). Speaker works though. - hardware volume controls. Solved in Koala
Would be nice to have, but there's no pins left on ESP32... Thinking...I made some cradle with buttons and resistors to have 3 buttons on single pin - but it's bulky and inconvenient to solder, as well as to use in ESPHome. I decided to skip on it. - bigger LED strip. Solved in Koala
The problem is same as for hardware volume... But if you want, you can solder strip/ring to the GPIO1 instead of inbuilt LED. I decided that i'm good with one on board so far.
I made some casing to improve family approval factor. Check it out.