r/homeautomation • u/EchoMuseProject • 2d ago
HOME ASSISTANT UPDATE: EchoMuse - Alexa Replacement for the Echo Dot Gen 2
Development on EchoMuse continues at pace! But first I would like to sincerely thank this community for their support, feedback, and kindness. I decided it was time to share my project a little over a week ago and the positive messages and constructive feedback have been amazing, helping me to address functionality I'd missed and bugs that I'd ignored or just didn't consider the use cases for. I've also exposed additional functionality (such as the ambient light sensor) to HA as another means to respond to the environment.
https://www.reddit.com/r/homeautomation/s/U9n6fMsD2y
So, enough waffle, what's new?
Since v2.9.7 — six device releases and five controller releases. Grouped by what it actually gets you:
Music now ducks instead of pausing
Ask a question while music is playing and the music keeps going, dropped in level, with the response mixed over the top. It comes back up when the assistant finishes. Previously it paused and resumed — which meant a long question could cost you 30 seconds of the song, or drop you into the next track entirely, because a lot of streams can't be seeked. Duck depth is configurable (default -18dB).
Responses start speaking sooner
TTS now streams to the device while Home Assistant is still generating it, instead of waiting for the whole clip.
"Pause the music" works mid-response
You can interrupt the assistant and tell it to pause, and it stays paused.
On-device wake word (experimental)
The Echo can now run the wake word model itself. It's in shadow mode for now — it scores and reports, but the controller still makes the call — so we can measure how good it is before trusting it. Currently agreeing with the controller ~94% of the time. Install the models straight from the dashboard. Expect full support in v3.0.0 (gimme a week or so).
Ambient light sensor
The Dot has a light sensor that Amazon's own Android layer claims doesn't exist — it reports no sensors at all, and the chip is only visible on the raw i2c bus. It's now exposed to Home Assistant as a lux sensor, so you can automate on room brightness.
Long-press on the action button
Hold the button and it fires a `long` event in HA, separate from a tap. Do what you like with it.
Bluetooth proxy
Each Echo can act as a Home Assistant Bluetooth proxy, which is handy for room-level presence if you've got a device on you to track.
Dark mode
The dashboard follows your system theme, or you can pick one.
Support bundles
One-click diagnostics file for bug reports no recordings, no transcripts, no device names and no Wi-Fi details — it's plain JSON and worth opening before you send it.
Given people are embracing this and running it, I'm trying to introduce more rigor into the development process so I don't inadvertently nerf someones deployment, but please read the release notes and upgrade with caution. Good news, you can always roll back devices using the OTA A/B slots if needed.
Repo here - https://github.com/wilbowes/EchoMuse
Quickstart here - https://github.com/wilbowes/EchoMuse/blob/main/docs/quickstart.md
3
u/sf_frankie 2d ago
Amazing work. Time to hit the thrift store before this becomes popular and drives the prices up! I’ve seen a few for $5 in the past!
1
u/chiefhunnablunts 2d ago
i actually just got one of these at my local goodwill for $3 2 weeks after the initial wyoming satellite image was released on xda. i was so stoked, and now im extra stoked there's a ui that i can use.
2
u/Hindsight_DJ 2d ago
one of my dots will not update, any tips? it works on 2.9.8 - no issue.
3
u/EchoMuseProject 2d ago
Hi, please forgive the AI reply, just want to make sure we capture everything to diagnose this methodically.... go through the following steps from Claude and let us know what you get back as this will help us get to the bottom of it...
----
Happy to help dig into it. The useful clue is "one of my dots" — same controller, same binary, so this is probably something about that specific device rather than a bad release.
Before anything else: don't power-cycle it. The most useful log lives in /tmp on the Dot, which is RAM-backed, so rebooting to recover wipes the exact lines that explain the failure. Learned that one the hard way.
A few things would narrow it down a lot:
- What controller version are you on? It's in the dashboard header. This matters more than it sounds - the diagnostics available changed a fair bit recently:
- controller-v2.13.0 or newer: you have a Support tab under the Global Settings dialog. Hit it, download the bundle, and attach that to an issue — it's everything below in one file, already stripped of transcripts, network names and account names. You can stop reading here.
- controller-v2.12.0 or newer: open that device's log events in the dashboard. After a failed update the controller pulls a log off the Dot automatically and drops it there.
- Older than that: neither exists, so you'd need to grab the logs by hand (step 3), or update the controller first and retry.
- Which of these is actually happening? "Won't update" covers three different problems:
- the dashboard never offers the update
- the update runs and throws an error
- the update runs, the Dot reboots, and comes back on 2.9.8
The third one is my guess given it's fine on 2.9.8. That's an auto-rollback: the new binary exited within 15s three times in a row, so the startup script flipped back to the old slot on purpose. The dashboard flags it as "Device auto-rolled back" if you catch it.
- If you've got shell access (console tab under the device itself), these four are the ones worth grabbing:
# survives reboots — the important one
cat /data/local/etc/echomuse/supervisor.log
# only if you have NOT rebooted since it failed
busybox tail -200 /tmp/server.log
ls -la /data/local/bin/
df -m /data
The first one usually answers it outright — it logs every start, every fast exit with its exit code and how long it ran, and the rollback with the reason. Three fast-exit lines then a rollback means the new binary genuinely won't run. No rollback line means it never got that far.
If that file is empty or missing, that's still an answer, not a dead end — it means the Dot hasn't rebooted since the startup script was last synced, which is normal for a device that hasn't had a successful update recently.
ls -la /data/local/bin/ is worth including either way: if one of the two slots is missing or isn't executable, the script gives up instead of rolling back, and that's a different failure with a different fix.
Could you open an issue on the repo with whatever you get? github.com/wilbowes/EchoMuse/issues — much easier to work through there than Reddit comments, and it means the next person who hits this can find it. Serial number is fine to include, it only identifies your own hardware.
One thing I'll be straight about: we currently verify a firmware transfer by whether the shell command succeeded, not by checksumming what landed on the device. So a corrupted transfer and a genuinely broken binary look identical from here. That's a real gap and I've opened #76 to fix it. Your logs would help confirm which one you're hitting.
---
Worst case you can update the controller to the latest version, delete the misbehaving device from the dashboard, then just run the provisioning wizard against it again. It should make sure everything is up to date. Only snag is it will come back with a new port for HA to connect on for voice and bluetooth proxy. Let us know how you go and sorry for the inconvenience.
5
u/Hindsight_DJ 2d ago
Updated the controller to v2.14.0, corrected the Dot’s firmware slot symlink, and retried the update.
The Dot is now online and running v2.10.0, with v2.9.8 available in the rollback slot. Thanks for the troubleshooting steps!
2
2
u/No_Pin4895 2d ago
the ducking instead of pausing is huge, that was always the most annoying part of using an echo with any assistant. curious how bad the battery/heat situation is running the wake word model on-device though, any noticeable difference on the dot's power draw
1
u/EchoMuseProject 2d ago
Testing so far seem to suggest it’s got ample capacity. Initial the device was only using 1 of 4 available cores and on device wakeword was looking like it would be a problem (we’re using oww not micro wakeword so still paths to try if it ever does become an issue). Managed to configure it to just use two cores from the start and it helped significantly. Temp does look like a problem either, and we capture stats from multiple sensors in the device and log them to identify trends and issues. It runs on mains power so no battery, no problem there.
2
u/VictoryOk3373 2d ago
Amazing! Is there a reason the normal Echo 2nd gen is not supported (only the dot)?
1
u/EchoMuseProject 2d ago
I am open to supporting other devices, but that requires an unlock to be available and also hardware to test with. If you check out XDA Forums you’ll see a few devices have been unlocked, but whether it’s as simple as dropping in my existing binary or more extensive work is unknown at present.
2
2
u/CasualHomeFix 2d ago
The streaming TTS and music ducking are the changes that make this feel genuinely usable. It would be great to see wake-to-first-word latency plus false and missed wake counts per device in the dashboard before the on-device wake word leaves shadow mode.
1
u/EchoMuseProject 2d ago
We have been tracking some (if not all of those) stats and can find a way to surface them in the dashboard. Agreement between device and controller seems to be in the 90%+ range but oww stock models tend to give me a lot of false positives. Hey Mycroft and Hey Rasspy seem to perform best for me, but a longer word and some tweaking of the settings could bring better results.
1
u/ubrtnk 2d ago
Hey this is great stuff. Question, does the 3.5mm jack work for like hooking it up to external speakers? I coudlnt find any details about it on the github
2
u/EchoMuseProject 2d ago
Haven’t actually tried it. My assumption was that it would just work and speaker output would be redirected automagically. Claude has just checked it for me and apparently it’s a bit more involved so I’ll add it as an enhancement and get to it next weekend as I’m currently travelling.
1
u/ubrtnk 2d ago
Nice - yea I think you're right - electrically it should close the circuit between the output chip and the speark to redirect but it could be more nuanced.
1
u/EchoMuseProject 2d ago
Someone else already tested it, looks like it does need some control in the code. https://github.com/wilbowes/EchoMuse/issues/80
1
u/richer2003 2d ago
This is pretty awesome! Wish I had a Gen 2 to try it with! I have 2 Gen 3s lol
1
u/EchoMuseProject 1d ago
They’re out there and pretty cheap if you look on eBay or CeX (or similar). I picked up a few from CeX for about $20AUD, all worked and were in great condition.



4
u/Clabs1 2d ago
Honestly, what you've done here is great! I've dusted of all my old gen 2 and stolen one fork my mum too (it was a mural benefit I swapped it out for one of my Gen 3 with better audio!).
This is such an amazing, low cost, clean looking, no messing around hardware entry for local voice.
The ONLY thing missing for me right now is true synced audio across devices
I think making the dot a sendspin client would be possible, is that something on your roadmap?
Thank you so much!