# EchoMuse: replacement software that turns the Echo Dot 2nd gen into a Home Assistant voice satellite

> Replaces the software on an unlocked second-generation Amazon Echo Dot (2016, codename biscuit) so it works as a local Home Assistant voice satellite over the ESPHome API: EchoMuse's own Go firmware drives the microphones, speaker, LED ring and buttons, and a controller on the LAN handles wake words, devices and a dashboard. Its default emOS mode swaps Amazon's Android userspace for the project's own init and busybox while keeping the Dot's kernel from the owner's boot image. An engineering journal records how codec routes, the mute key and other hardware behavior were worked out by measuring the device and diffing the mixer and DAPM state while stock FireOS plays a sound.

- Type: Case study
- Targets: Firmware
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-27
- Added to the catalog: 2026-11-03
- Original resource: <https://github.com/wilbowes/EchoMuse>
- Primary source: <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/README.md>
- Catalog page: <https://awesomerea.org/resources/echomuse-echo-dot-voice-satellite-case/>
- Record JSON: <https://awesomerea.org/resources/echomuse-echo-dot-voice-satellite-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/echomuse-echo-dot-voice-satellite-case/index.md)

## Requirements & limits

- Reviewed main commit 4bbf7ff (2026-10-27) is in active development. At review the latest stable device firmware is v2.18.1 (2026-10-15) and emOS 0.10 (2026-10-02), the controller add-on declares 2.26.3, and early-access v2.19.0-ea.2 and emos-v0.11-ea.1 builds followed. Only the Echo Dot 2nd gen is supported; README calls ports to the Echo Dot 3, Echo 2 and Echo Show 8 in progress and lists open issues, including no WPA3 on emOS under FireOS 6.
- Needs the user's own Echo Dot 2nd gen, first unlocked with third-party tools (firebreak running R0rt1z2's amonet-biscuit); README says this is done at the user's own risk and can soft-brick the device. The setup wizard keeps a copy of the device's own boot partition and builds the emOS image from its kernel and device trees, and emOS mounts bionic and tinyalsa read-only from the device's /system. The emOS README says no bootable image is published because it would contain Amazon's kernel; releases carry the project's own firmware binary, init and userspace payload, and busybox with its source.
- Requires a working Home Assistant with an Assist pipeline, an always-on host for the controller as a Home Assistant add-on or Docker container, and Chrome or Edge for the one-time WebUSB setup. Source builds use the project's Docker compiler image for the Go device firmware, Python 3.12 for the controller, and emos/build.sh, whose release workflow compiles the init with a pinned Android NDK.
- CI runs the controller pytest suite with coverage floors, dashboard and Go device tests, dependency audits and image builds, and the journal and acceptance-test reports describe runs on the maintainer's own devices. It does not reproduce Alexa, and no Amazon software or service is recovered.
- MIT, with vendored SpeexDSP (BSD-3-Clause), an ONNX Runtime header, aioesphomeapi protocol buffers and a CC BY 4.0 timer sound listed in NOTICE.md; the project states it is not affiliated with Amazon. README says EchoMuse is written largely with Claude, directed by the maintainer, and that more than half the commits carry a Co-Authored-By: Claude line.

## Primary sources

1. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/README.md>
2. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/emos/README.md>
3. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/docs/rooting.md>
4. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/JOURNAL.md>
5. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/porting/README.md>
6. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/CONTRIBUTING.md>
7. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/controller/config.yaml>
8. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/.github/workflows/ci.yml>
9. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/.github/workflows/emos-release.yml>
10. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/docs/uat-results/2.26.0.md>
11. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/NOTICE.md>
12. <https://github.com/wilbowes/EchoMuse/blob/4bbf7ff6eb9c97faea9080e0a2a6032921ef8108/LICENSE>
13. <https://github.com/wilbowes/EchoMuse/releases/tag/v2.18.1>
14. <https://github.com/wilbowes/EchoMuse/releases/tag/emos-v0.10>

## More in Firmware and hardware

- [OSIRIS: replacing Onkyo receiver firmware through MCU protocol research](https://awesomerea.org/resources/osiris-onkyo-receiver-case/index.md) · Case study
- [Virtual MPC Sample: rehosting Akai MPC Sample firmware in QEMU](https://awesomerea.org/resources/virtual-mpc-sample-case/index.md) · Case study
- [OpenJooki: replacing the Jooki 2 software and recovery path](https://awesomerea.org/resources/openjooki-jooki2-case/index.md) · Case study
- [Stickwalker: porting Pokéwalker firmware to the Stick S3](https://awesomerea.org/resources/stickwalker-case/index.md) · Case study
- [sony-bravia-linux: pre-Android BRAVIA platform and media behavior](https://awesomerea.org/resources/sony-bravia-linux-case/index.md) · Case study
- [VanMoof BLE: a client for S5, A5 and S6 bicycle protocols](https://awesomerea.org/resources/vanmoof-ble-protocol-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
