Bro, I’m really impressed by your ceiling speaker setup! Could you share how you built it, especially your choice of components? Did you modify an existing ceiling speaker or build it completely from scratch?
Nope… I used a normal non-adjustable spotlight holder (the ones where you put the GU10 spotlights) A WS2812 circular LED with 12 LEDs (it has the exact same measurements as a GU10 spotlight so you can insert it inside the spotlight holder). Then I took a white net (the kind used for PCs and are semi-rigid) and cut it into the same circular shape.
The speaker is simply placed on the external mount of the spotlight holder. A simple 3W 4ohm.
The same configuration is also possible with the Respeaker but the “problem” is that it does not have adjustable microphones and therefore a larger spotlight holder would be needed and it would also be necessary to connect an external circular LED or leave the basic one facing downwards with the microphones.
There were also many other ways to install it with a spotlight holder to be recessed into the ceiling where the circular LED could be glued… perhaps more beautiful BUT this configuration allows me to remove the device without problems and without having to solder the cables to the ceiling.
Same problem here…
I have not updated to ESPHOME 2025.5.0… everything is as it was. When I press LOG in ESPHOME I get this error.
Until a few days ago I had no problems checking the log… today nothing. I have this error.
Seams PE repo does not contain this components any more.
And you do not need to declare it in external_components.
I leave only this
external_components:
- source:
type: git
url: https://github.com/formatBCE/esphome
ref: respeaker_microphone
components:
- i2s_audio
refresh: 0s
- source:
type: git
url: https://github.com/formatBCE/Respeaker-Lite-ESPHome-integration
ref: main
components:
- respeaker_lite
refresh: 0s
OT: I saw your project about the Koala-satellite… it is certainly very interesting but since I prefer to integrate the satellites in the ceiling I do not need all that configuration and that casing. I would also avoid the XMOS XU316 because it would take up too much space (and it seems to me that the configuration is acceptable even without).
Is your configuration also suitable for just the ESP32-S3 with speaker and microphone?
I think this is the closest configuration to the Respeaker but I’m not sure if it would work.
My repo already contains correct YAML. Also you have to use ESPHome 2025.5. That’s the way PE is working right now, and Respeaker follows. Almost all external components moved to mainstream ESPHome.
Regarding using Koala/Respeaker code for regular 1-mic setup (please stop calling it ESP32-S3, because Respeaker is also using ESP32-S3, it’s confusing
) - the code for Respeaker is assuming there’s 2 microphones (well, one, but with 2 independent channels). Microwakeword nowadays is using one microphone exclusively, leaving another to Voice Assistant. This allows using “stop” word, for example. With single microphone there’s no way to do it. So no, you can’t use that code directly. I believe your best bet would be to adapt the code for M5Stack Atom Echo, which has single microphone. (But i assume you already have it working?)
So that’s interesting,…
so you mean that 1 microphone only listens to the Wakeword and one listens to what we communicate in the Respeaker? Can you tell me which of the two Mic (they should be numbered 1 and 2). I ask for a possible installation and positioning
It’s not like one physical mic on Respeaker is dedicated to MWW and other to VA. It’s data channels. But for you it could be 2 separate mics, i guess.
DFU software on XMOS chip is using both physical mics for picking the signal, cleaning it, applying noise reduction and acoustic echo cancelation. Then it splits the signal to 2 channels. Here you can see microphone defining those 2 channels (stereo), and here MWW is using channel 1 (with amplification), while VA is using channel 0.
Also, MWW works better, if audio signal doesn’t have automatic gain control (AGC) applied, so guys from Seeed (similar to guys from NabuCasa) made channel 1 AGC-free.
This allows MWW to be active constantly, unlike on Atom Echo, that has to stop MWW and start it again after VA is done.
I disagree, it works without issues.![]()
With the new release, I stopped disabling WW and added the activation of Stop-word at the response stage. And surprisingly, everything works as it should. Plus, with the logic for a real continued conversation.
Okay, that is really great news. I didn’t try it after 2025.5 - so my knowledge is outdated.
Did you try with Atom, or generic S3 and INMP mic?
I’m was assembling a satellite on a standard ESP32 (can be considered an Echo), but it has serious memory issues, so I have to manage with a single audio pipeline and WAV format. A lighter weight WW model is also recommended, and of course you can’t run two at the same time. In February-March, there were stability problems, but by April, everything was fine. As a voice terminal, it’s a decent device, but forget about music. I should try flashing it with the official Echo configuration and then check if it will work without disabling WW…
upd. This does not work, WW is not activated while VA is running. Apparently there are not enough resources for all components.
The previous message referred to the standard ESP32-S3 N16R8 devboard.
let us know… the configuration with ESP32-S3 looks really awesome.
Just don’t get carried away with it, guys - let’s keep this thread dedicated.
Sure!
Just a take a look to the conf of mchk.
because in my opinion there are some interesting things that could be added to the Respeaker Lite… being able to continue the conversation after any answer (for a few seconds) is very interesting (at least for me but I think it could be for many)
I saw several projects like this, with using question mark as conversation starter. I doubt it works without issues though, and also it works only for LLM conversation agent, which makes it niche.
I prefer keeping Respeaker YAML as clean as possible, and as close as possible to Voice PE config. That allows keeping up with newest changes. All this is still unstable and changing a lot. If someone wants to make changes for themselves, that make their life easier - that’s great. But i prefer minimal base config.
Slightly off-topic but FYI, a community member has begun a new open-source hardware project to design a custom drop-in replacement PCB for converting existing Google Nest Mini + Google Home Mini speakers and is now asking for help from fellow electrical engineer hobbiests, so check this out post to that other thread if interest → Any news on alternative to "Onju Voice" PCB repacement design for Google Nest/Home Mini speakers with added XMOS chip to match official Home Assistant Voice Preview Edition reference hardware? - #3 by iMike78
Any news or building interest in alternative to Google Nest / Google Home (smart speakers) drop-in PCB (Printed Circuit Board) replacement boards as many are looking for a solution like Onju Voice but with added XMOS-chip to match the hardware specification of the Home Assistant Voice Preview Edition with a fully free and open-source design? [REQUEST] Update PCB design with added XMOS chip for advanced audio processing as used in Home Assistant Voice: Preview Edition? · Issue #59 · justLV/on…
I doubt it works without issues though, and also it works only for LLM conversation agent, which makes it niche.
are you telling me that LLMs are niche?
I honestly don’t think so… I see and hear a lot of people using them in Home Assistant… Gemini is also free (for now).
or am I wrong?
I definitely appreciate your way of thinking about the Respeaker and think it’s the best way to go.
Anyway, I’m testing them now and they’re all in use. an M5Stack with a modified YAML configuration, a DIY satellite with ESP3S3 with the mchk user configuration and the Respeaker.
Doubt that it has issue?
All of them have some small issues but I suggest you to try it on a DIY satellite with an ESP32S3 (with the configuration suggested above).
Honestly I also have issues with Respeaker which sometimes doesn’t get the Wakeword.
If there are other people in the house who talk or make noise, it becomes impossible (I have children so you can imagine).
With niche i mean not universal.
While LLM usage is common now, there’s a lot of people that don’t want to expose their entities to the hallucinating model. Especially cloud one. ![]()
I myself, while i do use LLM at home, don’t expose entities to it, but rather write my own intents for HASSIL, and use LLM only for converting script results to human-like speech, or extracting some structured info from human speech.
So i don’t want to lock the implementation on it.
It’s open source though, everyone can do as they wish. ![]()
I have respeaker lite with esp32 and I used your yaml code to flash esp. And i want to say that with Gemini conversation agent set the continued conversation feature already works on this setup. so there is no need for you to modify your yaml ![]()
Yeah, basic continued conversation works, since it works on PE, and i’m mimicking it as much as i can.
Thanks for confirmation!


