"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

In pre-soldered XIAO there should be external antenna. Check that it sits good in the slot, or replace it. These errors happen on bad connection.

Ok it eventually seems to have connected and asking me for a authentication.

Unable to connect to the ESPHome device. Make sure the device’s YAML configuration includes an api section.

Haven’t got the api section in the main so not sure what to add.

It’s still might be signal strength issue.
API section exists in base file. Don’t search for config troubles, it works.

Ok but I have this…

which is from this

It 2m from router.

At this point it’s just regular ESPHome support.
Please refer to the ESPHome Discord server. I’m there, I will try to help.
So far it looks like you’ve got several devices with same name. Which might have happened because of friendly name in the common config. Names should be unique.

Omg it clicked the moment read I read what you just wrote. Removed the existing respeaker lite and right away was able to add. thanks for your patience.

2 Likes

I have a big problem.

I want to use the ReSpeaker Lite with Home Assistant as a voice assistant. The installation and flashing worked perfectly. I can play sounds and music. I can also operate the voice assistant by activating it at the touch of a button on the module. But what doesn’t work is the WakeWord function. This is essential for such an assistant. I have tried everything and reflashed it several times, but I cannot find a solution. Has anyone else had the same problem? I cannot see anything insightful in the logs. Even when I try to teach the ReSpeaker via the assistant, the sound output works, but the WakeWord is not recognized by the assistant either.

Thank you for your support in advance

It looks like faulty microphone, maybe?.. If speaker works, mic should work too.
Are you sure you didn’t alter the config? For mic to work, Respeaker needs my fork of i2s audio, because Microwakeword doesn’t work with native 48kHz, and my fork is resampling it to 16kHz.
I saw somewhere snippet by Jesse from ESPHome team, that implements simple UDP microphone. But i can’t find it now… That would allow you testing the mic. Maybe check something like this Record sound from I2S microphone - #6 by diy62 - it might help you to check if mic is working physically.

Hi Andrii,
wenn I use the button on the respeaker board to activate the listener mode the mic is functioning complete as it should. Only the wake word does not work. I used the default config that worked for other HA users fine or is there a seperate mic for wake word recognition?

Well, wake word and the assistant itself use different channels. But those “channels” are set by XMOS - one with noise cancellation, another (for wake word) - raw audio. Also MWW needs 16kHz audio. Maybe you somehow got older version of the board firmware (not ESP, but DFU), with base 16kHz…
I’m not sure where to start asking. :slight_smile:
Paste the URL to the place you got the config for. Also would be great to see the outcome of dfuutil -l.

dfu-util reports:

Found DFU: [2886:0019] ver=0110, devnum=1, cfg=1, intf=0, path="0-1", alt=2, name="DFU DATAPARTITION", serial="0000000001"
Found DFU: [2886:0019] ver=0110, devnum=1, cfg=1, intf=0, path="0-1", alt=1, name="DFU UPGRADE", serial="0000000001"
Found DFU: [2886:0019] ver=0110, devnum=1, cfg=1, intf=0, path="0-1", alt=0, name="DFU FACTORY", serial="0000000001"

I took the yaml config from:

Yeah everything should be good. Probably can you put full ESP start log with attempt to say something to Pastebin?

INFO Starting log output from 10.1.1.90 using esphome API
INFO Successfully resolved respeaker-wohnzimmer @ 10.1.1.90 in 0.000s
INFO Successfully connected to respeaker-wohnzimmer @ 10.1.1.90 in 0.094s
INFO Successful handshake with respeaker-wohnzimmer @ 10.1.1.90 in 0.026s
[10:44:38][I][app:149]: ESPHome version 2025.7.5 compiled on Aug 16 2025, 10:38:01
[10:44:38][I][app:151]: Project formatbce.Respeaker Lite Satellite version 2025.7.0
[10:44:38][C][wifi:613]: WiFi:
[10:44:38][C][wifi:434]:   Local MAC: D8:3B:DA:45:B6:08
[10:44:38][C][wifi:439]:   SSID: [redacted]
[10:44:38][C][wifi:442]:   IP Address: 10.1.1.90
[10:44:38][C][wifi:446]:   BSSID: [redacted]
[10:44:38][C][wifi:446]:   Hostname: 'respeaker-wohnzimmer'
[10:44:38][C][wifi:446]:   Signal strength: -45 dB ▂▄▆█
[10:44:38][C][wifi:455]:   Channel: 1
[10:44:38][C][wifi:455]:   Subnet: 255.255.255.0
[10:44:38][C][wifi:455]:   Gateway: 10.1.1.1
[10:44:38][C][wifi:455]:   DNS1: 10.1.1.2
[10:44:38][C][wifi:455]:   DNS2: 10.1.1.22
[10:44:38][C][logger:246]: Logger:
[10:44:38][C][logger:246]:   Max Level: DEBUG
[10:44:38][C][logger:246]:   Initial Level: DEBUG
[10:44:38][C][logger:252]:   Log Baud Rate: 115200
[10:44:38][C][logger:252]:   Hardware UART: USB_SERIAL_JTAG
[10:44:38][C][logger:259]:   Task Log Buffer Size: 768
[10:44:38][C][logger:264]:   Level for 'sensor': WARN
[10:44:38][C][i2c.idf:083]: I2C Bus:
[10:44:38][C][i2c.idf:084]:   SDA Pin: GPIO5
[10:44:38][C][i2c.idf:084]:   SCL Pin: GPIO6
[10:44:38][C][i2c.idf:084]:   Frequency: 400000 Hz
[10:44:38][C][i2c.idf:094]:   Recovery: bus successfully recovered
[10:44:38][I][i2c.idf:104]: Results from bus scan:
[10:44:38][I][i2c.idf:110]: Found device at address 0x18
[10:44:38][C][switch.gpio:079]: GPIO Switch 'mute_toggle'
[10:44:38][C][switch.gpio:079]:   Restore Mode: always OFF
[10:44:38][C][switch.gpio:031]:   Pin: GPIO4
[10:44:38][C][esp32_rmt_led_strip:268]: ESP32 RMT LED Strip:
[10:44:38][C][esp32_rmt_led_strip:268]:   Pin: 1
[10:44:38][C][esp32_rmt_led_strip:272]:   RMT Symbols: 192
[10:44:38][C][esp32_rmt_led_strip:297]:   RGB Order: GRB
[10:44:38][C][esp32_rmt_led_strip:297]:   Max refresh rate: 0
[10:44:38][C][esp32_rmt_led_strip:297]:   Number of LEDs: 1
[10:44:38][C][template.sensor:022]: Template Sensor 'Next timer'
[10:44:38][C][template.sensor:022]:   State Class: ''
[10:44:38][C][template.sensor:022]:   Unit of Measurement: 's'
[10:44:38][C][template.sensor:022]:   Accuracy Decimals: 1
[10:44:38][C][template.sensor:022]:   Device Class: 'duration'
[10:44:38][C][template.sensor:022]:   Icon: 'mdi:timer'
[10:44:38][C][template.sensor:023]:   Update Interval: never
[10:44:38][C][template.text_sensor:020]: Template Sensor 'Next timer name'
[10:44:38][C][template.text_sensor:020]:   Icon: 'mdi:timer'
[10:44:38][C][template.text_sensor:020]: Template Sensor 'Alarm time'
[10:44:38][C][template.text_sensor:020]:   Icon: 'mdi:bell-ring'
[10:44:38][C][template.text_sensor:020]: Template Sensor 'Current device time'
[10:44:38][C][template.text_sensor:020]:   Icon: 'mdi:clock'
[10:44:38][C][template.select:065]: Template Select 'Wake word sensitivity'
[10:44:38][C][template.select:066]:   Update Interval: 60.0s
[10:44:38][C][template.select:069]:   Optimistic: YES
[10:44:38][C][template.select:069]:   Initial Option: Slightly sensitive
[10:44:38][C][template.select:069]:   Restore Value: YES
[10:44:38][C][template.select:065]: Template Select 'Alarm action'
[10:44:38][C][template.select:065]:   Icon: 'mdi:bell-plus'
[10:44:38][C][template.select:066]:   Update Interval: 60.0s
[10:44:38][C][template.select:069]:   Optimistic: YES
[10:44:38][C][template.select:069]:   Initial Option: Play sound
[10:44:38][C][template.select:069]:   Restore Value: NO
[10:44:38][C][gpio.binary_sensor:052]: GPIO Binary Sensor 'User button'
[10:44:38][C][gpio.binary_sensor:053]:   Pin: GPIO3
[10:44:38][C][gpio.binary_sensor:055]:   Mode: interrupt
[10:44:38][C][gpio.binary_sensor:072]:   Interrupt Type: ANY_EDGE
[10:44:38][C][light:092]: Light 'led_internal'
[10:44:38][C][light:094]:   Default Transition Length: 0.0s
[10:44:38][C][light:094]:   Gamma Correct: 2.80
[10:44:38][C][light:092]: Light 'LED Respeaker onboard'
[10:44:38][C][light:094]:   Default Transition Length: 0.0s
[10:44:38][C][light:094]:   Gamma Correct: 2.80
[10:44:38][C][respeaker_lite:042]: Respeaker Lite:
[10:44:38][C][respeaker_lite:043]:   Address: 0x42
[10:44:38][C][respeaker_lite:044]:   Reset Pin: GPIO2
[10:44:38][C][respeaker_lite:046]:   XMOS firmware version: 1.1.0
[10:44:38][C][template.switch:079]: Template Switch 'Speaker mute'
[10:44:38][C][template.switch:079]:   Restore Mode: always OFF
[10:44:38][C][template.switch:087]:   Icon: 'mdi:volume-mute'
[10:44:38][C][template.switch:057]:   Optimistic: YES
[10:44:38][C][template.switch:079]: Template Switch 'Button click sounds'
[10:44:38][C][template.switch:079]:   Restore Mode: restore defaults to ON
[10:44:38][C][template.switch:087]:   Icon: 'mdi:bullhorn'
[10:44:38][C][template.switch:057]:   Optimistic: YES
[10:44:38][C][template.switch:079]: Template Switch 'Mute/unmute sound'
[10:44:38][C][template.switch:079]:   Restore Mode: restore defaults to ON
[10:44:38][C][template.switch:087]:   Icon: 'mdi:bullhorn'
[10:44:38][C][template.switch:057]:   Optimistic: YES
[10:44:38][C][template.switch:079]: Template Switch 'Wake sound'
[10:44:38][C][template.switch:079]:   Restore Mode: restore defaults to ON
[10:44:38][C][template.switch:087]:   Icon: 'mdi:bullhorn'
[10:44:38][C][template.switch:057]:   Optimistic: YES
[10:44:38][C][template.switch:079]: Template Switch 'timer_ringing'
[10:44:38][C][template.switch:079]:   Restore Mode: always OFF
[10:44:38][C][template.switch:057]:   Optimistic: YES
[10:44:38][C][template.switch:079]: Template Switch 'Alarm on'
[10:44:38][C][template.switch:079]:   Restore Mode: restore defaults to OFF
[10:44:38][C][template.switch:087]:   Icon: 'mdi:bell-badge'
[10:44:38][C][template.switch:057]:   Optimistic: YES
[10:44:38][C][template.switch:079]: Template Switch 'Mic mute'
[10:44:38][C][template.switch:079]:   Restore Mode: always OFF
[10:44:38][C][template.switch:087]:   Icon: 'mdi:microphone-off'
[10:44:38][C][template.switch:057]:   Optimistic: NO
[10:44:38][C][psram:016]: PSRAM:
[10:44:38][C][psram:019]:   Available: YES
[10:44:38][C][psram:021]:   Size: 8192 KB
[10:44:38][C][i2s_audio.microphone:079]: Microphone:
[10:44:38][C][i2s_audio.microphone:079]:   Pin: 44
[10:44:38][C][i2s_audio.microphone:079]:   PDM: NO
[10:44:38][C][i2s_audio.microphone:079]:   DC offset correction: NO
[10:44:38][C][speaker_mixer:296]: Speaker Mixer:
[10:44:38][C][speaker_mixer:296]:   Number of output channels: 2
[10:44:38][C][speaker_mixer:046]: Mixer Source Speaker
[10:44:38][C][speaker_mixer:046]:   Buffer Duration: 100 ms
[10:44:38][C][speaker_mixer:053]:   Timeout: never
[10:44:38][C][speaker_mixer:046]: Mixer Source Speaker
[10:44:38][C][speaker_mixer:046]:   Buffer Duration: 100 ms
[10:44:38][C][speaker_mixer:053]:   Timeout: never
[10:44:38][C][aic3204:112]: AIC3204:
[10:44:38][C][aic3204:113]:   Address: 0x18
[10:44:38][C][factory_reset.button:011]: Factory Reset Button 'Factory Reset'
[10:44:38][C][factory_reset.button:011]:   Icon: 'mdi:restart-alert'
[10:44:38][C][restart.button:017]: Restart Button 'Restart'
[10:44:38][C][restart.button:017]:   Icon: 'mdi:restart'
[10:44:38][C][homeassistant.time:010]: Home Assistant Time:
[10:44:38][C][homeassistant.time:010]:   Timezone: 'CET-1CEST,M3.5.0,M10.5.0/3'
[10:44:38][C][i2s_audio.speaker:074]: Speaker:
[10:44:38][C][i2s_audio.speaker:074]:   Pin: 43
[10:44:38][C][i2s_audio.speaker:074]:   Buffer duration: 100
[10:44:38][C][i2s_audio.speaker:088]:   Communication format: std
[10:44:38][C][esphome.ota:073]: Over-The-Air updates:
[10:44:38][C][esphome.ota:073]:   Address: 10.1.1.90:3232
[10:44:38][C][esphome.ota:073]:   Version: 2
[10:44:38][C][esphome.ota:080]:   Password configured
[10:44:38][C][safe_mode:018]: Safe Mode:
[10:44:38][C][safe_mode:019]:   Boot considered successful after 60 seconds
[10:44:38][C][safe_mode:019]:   Invoke after 10 boot attempts
[10:44:38][C][safe_mode:019]:   Remain for 300 seconds
[10:44:38][C][api:207]: API Server:
[10:44:38][C][api:207]:   Address: 10.1.1.90:6053
[10:44:38][C][api:217]:   Using noise encryption: NO
[10:44:38][C][mdns:122]: mDNS:
[10:44:38][C][mdns:122]:   Hostname: respeaker-wohnzimmer
[10:44:38][C][micro_wake_word:064]: microWakeWord:
[10:44:38][C][micro_wake_word:065]:   models:
[10:44:38][C][micro_wake_word:014]:     - Wake Word: Okay Nabu
[10:44:38][C][micro_wake_word:014]:       Probability cutoff: 0.56
[10:44:38][C][micro_wake_word:014]:       Sliding window size: 5
[10:44:38][C][micro_wake_word:014]:     - Wake Word: Kenobi
[10:44:38][C][micro_wake_word:014]:       Probability cutoff: 0.90
[10:44:38][C][micro_wake_word:014]:       Sliding window size: 5
[10:44:38][C][micro_wake_word:014]:     - Wake Word: Hey Jarvis
[10:44:38][C][micro_wake_word:014]:       Probability cutoff: 0.83
[10:44:38][C][micro_wake_word:014]:       Sliding window size: 5
[10:44:38][C][micro_wake_word:014]:     - Wake Word: Hey Mycroft
[10:44:38][C][micro_wake_word:014]:       Probability cutoff: 0.93
[10:44:38][C][micro_wake_word:014]:       Sliding window size: 5
[10:44:38][C][micro_wake_word:014]:     - Wake Word: Stop
[10:44:38][C][micro_wake_word:014]:       Probability cutoff: 0.50
[10:44:38][C][micro_wake_word:014]:       Sliding window size: 5
[10:44:38][C][micro_wake_word:022]:     - VAD Model
[10:44:38][C][micro_wake_word:022]:       Probability cutoff: 0.05
[10:44:38][C][micro_wake_word:022]:       Sliding window size: 5
[10:44:38][C][debug:018]: Debug component:
[10:44:38][D][debug:033]: ESPHome version 2025.7.5
[10:44:38][D][debug:037]: Free Heap Size: 102812 bytes
[10:44:38][D][debug:182]: Chip: Model=ESP32-S3, Features=2.4GHz WiFi, BLE,  Cores=2, Revision=2
[10:44:38][D][debug:191]: CPU Frequency: 240 MHz
[10:44:38][D][debug:199]: Framework: ESP-IDF
[10:44:38][D][debug:206]: ESP-IDF Version: 5.3.2
[10:44:38][D][debug:211]: EFuse MAC: D8:3B:DA:45:B6:08
[10:44:38][D][debug:079]: Reset Reason: power-on event
[10:44:38][D][debug:107]: Wakeup Reason: undefined
[10:44:38][C][debug:112]: Partition table:
[10:44:38][C][debug:112]:   Name         Type Subtype  Address    Size      
[10:44:38][C][debug:119]:   otadata      1    0        0x00009000 0x00002000
[10:44:38][C][debug:119]:   phy_init     1    1        0x0000B000 0x00001000
[10:44:38][C][debug:119]:   app0         0    16       0x00010000 0x003C0000
[10:44:38][C][debug:119]:   app1         0    17       0x003D0000 0x003C0000
[10:44:38][C][debug:119]:   nvs          1    2        0x00790000 0x0006D000
[10:44:40][D][esp32.preferences:142]: Writing 6 items: 5 cached, 1 written, 0 failed
[10:45:00][D][text_sensor:069]: 'Current device time': Sending state '10:45'
[10:45:13][I][safe_mode:042]: Boot seems successful; resetting boot loop counter
[10:45:13][D][esp32.preferences:142]: Writing 1 items: 0 cached, 1 written, 0 failed

If I say something, for example the wakeword, there is no additional log entry. And also no reaction on the device it self like flashing LED or somethink else. Everything works like it should, but there is absolute no recognition of any wake word. It looks like this background task which continuously waits for the wake word is not working.
What makes me wonder, that I am the only with this issue…

The farfield voice capture ability is good, the 5w limit on the pwer supply to the speaker is trash, no one wants to run 5w speakers for music

You might use jack. Treat it as Echo dot - good for voice, not so for music, but can use external speaker.

For something better it would need PD and very different DAC (and price would be different too).

Check the Satellite1 from FutureProofHomes. It will cover this gap.

Yeah it’s almost like MWW doesn’t work at all… Like models are wrong, or something like that… Sorry, I don’t know what to suggest except cleaning the caches, reinstalling ESPHome add-on and re-flashing with USB…

@formatBCE will do!

My XVF3800 4-Mic just arrived. Where is your firmware for it? :stuck_out_tongue:

Haha in progress. :slight_smile:
It’s a bit more complicated, as XVF3800 is closed-source chip. Also this device is using AIC3104 (which doesn’t have component for ESPHome, unlike 3204), and XMOS is using that DAC in a ways that i still don’t know about.
Good thing is that Seeed guys are actually very open to help with their DFU firmware. At the moment, i have 48kHz firmware working, with some troubles on DAC (e.g. i can’t mute it completely for the life of me). Also the firmware needs to be reworked in the LED management completely, since there’s no direct access to addressable LEDs, and all effects are done via i2c. So i believe the user-facing light will be removed.

So in short - something to try will be available in September, i believe. :slight_smile:

3 Likes