HuskerMinion/techo5

Open firmware for the Echo Show 5, 1st and 2nd gen: Alpine Linux instead of Android, no Alexa. A local Home Assistant voice satellite with its own touch screen, on-device wake word, SSH and A/B over-the-air updates.

Go

147

584 commits

updated Sep 27, 2026

See the code

See what people are saying

README

TECHO5

Your Echo Show 5, rebuilt. Linux inside, Home Assistant in charge, no Amazon cloud.

Latest release Alpine Linux No Android No Alexa Home Assistant MIT license Buy Me a Coffee

What's new · Built on EchoLocal · Why · Screenshots · Stock vs TECHO5 · Install · Under the hood · Credits · TECHO5 Dot · TECHO5 Spot


TECHO5 (Tech Echo 5) is open firmware for the Amazon Echo Show 5. 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.

Every Echo that can be unlocked now runs it. The bootloader exploit these devices are opened with, amonet, reaches five Amazon Echos. All five run the same daemon:

DeviceModelRepositoryStatus
Echo Show 5, 2nd gen (2021, cronos)C76N82this oneIn daily use
Echo Show 5, 1st gen (2019, checkers)H23K37this one, same binary; hardware notes in techo5-checkersWorking, tested end to end on one unit
Echo Show 8, 1st gen (2019, crown)C7H6N3this one, same binaryWorking on one unit, the newest port
Echo Spot, 1st gen (2017, rook)VN94DQTECHO5 SpotIn daily use
Echo Dot, 2nd gen (2016, biscuit)RS03QRTECHO5 DotIn daily use

Every other device amonet opens is a Fire tablet. No Echo made after 2021 has a public unlock, so this is the whole family as it stands, not a roadmap.

The screen turning into a sunrise over the twenty minutes before an alarm: a dark red sky warming through orange to a pale gold, a sun climbing into it, the time readable throughout

Waking to light. For up to half an hour before an alarm the screen becomes a dawn, on a curve that does most of its work near the end. Every frame here is drawn by the code the device draws with.

What's new

The bigger changes of late September 2026. Every release lists the rest.

A dashboard drawn by the Echo Show 8 itself: tiles for a lamp, a fan, a scene, a porch light, a lock, the heat and the weatherThe same dashboard streamed to the Echo Show 8 exactly as Home Assistant draws it, with a five-day forecast
Drawn on the device: instant, no serverStreamed: exactly as Home Assistant draws it

Home Assistant dashboards on the screen (v0.9.0). The Echo Show and the Echo Spot can show a dashboard as a page you swipe in from the left edge of the clock (on the Spot, from the ring menu), or in place of the clock when nothing else is on the screen. There are two ways, picked per device in Home Assistant:

  • Drawn on the device. The device reads the dashboard's cards and draws them itself, in your theme's colors: tiles you can tap or slide for brightness, position and temperature, rows with switches, graphs, gauges, pictures and more. Taps are instant and nothing else is needed. With no dashboard picked, it builds a Rooms dashboard from your Home Assistant areas.
  • Streamed. dashcast, a small server that runs next to Home Assistant (a Docker image for PCs and Raspberry Pis), opens the dashboard in a headless browser and sends the screen only what changes, encrypted with a key of your choosing. It looks exactly as Home Assistant draws it, custom cards included, and it can show built-in pages like Energy and History.

Which to use, how to set it up and what each can do: docs/dashboards.md.

Now playing from Music Assistant, with the album's cover behind the songNow playing on the Echo Spot, with the album cover in a circle
Cover art for Music Assistant (v0.8.13). Music from Music Assistant, your own library included, now shows its album cover on the now-playing screen, the way radio stations already did. Music Assistant sends the picture itself, so there's nothing to set up. On the Spot it sits in a circle over the song.
  • 🗣️ It stops listening when you stop talking (v0.8.14). After the wake word, the device hears you finish and ends the turn itself, instead of waiting for Home Assistant. With a TV or other voices in the room, that used to mean 10 to 15 seconds of listening, or a turn that timed out and did nothing. A switch per device, End of speech on the device, puts it back the old way.
  • 🌙 A night light (v0.8.12, v0.8.13). Night hours can dim the screen to a faint glow instead of turning it off, and the first touch only brings it up. Music playing at night no longer keeps it bright, and Night light brightness (1 to 10) in Home Assistant sets the glow. Screenshot
  • 🎵 Music that behaves (v0.8.9 to v0.8.13). A mini player strip over the clock with its own controls, Done and a favorite star on the now-playing page, pause and play that keep your place with Music Assistant, and answers and announcements that play over the music, ducked, instead of stopping it. Two ways a device could end up saying "Playing" in silence are fixed. Screenshot
  • ⏰ Alarms and reminders (v0.8.1 onward). An alarm or reminder can ring once on a particular day, each alarm can choose its own wake light, and reminders can be set by voice ("remind me every Wednesday at 8 to take the trash out") with the automation in docs/actions.md. Screenshot
  • 🔁 A Restart button in Home Assistant for every device (v0.8.13): restarts the TECHO5 software the way an update does, for when something is stuck and you'd rather not unplug it.
  • 🌧️ Sleep sounds (v0.8.14). "Play the sounds of rain" no longer brings up the forecast, and a sound file served by Home Assistant shows its own name on the now-playing page.
  • 🎙️ More by voice, with ready-made Home Assistant automations in docs/actions.md: set, cancel and list alarms ("cancel the 6 AM alarm", "what alarms do I have"), and change the volume on the speaker you're talking to rather than every speaker in the room.
  • 📺 The Echo Show 8 (v0.8.0) runs the same software, laid out for its bigger screen. Screenshots

Built on EchoLocal

TECHO5 started from EchoLocal by Yuri Gelfand (MIT), which already turns the Echo Dot 2 (biscuit, the same MT8163 family) into an ESPHome-native Home Assistant satellite, with a single static Go daemon that drives the hardware directly. TECHO5's echod is that daemon, vendored and ported to the Show 5's cronos, and much of it is still EchoLocal's code: the wake word engine, the ALSA client and the service framework almost unchanged, and the voice satellite, media player and component registry grown from EchoLocal's own. What TECHO5 added is the Show's hardware, the screen, the camera, Bluetooth, the update and slot system, phone calls, and a minimal Alpine root filesystem in place of Android. See NOTICE for the full attribution and EchoLocal's license.

Why TECHO5

🐧 Real Linux, no AndroidThe 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 cloudYour 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, the rain radar map, and in the U.S. the National Weather Service's weather alerts. Voice and control keep working with the internet down, as long as your Home Assistant pipeline is local.
🎙️ Wake word on the devicemicroWakeWord runs locally: twelve wake words, "Alexa", "Okay Nabu", "Hey Jarvis", "Hey Mycroft", "Computer" and more, chosen on the screen or in Home Assistant. Echo cancellation keeps it listening over music.
🔐 Secure by defaultSSH 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 itReleases 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 usefulClock and weather, the conversation as it happens, now playing with song and cover art, your Home Assistant dashboards, forecasts, a live rain radar, the National Weather Service's alerts (in the U.S.), live Home Assistant cameras, timers and alarms, Wi-Fi setup, 13 themes.
📻 Weather and radio with no setupA 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 ownSet 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, and the screen can wake you with a sunrise before the sound.
🎧 Bluetooth, rebuiltEarbuds and speakers over A2DP, plus a Home Assistant Bluetooth proxy, on a kernel rebuilt with Bluetooth from the LineageOS source.
📞 A speakerphone againCalls through your own SIP provider: "call Alex" by voice, calls that ring on the screen, calls between your own devices, and a help call that alerts your phones and dials people in turn. Encrypted end to end to the provider, and off until you sign it in. docs/phone.md
📷 A camera you controlThe front camera becomes a Home Assistant camera entity, off unless something is watching, and physically off while the mute button is engaged.
🛟 Always recoverableA 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. All of them, including the Echo Show 8 and the Echo Spot, are in docs/screenshots.

Clock with weather over a photoAn alarm ringing, with Stop and Snooze
Clock, weather and your own photos behind itAlarm ringing, big enough to hit half awake
Now playing from Music Assistant, with the album's coverThe mini player strip over the clock
Now playing, with the album's coverThe mini player, over the clock
Settings: DisplaySettings: Sound & Voice
Settings by category: brightness, night hours, theme, clockSound & Voice: volume, microphone, wake word and its sound
Alarm editorSettings: Privacy & Security
Alarms set on the device, no app neededPrivacy: every open door has a switch
Theme listSettings: Connections
Themes: presets or your own colorsConnections: Wi-Fi, Bluetooth and the Home Assistant proxy
Weather with a five day forecastThe cameras drawer
Weather now and for the week, with the rain radar a tap awayCameras and Radio, a swipe in from the right

The sunrise before an alarm on the Echo Spot's round face: the circle warming from dark red through orange to gold, a sun climbing from the bottom

The Echo Spot takes the same twenty minutes across its round face.

Stock vs TECHO5

Stock Echo Show 5 (Alexa)TECHO5
Operating systemFire OS (Android)Alpine Linux, one daemon
Voice assistantAlexa, in Amazon's cloudHome Assistant Assist, with any pipeline you run
Where your voice goesAmazonYour Home Assistant, encrypted
Wake word"Alexa", processed for AmazonOn the device: Alexa, Okay Nabu, Hey Jarvis, Hey Mycroft and eight more
ScreenAlexa cards and adsClock, weather, now playing, Home Assistant dashboards, cameras, timers, alarms, settings
MusicAmazon Music and skillsHome Assistant radio lists with cover art, Music Assistant (Sendspin), Home Assistant media
Timers and alarmsAlexaHome Assistant timers on screen; alarms that ring without Home Assistant
CameraVideo calls, Drop InA Home Assistant camera entity, off unless watched
BluetoothSpeaker and phone audioAudio to earbuds and speakers; Home Assistant Bluetooth proxy
Smart homeAlexa routinesEverything Home Assistant does
UpdatesAmazon, automatic, wheneverFrom this repo's releases, when you press Install; A/B slots with automatic fallback
Remote accessNoneSSH with keys, off by default
Listening on your networkAmazon's servicesHome Assistant's encrypted API and the Sendspin player; SSH and web pages only when switched on. A signed-in phone keeps its own connection out to the provider
CallingAlexa calling and Drop InPhone calls through your own SIP provider (TLS and SRTP), placed from Home Assistant or by voice, answered on the screen; device to device calls in the house
Shopping, skillsYesNo. Those are Alexa cloud services

Install

New to this? Start with Getting started: every step from a stock Echo Show 5, Dot or Spot, with the unlock guides linked, what to check after each step, and notes for Windows, Linux and macOS.

You need a Show 5 unlocked and running LineageOS 18.1 — 2nd gen with amonet-cronos and this ROM, 1st gen with amonet-checkers and R0rt1z2's checkers build of the same LineageOS — a USB cable, a computer (Windows, Linux or macOS) with Python 3, adb and fastboot, and Home Assistant. Each release carries everything else: the boot image (with Bluetooth) and the root filesystem. Nothing is built.

git clone https://github.com/HuskerMinion/techo5
cd techo5
python3 tools/install-show.py

It finds the Show, asks what to call it and asks once before erasing anything (or takes --serial, --name and --force from a script), downloads and checks the release, flashes the boot image, creates the slot store and installs over the USB serial console, and prints where the Home Assistant key is kept. Later updates come from Home Assistant. Every step by hand, and the fixes for what can go wrong: 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.

Echo Show 5 1st gen (2019, checkers) installs with the same command: the installer sees which generation it is talking to and takes that unit's boot image from the release. Everything works on it — screen, touch, speaker, microphones, wake word, camera, the mute button and voice — tested end to end, though so far on one unit rather than the two years of daily use behind the 2nd gen. The hardware notes are in techo5-checkers.

Echo Show 8 1st gen (2019, crown) installs with the same command as well. Its screen, touch, speaker, four microphones, wake word, camera, lens cover and mute latch all work, and it takes slot updates like the others. It is the newest of the three and has been through far less use than either Show 5, so treat it as such. Two things worth knowing first: a seller's model number does not tell the two Show 8 generations apart, so go by the year when buying second-hand, and cycling the mute latch stops the camera until the unit is rebooted.

Under the hood

LayerWhat
BootAmazon's LK, unlocked with amonet; the LineageOS 4.9 kernel rebuilt with Bluetooth; a rescue initramfs that picks a slot
SystemAlpine Linux armv7 in two root filesystem slots, read-only, with a trial-and-commit boot counter
Daemonechod, one Go binary: audio, wake word, echo cancellation, screen renderer, touch, camera ISP, Bluetooth, updates
Home AssistantThe native ESPHome API: voice satellite, media player, camera, update entity, dozens of settings

Sister projects

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. TECHO5 Spot does it for the Echo Spot (1st gen), on its round screen. All three run the same daemon source, built per device.

Made possible by

TECHO5 exists because of these projects and the people behind them.

The path here

  • EchoLocal (MIT, Yuri Gelfand): the daemon TECHO5 is built on (see Built on EchoLocal), 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.
  • @proffalken: the step-by-step install from Linux that Getting started and the cross-platform installers are based on.
  • 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.
  • @Empty2k12: the first hardware findings from an Echo Show 5 1st gen (checkers), including the recipe that made its speaker play, in pull request #2.
  • @JonGilmore: every 1st gen build tested on a real unit, two days of it. The microphones, the mute latch cutting their power, the camera and the spoken replies were all found or confirmed from what he reported.

What runs on the device

See NOTICE for licenses of code carried in this repository.

The older route: the daemon beside LineageOS (Windows, PowerShell)

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.

alexa-alternative
alpine-linux
checkers
cronos
echo-show
echo-show-5
esphome
firmware
home-assistant
linux
local-first
microwakeword
mt8163
ota-updates
privacy
voice-assistant
wake-word

Contributors

HuskerMinion

547 commits

Uthrom

34 commits

drjjr2

1 commits

Empty2k12

1 commits

HuskerMinion/techo5

Open firmware for the Echo Show 5, 1st and 2nd gen: Alpine Linux instead of Android, no Alexa. A local Home Assistant voice satellite with its own touch screen, on-device wake word, SSH and A/B over-the-air updates.

Go

147

584 commits

updated Sep 27, 2026

See the code

See what people are saying

README

TECHO5

Your Echo Show 5, rebuilt. Linux inside, Home Assistant in charge, no Amazon cloud.

Latest release Alpine Linux No Android No Alexa Home Assistant MIT license Buy Me a Coffee

What's new · Built on EchoLocal · Why · Screenshots · Stock vs TECHO5 · Install · Under the hood · Credits · TECHO5 Dot · TECHO5 Spot


TECHO5 (Tech Echo 5) is open firmware for the Amazon Echo Show 5. 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.

Every Echo that can be unlocked now runs it. The bootloader exploit these devices are opened with, amonet, reaches five Amazon Echos. All five run the same daemon:

DeviceModelRepositoryStatus
Echo Show 5, 2nd gen (2021, cronos)C76N82this oneIn daily use
Echo Show 5, 1st gen (2019, checkers)H23K37this one, same binary; hardware notes in techo5-checkersWorking, tested end to end on one unit
Echo Show 8, 1st gen (2019, crown)C7H6N3this one, same binaryWorking on one unit, the newest port
Echo Spot, 1st gen (2017, rook)VN94DQTECHO5 SpotIn daily use
Echo Dot, 2nd gen (2016, biscuit)RS03QRTECHO5 DotIn daily use

Every other device amonet opens is a Fire tablet. No Echo made after 2021 has a public unlock, so this is the whole family as it stands, not a roadmap.

The screen turning into a sunrise over the twenty minutes before an alarm: a dark red sky warming through orange to a pale gold, a sun climbing into it, the time readable throughout

Waking to light. For up to half an hour before an alarm the screen becomes a dawn, on a curve that does most of its work near the end. Every frame here is drawn by the code the device draws with.

What's new

The bigger changes of late September 2026. Every release lists the rest.

A dashboard drawn by the Echo Show 8 itself: tiles for a lamp, a fan, a scene, a porch light, a lock, the heat and the weatherThe same dashboard streamed to the Echo Show 8 exactly as Home Assistant draws it, with a five-day forecast
Drawn on the device: instant, no serverStreamed: exactly as Home Assistant draws it

Home Assistant dashboards on the screen (v0.9.0). The Echo Show and the Echo Spot can show a dashboard as a page you swipe in from the left edge of the clock (on the Spot, from the ring menu), or in place of the clock when nothing else is on the screen. There are two ways, picked per device in Home Assistant:

  • Drawn on the device. The device reads the dashboard's cards and draws them itself, in your theme's colors: tiles you can tap or slide for brightness, position and temperature, rows with switches, graphs, gauges, pictures and more. Taps are instant and nothing else is needed. With no dashboard picked, it builds a Rooms dashboard from your Home Assistant areas.
  • Streamed. dashcast, a small server that runs next to Home Assistant (a Docker image for PCs and Raspberry Pis), opens the dashboard in a headless browser and sends the screen only what changes, encrypted with a key of your choosing. It looks exactly as Home Assistant draws it, custom cards included, and it can show built-in pages like Energy and History.

Which to use, how to set it up and what each can do: docs/dashboards.md.

Now playing from Music Assistant, with the album's cover behind the songNow playing on the Echo Spot, with the album cover in a circle
Cover art for Music Assistant (v0.8.13). Music from Music Assistant, your own library included, now shows its album cover on the now-playing screen, the way radio stations already did. Music Assistant sends the picture itself, so there's nothing to set up. On the Spot it sits in a circle over the song.
  • 🗣️ It stops listening when you stop talking (v0.8.14). After the wake word, the device hears you finish and ends the turn itself, instead of waiting for Home Assistant. With a TV or other voices in the room, that used to mean 10 to 15 seconds of listening, or a turn that timed out and did nothing. A switch per device, End of speech on the device, puts it back the old way.
  • 🌙 A night light (v0.8.12, v0.8.13). Night hours can dim the screen to a faint glow instead of turning it off, and the first touch only brings it up. Music playing at night no longer keeps it bright, and Night light brightness (1 to 10) in Home Assistant sets the glow. Screenshot
  • 🎵 Music that behaves (v0.8.9 to v0.8.13). A mini player strip over the clock with its own controls, Done and a favorite star on the now-playing page, pause and play that keep your place with Music Assistant, and answers and announcements that play over the music, ducked, instead of stopping it. Two ways a device could end up saying "Playing" in silence are fixed. Screenshot
  • ⏰ Alarms and reminders (v0.8.1 onward). An alarm or reminder can ring once on a particular day, each alarm can choose its own wake light, and reminders can be set by voice ("remind me every Wednesday at 8 to take the trash out") with the automation in docs/actions.md. Screenshot
  • 🔁 A Restart button in Home Assistant for every device (v0.8.13): restarts the TECHO5 software the way an update does, for when something is stuck and you'd rather not unplug it.
  • 🌧️ Sleep sounds (v0.8.14). "Play the sounds of rain" no longer brings up the forecast, and a sound file served by Home Assistant shows its own name on the now-playing page.
  • 🎙️ More by voice, with ready-made Home Assistant automations in docs/actions.md: set, cancel and list alarms ("cancel the 6 AM alarm", "what alarms do I have"), and change the volume on the speaker you're talking to rather than every speaker in the room.
  • 📺 The Echo Show 8 (v0.8.0) runs the same software, laid out for its bigger screen. Screenshots

Built on EchoLocal

TECHO5 started from EchoLocal by Yuri Gelfand (MIT), which already turns the Echo Dot 2 (biscuit, the same MT8163 family) into an ESPHome-native Home Assistant satellite, with a single static Go daemon that drives the hardware directly. TECHO5's echod is that daemon, vendored and ported to the Show 5's cronos, and much of it is still EchoLocal's code: the wake word engine, the ALSA client and the service framework almost unchanged, and the voice satellite, media player and component registry grown from EchoLocal's own. What TECHO5 added is the Show's hardware, the screen, the camera, Bluetooth, the update and slot system, phone calls, and a minimal Alpine root filesystem in place of Android. See NOTICE for the full attribution and EchoLocal's license.

Why TECHO5

🐧 Real Linux, no AndroidThe 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 cloudYour 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, the rain radar map, and in the U.S. the National Weather Service's weather alerts. Voice and control keep working with the internet down, as long as your Home Assistant pipeline is local.
🎙️ Wake word on the devicemicroWakeWord runs locally: twelve wake words, "Alexa", "Okay Nabu", "Hey Jarvis", "Hey Mycroft", "Computer" and more, chosen on the screen or in Home Assistant. Echo cancellation keeps it listening over music.
🔐 Secure by defaultSSH 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 itReleases 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 usefulClock and weather, the conversation as it happens, now playing with song and cover art, your Home Assistant dashboards, forecasts, a live rain radar, the National Weather Service's alerts (in the U.S.), live Home Assistant cameras, timers and alarms, Wi-Fi setup, 13 themes.
📻 Weather and radio with no setupA 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 ownSet 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, and the screen can wake you with a sunrise before the sound.
🎧 Bluetooth, rebuiltEarbuds and speakers over A2DP, plus a Home Assistant Bluetooth proxy, on a kernel rebuilt with Bluetooth from the LineageOS source.
📞 A speakerphone againCalls through your own SIP provider: "call Alex" by voice, calls that ring on the screen, calls between your own devices, and a help call that alerts your phones and dials people in turn. Encrypted end to end to the provider, and off until you sign it in. docs/phone.md
📷 A camera you controlThe front camera becomes a Home Assistant camera entity, off unless something is watching, and physically off while the mute button is engaged.
🛟 Always recoverableA 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. All of them, including the Echo Show 8 and the Echo Spot, are in docs/screenshots.

Clock with weather over a photoAn alarm ringing, with Stop and Snooze
Clock, weather and your own photos behind itAlarm ringing, big enough to hit half awake
Now playing from Music Assistant, with the album's coverThe mini player strip over the clock
Now playing, with the album's coverThe mini player, over the clock
Settings: DisplaySettings: Sound & Voice
Settings by category: brightness, night hours, theme, clockSound & Voice: volume, microphone, wake word and its sound
Alarm editorSettings: Privacy & Security
Alarms set on the device, no app neededPrivacy: every open door has a switch
Theme listSettings: Connections
Themes: presets or your own colorsConnections: Wi-Fi, Bluetooth and the Home Assistant proxy
Weather with a five day forecastThe cameras drawer
Weather now and for the week, with the rain radar a tap awayCameras and Radio, a swipe in from the right

The sunrise before an alarm on the Echo Spot's round face: the circle warming from dark red through orange to gold, a sun climbing from the bottom

The Echo Spot takes the same twenty minutes across its round face.

Stock vs TECHO5

Stock Echo Show 5 (Alexa)TECHO5
Operating systemFire OS (Android)Alpine Linux, one daemon
Voice assistantAlexa, in Amazon's cloudHome Assistant Assist, with any pipeline you run
Where your voice goesAmazonYour Home Assistant, encrypted
Wake word"Alexa", processed for AmazonOn the device: Alexa, Okay Nabu, Hey Jarvis, Hey Mycroft and eight more
ScreenAlexa cards and adsClock, weather, now playing, Home Assistant dashboards, cameras, timers, alarms, settings
MusicAmazon Music and skillsHome Assistant radio lists with cover art, Music Assistant (Sendspin), Home Assistant media
Timers and alarmsAlexaHome Assistant timers on screen; alarms that ring without Home Assistant
CameraVideo calls, Drop InA Home Assistant camera entity, off unless watched
BluetoothSpeaker and phone audioAudio to earbuds and speakers; Home Assistant Bluetooth proxy
Smart homeAlexa routinesEverything Home Assistant does
UpdatesAmazon, automatic, wheneverFrom this repo's releases, when you press Install; A/B slots with automatic fallback
Remote accessNoneSSH with keys, off by default
Listening on your networkAmazon's servicesHome Assistant's encrypted API and the Sendspin player; SSH and web pages only when switched on. A signed-in phone keeps its own connection out to the provider
CallingAlexa calling and Drop InPhone calls through your own SIP provider (TLS and SRTP), placed from Home Assistant or by voice, answered on the screen; device to device calls in the house
Shopping, skillsYesNo. Those are Alexa cloud services

Install

New to this? Start with Getting started: every step from a stock Echo Show 5, Dot or Spot, with the unlock guides linked, what to check after each step, and notes for Windows, Linux and macOS.

You need a Show 5 unlocked and running LineageOS 18.1 — 2nd gen with amonet-cronos and this ROM, 1st gen with amonet-checkers and R0rt1z2's checkers build of the same LineageOS — a USB cable, a computer (Windows, Linux or macOS) with Python 3, adb and fastboot, and Home Assistant. Each release carries everything else: the boot image (with Bluetooth) and the root filesystem. Nothing is built.

git clone https://github.com/HuskerMinion/techo5
cd techo5
python3 tools/install-show.py

It finds the Show, asks what to call it and asks once before erasing anything (or takes --serial, --name and --force from a script), downloads and checks the release, flashes the boot image, creates the slot store and installs over the USB serial console, and prints where the Home Assistant key is kept. Later updates come from Home Assistant. Every step by hand, and the fixes for what can go wrong: 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.

Echo Show 5 1st gen (2019, checkers) installs with the same command: the installer sees which generation it is talking to and takes that unit's boot image from the release. Everything works on it — screen, touch, speaker, microphones, wake word, camera, the mute button and voice — tested end to end, though so far on one unit rather than the two years of daily use behind the 2nd gen. The hardware notes are in techo5-checkers.

Echo Show 8 1st gen (2019, crown) installs with the same command as well. Its screen, touch, speaker, four microphones, wake word, camera, lens cover and mute latch all work, and it takes slot updates like the others. It is the newest of the three and has been through far less use than either Show 5, so treat it as such. Two things worth knowing first: a seller's model number does not tell the two Show 8 generations apart, so go by the year when buying second-hand, and cycling the mute latch stops the camera until the unit is rebooted.

Under the hood

LayerWhat
BootAmazon's LK, unlocked with amonet; the LineageOS 4.9 kernel rebuilt with Bluetooth; a rescue initramfs that picks a slot
SystemAlpine Linux armv7 in two root filesystem slots, read-only, with a trial-and-commit boot counter
Daemonechod, one Go binary: audio, wake word, echo cancellation, screen renderer, touch, camera ISP, Bluetooth, updates
Home AssistantThe native ESPHome API: voice satellite, media player, camera, update entity, dozens of settings

Sister projects

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. TECHO5 Spot does it for the Echo Spot (1st gen), on its round screen. All three run the same daemon source, built per device.

Made possible by

TECHO5 exists because of these projects and the people behind them.

The path here

  • EchoLocal (MIT, Yuri Gelfand): the daemon TECHO5 is built on (see Built on EchoLocal), 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.
  • @proffalken: the step-by-step install from Linux that Getting started and the cross-platform installers are based on.
  • 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.
  • @Empty2k12: the first hardware findings from an Echo Show 5 1st gen (checkers), including the recipe that made its speaker play, in pull request #2.
  • @JonGilmore: every 1st gen build tested on a real unit, two days of it. The microphones, the mute latch cutting their power, the camera and the spoken replies were all found or confirmed from what he reported.

What runs on the device

See NOTICE for licenses of code carried in this repository.

The older route: the daemon beside LineageOS (Windows, PowerShell)

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.

alexa-alternative
alpine-linux
checkers
cronos
echo-show
echo-show-5
esphome
firmware
home-assistant
linux
local-first
microwakeword
mt8163
ota-updates
privacy
voice-assistant
wake-word

Contributors

HuskerMinion

547 commits

Uthrom

34 commits

drjjr2

1 commits

Empty2k12

1 commits

Languages

Go

94.5%

Python

2.6%

Shell

2.1%