Your Echo Show 5, rebuilt. Linux inside, Home Assistant in charge, no Amazon cloud.
Why ·
Screenshots ·
Stock vs TECHO5 ·
Install ·
Under the hood ·
Credits ·
TECHO5 Dot
TECHO5 (Tech Echo 5) is open firmware for the Amazon Echo Show 5, 2nd generation (2021,
cronos). It replaces Android and Alexa with a small Alpine Linux image and one Go daemon, turning
the Show into a fast, private Home Assistant voice satellite with a touch screen of its own.
Why TECHO5
|
|
| 🐧 Real Linux, no Android |
The Show boots straight into a minimal Alpine Linux root filesystem. No Android framework, no Google services, no app store: one daemon drives the microphones, speaker, screen, camera and radios directly. |
| 🚫 No Alexa, no Amazon account, no Amazon cloud |
Your voice goes only to your Home Assistant, over its encrypted ESPHome API. The Show reaches the internet just for what you use: update checks against this repo, network time, radio streams with their song and cover lookups, and the rain radar map. Voice and control keep working with the internet down, as long as your Home Assistant pipeline is local. |
| 🎙️ Wake word on the device |
microWakeWord runs locally: "Alexa", "Okay Nabu", "Hey Jarvis" or "Hey Mycroft", chosen on the screen or in Home Assistant. Echo cancellation keeps it listening over music. |
| 🔐 Secure by default |
SSH is keys-only and off until you turn it on; keys arrive only through Home Assistant. The camera and screen web pages start closed. No password logins, not even in rescue. |
| 🔄 Updates that can't brick it |
Releases install over the air from Home Assistant's update card into the spare of two root filesystem slots, boot on trial, and fall back on their own if the new one doesn't settle. |
| 📺 A screen that's actually useful |
Clock and weather, the conversation as it happens, now playing with song and cover art, forecasts and a live rain radar, live Home Assistant cameras, timers and alarms, Wi-Fi setup, 13 themes. |
| 📻 Weather and radio with no setup |
A new Show uses the forecast every Home Assistant has, and lists the radio stations near home from Home Assistant's Radio Browser. Pick another weather entity (your own station, say) on the screen, and keep your own favorite stations too. |
| ⏰ Alarms that ring on their own |
Set on the screen, by Home Assistant, or followed from its helpers; they ring from the Show's own clock even when Home Assistant is down. Snooze included. |
| 🎧 Bluetooth, rebuilt |
Earbuds and speakers over A2DP, plus a Home Assistant Bluetooth proxy, on a kernel rebuilt with Bluetooth from the LineageOS source. |
| 📷 A camera you control |
The front camera becomes a Home Assistant camera entity, off unless something is watching, and physically off while the mute button is engaged. |
| 🛟 Always recoverable |
A rescue environment with a USB serial console, and TWRP left in place: LineageOS is one flash away. |
Screenshots
Straight from the device's own screen.
|
|
 |
 |
| Clock, weather and the next alarm |
Alarm ringing, big enough to hit half awake |
 |
 |
| Settings: volume, brightness, Wi-Fi, wake word |
Alarms: set on the device, no app needed |
 |
 |
| Alarm editor with day chips |
Security: every open door has a switch |
 |
|
| Themes: presets or your own colours |
|
Stock vs TECHO5
|
Stock Echo Show 5 (Alexa) |
TECHO5 |
| Operating system |
Fire OS (Android) |
Alpine Linux, one daemon |
| Voice assistant |
Alexa, in Amazon's cloud |
Home Assistant Assist, with any pipeline you run |
| Where your voice goes |
Amazon |
Your Home Assistant, encrypted |
| Wake word |
"Alexa", processed for Amazon |
On the device: Alexa, Okay Nabu, Hey Jarvis, Hey Mycroft |
| Screen |
Alexa cards and ads |
Clock, weather, now playing, cameras, timers, alarms, settings |
| Music |
Amazon Music and skills |
Home Assistant radio lists with cover art, Music Assistant (Sendspin), Home Assistant media |
| Timers and alarms |
Alexa |
Home Assistant timers on screen; alarms that ring without Home Assistant |
| Camera |
Video calls, Drop In |
A Home Assistant camera entity, off unless watched |
| Bluetooth |
Speaker and phone audio |
Audio to earbuds and speakers; Home Assistant Bluetooth proxy |
| Smart home |
Alexa routines |
Everything Home Assistant does |
| Updates |
Amazon, automatic, whenever |
From this repo's releases, when you press Install; A/B slots with automatic fallback |
| Remote access |
None |
SSH with keys, off by default |
| Listening on your network |
Amazon's services |
Home Assistant's encrypted API and the Sendspin player; SSH and web pages only when switched on |
| Calling, Drop In, shopping, skills |
Yes |
No. Those are Alexa cloud services |
Install
You need a Show 5 2nd gen unlocked with
amonet-cronos
and running
LineageOS 18.1,
a USB cable, a Windows PC, and Home Assistant. Each release
carries everything else: the boot image and the root filesystem.
- Copy the root filesystem to the Show with
adb and flash the boot image with fastboot.
- From the USB serial console of the rescue environment, create the slot store and install.
- Add the Show in Home Assistant with the key it prints. Done: later updates come from Home Assistant.
The whole walk-through, with every command and the fixes for what can go wrong, is in
docs/install.md.
Status: in daily use on two Echo Show 5 units. It's a hobby project, not a product: keep your
backups, and expect rough edges.
Under the hood
| Layer |
What |
| Boot |
Amazon's LK, unlocked with amonet; the LineageOS 4.9 kernel rebuilt with Bluetooth; a rescue initramfs that picks a slot |
| System |
Alpine Linux armv7 in two root filesystem slots, read-only, with a trial-and-commit boot counter |
| Daemon |
echod, one Go binary: audio, wake word, echo cancellation, screen renderer, touch, camera ISP, Bluetooth, updates |
| Home Assistant |
The native ESPHome API: voice satellite, media player, camera, update entity, dozens of settings |
Sister project
TECHO5 Dot does the same for the Echo Dot 2nd
generation: Linux in place of Fire OS, all seven microphones, Bluetooth speaker mode, signed
updates. Both run the same daemon source, built per device.
Standing on shoulders
TECHO5 exists because of these projects and the people behind them.
The path here
- EchoLocal (MIT, Yuri Gelfand): the Echo Dot daemon TECHO5's
echod grew from, and go-esphome-device, the
ESPHome device API it speaks.
- amonet-cronos and kaeru (k4y0z, R0rt1z2): the bootloader unlock
and recovery that make any of this possible.
- LineageOS 18.1 for
cronos (unofficial, R0rt1z2), built on
Amazon's GPL kernel source: the
kernel TECHO5 rebuilds and the vendor drivers it keeps. TWRP stays as the way back.
- ShowAssist and the
View Assist Companion App (Mark Parker): what
ran the Show before TECHO5, and the first proof it could be a Home Assistant satellite.
- jxlarrea/lineageos-echo-show-camera:
the OV02B10 camera driver and sensor fixes, the privacy latch, and echo cancellation work on the
Echo Show family.
- bengris32/linux-mtk: the mainline MT8163 effort, a map of
the hardware.
- The BQ Aquaris E10 GPL source release: MediaTek's ISP register map for this chip generation, which
let the camera run from userspace.
What runs on the device
- microWakeWord (Kevin Ahrendt), the
ESPHome wake word models, and
zserge/microwakeword for Go.
- Home Assistant and ESPHome: Assist, the
native API, and the reason to build any of this.
- Music Assistant and Sendspin.
- Radio Browser, through Home Assistant's integration, for stations
near home; RainViewer for the radar and
OpenStreetMap contributors for the map under it.
- Alpine Linux, BusyBox, Dropbear, wpa_supplicant, BlueZ,
bluez-alsa (arkq), and
webrtc-audio-processing.
- Go libraries: go-mp3 (Hajime Hoshi), godbus, gorilla/websocket, zeroconf, mewkiz/flac, pion/opus,
cobra, viper, protobuf and the Go fonts.
See NOTICE for licenses of code carried in this repository.
The older route: the daemon beside LineageOS
Before the Linux image, the daemon ran as an init service on LineageOS 18.1. That still works, on a
unit with USB debugging and rooted debugging enabled:
cd echod
$env:GOOS='linux'; $env:GOARCH='arm'; $env:GOARM='7'; $env:CGO_ENABLED='0'
go build -trimpath -ldflags '-s -w' -o ../bin/echod-arm ./cmd/echod
cd ..
.\tools\install-cronos.ps1 -Serial <adb serial> -Name "Kitchen" -KeyFile .\kitchen.psk
The installer puts the daemon in place as an init service, switches Android to its null audio HAL
(the daemon owns the microphone and speaker), provisions the name, API key and wake word models, and
reboots. Home Assistant then discovers the device as an ESPHome node; paste the key when asked.
Android and any app on the screen keep running, silently.
License
MIT. See LICENSE and NOTICE.
TECHO5 isn't affiliated with Amazon. Echo and Alexa are trademarks of Amazon.com, Inc.