"ReSpeaker Lite" - new Seeed Studio Voice Assistant Development Kit hardware combine ESP32 with XMOS XU316 DSP chip for advanced audio processing as a ESPHome-based Home Assistant Assist Satellite voice devkit

Many many thanks :slight_smile: Is there a way to buy you a “coffee”? :smiley:

Thanks! :slight_smile: It’s on Github, buttin is there: GitHub - formatBCE/Koala-Satellite: This satellite for Home Assistant is based on ESP32-S3 DevkitC, Respeaker Lite board with XMOS XU316, with LED strip and dial. It's using most of the Voice PE device features, supports BLE Improv and automatic updates.

I am trying to wire up koala and am running into an issue with 5v. The instructions suggest running 5v from the esp to the respeaker lite processor pads, which I have done. However, both the led strip and rotary encoder also require connections to 5v on the esp board according to the instructions. However, there is only one 5v pin on the esp board. Did you expect a splice on the 5v wire? Also, is 5v power to the respeaker lite board coming from the esp processor wiring or do I need to solder a wire to the 5v pad on the side of the respeaker board?

I don’t want to transform the thread into soldering guide. :slight_smile:

In general, you can use whatever 5V you find. GND is recommended to be common.
All 5V pads you find will be basically the same cable.
However, for LED I’d use 5V as close as I can to the power input - just because it can take relatively big current, and it can damage trace on the board.

As there is only 1 5v pad on the esp board and none on the respeaker board I will splice into the 5v wire going to the respeaker board to power the led and encoder.
I will post any future questions I may have on the koala github.

2 Likes

Hey Folks

I’m trying to set up a couple of the ReSpeaker kits and am hitting a snag at the ESP download stage. When I select “Install” and “Manual Download” I get this error

INFO ESPHome 2024.12.2
INFO Reading configuration /config/esphome/respeaker1.yaml...
INFO Generating C++ source...
INFO Updating https://github.com/espressif/[email protected]
INFO Compiling app...
Processing esp32s3 (board: esp32-s3-devkitc-1; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32.git#51.03.07)
--------------------------------------------------------------------------------
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
 - framework-espidf @ 3.50105.0 (5.1.5) 
 - tool-cmake @ 3.21.3 
 - tool-esptoolpy @ 4.8.1 
 - tool-mklittlefs @ 3.2.0 
 - tool-ninja @ 1.7.1 
 - tool-riscv32-esp-elf-gdb @ 12.1.0+20221002 
 - tool-xtensa-esp-elf-gdb @ 12.1.0+20221002 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-riscv32-esp @ 12.2.0+20230208 
 - toolchain-xtensa-esp32s3 @ 12.2.0+20230208
Reading CMake configuration...
No dependencies
Compiling .pioenvs/esp32s3/src/esphome/components/i2s_audio_xiao/i2s_audio_xiao.cpp.o
Compiling .pioenvs/esp32s3/src/esphome/components/i2s_audio_xiao/speaker/i2s_audio_speaker.cpp.o
In file included from src/esphome/components/i2s_audio_xiao/i2s_audio_xiao.h:5,
                 from src/esphome/components/i2s_audio_xiao/i2s_audio_xiao.cpp:1:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include 'driver/i2s_std.h', 'driver/i2s_pdm.h' or 'driver/i2s_tdm.h' instead. if you want to keep using the old APIs and ignore this warning, you can enable 'Suppress leagcy driver deprecated warning' option under 'I2S Configuration' menu in Kconfig" [-Wcpp]
   27 | #warning "This set of I2S APIs has been deprecated, \
      |  ^~~~~~~
In file included from src/esphome/components/i2s_audio_xiao/speaker/../i2s_audio_xiao.h:5,
                 from src/esphome/components/i2s_audio_xiao/speaker/i2s_audio_speaker.h:5,
                 from src/esphome/components/i2s_audio_xiao/speaker/i2s_audio_speaker.cpp:1:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include 'driver/i2s_std.h', 'driver/i2s_pdm.h' or 'driver/i2s_tdm.h' instead. if you want to keep using the old APIs and ignore this warning, you can enable 'Suppress leagcy driver deprecated warning' option under 'I2S Configuration' menu in Kconfig" [-Wcpp]
   27 | #warning "This set of I2S APIs has been deprecated, \
      |  ^~~~~~~
src/esphome/components/i2s_audio_xiao/i2s_audio_xiao.cpp: In member function 'virtual void esphome::i2s_audio_xiao::I2SAudioComponent::setup()':
src/esphome/components/i2s_audio_xiao/i2s_audio_xiao.cpp:15:24: error: 'I2S_NUM_MAX' was not declared in this scope; did you mean 'I2S_NUM_1'?
   15 |   if (next_port_num >= I2S_NUM_MAX) {
      |                        ^~~~~~~~~~~
      |                        I2S_NUM_1
*** [.pioenvs/esp32s3/src/esphome/components/i2s_audio_xiao/i2s_audio_xiao.cpp.o] Error 1
src/esphome/components/i2s_audio_xiao/speaker/i2s_audio_speaker.cpp: In static member function 'static void esphome::i2s_audio_xiao::I2SAudioSpeaker::player_task(void*)':
src/esphome/components/i2s_audio_xiao/speaker/i2s_audio_speaker.cpp:54:24: error: 'I2S_MCLK_MULTIPLE_DEFAULT' was not declared in this scope; did you mean 'I2S_MCLK_MULTIPLE_512'?
   54 |       .mclk_multiple = I2S_MCLK_MULTIPLE_DEFAULT,
      |                        ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                        I2S_MCLK_MULTIPLE_512
*** [.pioenvs/esp32s3/src/esphome/components/i2s_audio_xiao/speaker/i2s_audio_speaker.cpp.o] Error 1
========================== [FAILED] Took 4.64 seconds ==========================

Anyone able to shed light on this at all?

Make sure you have latest ESPHome version and updated libraries.

I’m using ESPHome Device Builder addon ver: 2024.12.2 :man_shrugging:

I just updated the repository. What was done:

  • removed obsolete 16kHz firmware;
  • refactored main YAML to be closer to Koala, for easier support and bugfixes;
  • added some useful switches and sensors (switches for ambient sounds, sensors for next timer on device);
  • since it’s based on Koala, the onboarding process to the HA and choosing the wake word should work fine now.
5 Likes

Check the new firmware. It 100% works with 2024.12.2.

Very specific question but has anyone harvested the speaker from a nest mini or google mini and tried to plug it in?

It LOOKs like the speaker connector is the same. Also curious how much the sound comes down to the case acoustics vs the quality of the speaker

You might instead be interested in following this Onju Voice feature request discussion about making updated custom PCB design to be drop-in replacement the original circut board inside the Google Home Mini and Google Nest Mini → [REQUEST] New PCB with both an ESP32-S3 and an xCORE chip from XMOS for advanced audio processing as a ESPHome compatible voice-kit? · Issue #59 · justLV/onju-voice · GitHub

The enclosure is the defining part. I tried to use speaker from IKEA VAPPEBY before - and it works much, much better in stock enclosure, than in generic one.

Aww that answers my question. I was aware of the Onju but not the new request… I do want micro wake word and just figured swiping the speaker would be good enough.

If the enclosure shape is critical to sound quality then that is a more complicated issue.

As the ReSpeaker Lite is available now and getting my hands on old minis is easy since I already have 5 and I see them used for cheap regularly I figured just grabbing the speaker would be easiest.

A full drop in micro wake word board would be nice but from the look of the thread the dev does not have access to gen 1 hardware which is what I have.

I don’t understand what you’re referring to under “micro wake word board”.
Respeaker Lite needs ESP32 firmware with Microwakeword anyways (well, you can use Openwakeword, but that requires changes in firmware). And it still needs esp32s3 board, even if you take speaker from old Alexa. :slight_smile:

I was talking about the Onju I wasn’t sure you could use microwake word with it ( a little more searching indicates there is a firmware with it now), besides it is the wrong generation for my minis I have the first gen ones.

yes I am aware both need an esp32s3 board, included on some of the shipping options.

Ether way the idea was to YANK a good speaker out and put it in a new solution / case vs trying to get a custom board that exactly fits my 5 existing G1 google minis.

I see. Well, I’d rather sell minis and buy some speakers from AliExpress or Amazon. It will be cheaper than ripping off speakers from minis. Let them go. :slight_smile:

I just updated my ReSpeaker using the latest YAML and all works great especially the additional sensors/switched so thanks for the great work. However I noticed the RGB led is constantly on with blue color, i checked the log and it looks like the user button keeps going on and off all the time. Please note that I don’t have my user button soldered on the ReSpeaker. Would that be the reason?
I also notice that the device started to produce a ringing like sound every now and then without any physical/voice trigger.

Below is the log from ESPHome:

[10:16:21][D][binary_sensor:036]: 'User button': Sending state ON
[10:16:21][D][light:036]: 'LED Respeaker onboard' Setting:
[10:16:21][D][light:051]:   Brightness: 80%
[10:16:21][D][light:058]:   Red: 0%, Green: 0%, Blue: 100%
[10:16:21][D][binary_sensor:036]: 'User button': Sending state OFF
[10:16:21][D][light:036]: 'LED Respeaker onboard' Setting:
[10:16:21][D][light:051]:   Brightness: 50%
[10:16:21][D][light:058]:   Red: 100%, Green: 20%, Blue: 100%
[10:16:21][D][binary_sensor:036]: 'User button': Sending state ON
[10:16:21][D][light:036]: 'LED Respeaker onboard' Setting:
[10:16:21][D][light:051]:   Brightness: 80%
[10:16:21][D][light:058]:   Red: 0%, Green: 0%, Blue: 100%
[10:16:21][D][binary_sensor:036]: 'User button': Sending state OFF
[10:16:21][D][light:036]: 'LED Respeaker onboard' Setting:
[10:16:21][D][light:051]:   Brightness: 50%
[10:16:21][D][light:058]:   Red: 100%, Green: 20%, Blue: 100%
[10:16:21][D][binary_sensor:036]: 'User button': Sending state ON
[10:16:21][D][light:036]: 'LED Respeaker onboard' Setting:
[10:16:21][D][light:051]:   Brightness: 80%
[10:16:21][D][light:058]:   Red: 0%, Green: 0%, Blue: 100%
[10:16:22][D][binary_sensor:036]: 'User button': Sending state OFF
[10:16:22][D][light:036]: 'LED Respeaker onboard' Setting:
[10:16:22][D][light:051]:   Brightness: 50%
[10:16:22][D][light:058]:   Red: 100%, Green: 20%, Blue: 100%

@formatBCE Same for me. since I updated to the newest firmware, the LED constantly flashing blue, which is very annoying :confused:

I can confirm, it’s because the user button is not connected. I just updated another ReSpeaker which has the user button connected and it works great. So I think i will need to solder all of my devices which will also add a switch and more functionalities