Skip to content

feat(build): release LilyGo T-Echo and T-Echo Card companions - #16

Merged
Elektr0Vodka merged 3 commits into
mainfrom
Feat/techo-companion
Oct 18, 2026
Merged

Elektr0Vodka merged 3 commits into
mainfrom
Feat/techo-companion

Conversation

@Elektr0Vodka

Copy link
Copy Markdown
Owner

What

Release the LilyGo T-Echo and T-Echo Card companions from this fork:

  • LilyGo_T-Echo_companion_radio_ble / _usb join MESHCOMOD_COMPANION_ENVS.
  • LilyGo_T-Echo_Card_companion_radio_ble / _usb join it too, after a fix to the ui-tiny UI: its UITask still took the upstream 1.18 MultiSerialInterface*, while meshcomod's main.cpp passes the board's own serial interface. It now takes BaseSerialInterface* like ui-new.
  • README device table, docs/CI_RELEASES.md and changelog_ev.md updated.

Why

Both are nRF52840 boards with existing upstream envs. Like the Wio Tracker L1 (#14), they have no Wi-Fi, so they get the stock single-transport companions (one image for BLE, one for USB) with no TCP, SNMP or manifest OTA. The CAD toggle and receive filter live in the shared companion code and build in. The T-Echo uses the e-ink ui-new UI, the Card the ui-tiny UI with its CAD page.

Testing

Built locally with build.sh build-firmware (no DISABLE_DEBUG, see note):

Env Flash RAM
LilyGo_T-Echo_companion_radio_ble 402,960 B (56.5%) 111,448 B
LilyGo_T-Echo_companion_radio_usb 397,248 B (55.7%) 107,024 B
LilyGo_T-Echo_Card_companion_radio_ble 374,976 B (52.6%) 107,248 B
LilyGo_T-Echo_Card_companion_radio_usb 369,248 B (51.8%) 102,808 B

Each produces .uf2 + DFU .zip. Not tested on hardware.

Firmware and build impact

Four new release artifacts per companion release. No change to existing boards; the ui-tiny change only affects the T-Echo Card.

Note: DISABLE_DEBUG=1 breaks every nRF52 build (build.sh passes -UCFG_DEBUG, which the Adafruit core's rtos.cpp needs). The companion CI workflow does not set it, so CI is unaffected.

Merge note: this PR, the classic ESP32 fix and the 16 MB S3 boards PR all touch changelog_ev.md, and the two board PRs also touch build.sh, README and docs/CI_RELEASES.md. Whichever merges second gets rebased.

Add LilyGo_T-Echo_companion_radio_ble and _usb to the meshcomod release
list so CI builds and publishes them (.uf2 and DFU .zip). Like the Wio
Tracker L1 the T-Echo is an nRF52840 without Wi-Fi, so these are the
stock single-transport companions with no TCP, SNMP or manifest OTA.
The e-ink ui-new UI, CAD toggle and receive filter are included.

Both envs build locally: BLE uses 56.5% of flash, USB 55.7%.
ui-tiny's UITask still took a MultiSerialInterface*, the type from
upstream MeshCore 1.18. meshcomod's main.cpp passes the board's own
serial interface and ui-new takes a BaseSerialInterface*, so the
LilyGo T-Echo Card companions (the only ui-tiny users) failed with
"no matching function for call to UITask::UITask". Take the base type
like ui-new does.

Built: LilyGo_T-Echo_Card_companion_radio_ble (flash 52.6%, RAM 45.5%)
and _usb (flash 51.8%, RAM 43.7%).
Add LilyGo_T-Echo_Card_companion_radio_ble and _usb to the release
list now that ui-tiny builds again. Same single-transport nRF52840
setup as the T-Echo, with the ui-tiny UI and its CAD page.
@Elektr0Vodka
Elektr0Vodka merged commit 7ec5d44 into main Oct 18, 2026
5 checks passed
Elektr0Vodka added a commit that referenced this pull request Oct 18, 2026
After #16, #17 and #18:

- README: the multi-transport claim only holds for the Wi-Fi boards;
  add how to flash the nRF52 boards (.uf2, DFU .zip); describe nRF52
  build outputs and warn that DISABLE_DEBUG=1 breaks nRF52 builds.
- CAD toggle doc: the per-UI board examples now name the released
  boards (ui-new on the display usb_tcp boards, Wio Tracker L1 and
  T-Echo; ui-tiny on the T-Echo Card; ui-orig on the ThinkNode M7).
- Changelog: tag the Unreleased entries with the PR that landed them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant