Help us shape the future of Go! Take the 2026 Go Developer Survey

techo5

module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2026 License: MIT

README

TECHO5

Buy Me a Coffee

Tech Echo 5 — an open, local-only firmware project for the Amazon Echo Show 5 (2nd generation, 2021, codename cronos).

The goal is a leaner and more capable replacement for the stock Alexa software: a Home Assistant voice satellite with an on-device wake word, a native media_player, and a dashboard display, with nothing leaving the house.

Why

The Echo Show 5 is a 5.5-inch touchscreen, a far-field microphone array, a speaker and a MediaTek MT8163 in a nice enclosure. Once the bootloader is unlocked it is a small Linux computer that only needs three jobs done well:

  1. hear a wake word and stream audio to Home Assistant Assist,
  2. play speech and music,
  3. show a dashboard.

Android is a lot of machinery for that. TECHO5 aims to do those jobs with a small daemon and a kiosk, keep the hardware fully local, and stay easy to update.

Status

Early, but talking. The ported daemon (echod/) runs on a Show as an init service beside LineageOS, appears in Home Assistant as an ESPHome voice satellite, and completes voice turns: wake word on the device, transcription and reply through Home Assistant, speech from the speaker. The next step is a Linux-only image where the daemon also owns the screen; see docs/porting-plan.md.

For daily use the working path on this hardware is still:

That works, but it is Android underneath. The plan in docs/porting-plan.md is to replace the Android layers step by step, starting with the voice path.

Installing on a Show

On a cronos unit already running LineageOS 18.1 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.

Approach

EchoLocal (MIT) 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 intends to bring that daemon to cronos and add the display layer it does not have, rather than port a whole Linux distribution first.

See:

Name

TECHO5 reads as "Tech Echo 5": the Echo hardware lineage and the 5.5-inch form factor. Style it TECHO5 or tEcho5.

License

MIT. See LICENSE.

TECHO5 is not affiliated with Amazon. Echo and Alexa are trademarks of Amazon.com, Inc.

Directories

Path Synopsis
cmd
audioprobe command
audioprobe proves raw capture and playback on the Echo Show 5 (cronos) without the vendor audio HAL: it records from the TLV320AIC3101 capture device, reports per-channel levels, writes a WAV, and plays a tone (or the recording) through the MAX98396 playback device.
audioprobe proves raw capture and playback on the Echo Show 5 (cronos) without the vendor audio HAL: it records from the TLV320AIC3101 capture device, reports per-channel levels, writes a WAV, and plays a tone (or the recording) through the MAX98396 playback device.
btbridge command
btbridge makes the MediaTek Bluetooth driver's raw H4 channel (/dev/stpbt, from the vendor mt76x8_bt module) look like a Linux HCI device by copying packets both ways through the kernel's virtual HCI driver (/dev/vhci, CONFIG_BT_HCIVHCI).
btbridge makes the MediaTek Bluetooth driver's raw H4 channel (/dev/stpbt, from the vendor mt76x8_bt module) look like a Linux HCI device by copying packets both ways through the kernel's virtual HCI driver (/dev/vhci, CONFIG_BT_HCIVHCI).
dispprobe command
dispprobe paints a test picture on the Echo Show 5's panel through the MediaTek display controller (see internal/mtkdisp).
dispprobe paints a test picture on the Echo Show 5's panel through the MediaTek display controller (see internal/mtkdisp).
fbprobe command
fbprobe draws straight to the Echo Show 5's framebuffer: a background, colour bars and large text, rotated for the landscape orientation the device is used in.
fbprobe draws straight to the Echo Show 5's framebuffer: a background, colour bars and large text, rotated for the landscape orientation the device is used in.
rebootto command
rebootto reboots with a MediaTek boot-mode argument, the way Android's `reboot bootloader` / `reboot recovery` do: the kernel's arch_reset marks the target mode in the RTC spare register so LK boots into it.
rebootto reboots with a MediaTek boot-mode argument, the way Android's `reboot bootloader` / `reboot recovery` do: the kernel's arch_reset marks the target mode in the RTC spare register so LK boots into it.
echod module
internal
alsa
Package alsa captures PCM audio by driving the /dev/snd ioctl interface directly.
Package alsa captures PCM audio by driving the /dev/snd ioctl interface directly.
mtkdisp
Package mtkdisp drives the MediaTek display controller on the Echo Show 5 (MT8163, "cronos") the way Android's hardware composer does: a display session on /dev/mtk_disp_mgr, pixel buffers from the ION multimedia heap, and one overlay layer pointed at a buffer per frame.
Package mtkdisp drives the MediaTek display controller on the Echo Show 5 (MT8163, "cronos") the way Android's hardware composer does: a display session on /dev/mtk_disp_mgr, pixel buffers from the ION multimedia heap, and one overlay layer pointed at a buffer per frame.
tools
wavstats command
wavstats reports per-channel levels and how alike channels are, for the multichannel WAVs that audioprobe writes.
wavstats reports per-channel levels and how alike channels are, for the multichannel WAVs that audioprobe writes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL