Skip to content

feat(companion): add experimental usb_tcp envs for six more boards - #15

Merged
Elektr0Vodka merged 1 commit into
mainfrom
Feat/usb-tcp-more-boards
Oct 16, 2026
Merged

Elektr0Vodka merged 1 commit into
mainfrom
Feat/usb-tcp-more-boards

Conversation

@Elektr0Vodka

Copy link
Copy Markdown
Owner

What

Adds the meshcomod multi-transport companion (*_companion_radio_usb_tcp: USB + TCP + WebSocket + BLE, SNMP agent, manifest OTA) for six more boards and puts them in MESHCOMOD_COMPANION_ENVS, so the companion workflow builds and releases them:

Board Env Display
Heltec Wireless Tracker V2 heltec_tracker_v2_companion_radio_usb_tcp ST7735 TFT
Heltec Vision Master E213 Heltec_E213_companion_radio_usb_tcp E213 e-ink
Seeed Xiao S3 (Wio-SX1262 kit) Xiao_S3_companion_radio_usb_tcp optional SSD1306 OLED
RAK3112 RAK_3112_companion_radio_usb_tcp none
LilyGo T-ETH Elite LilyGo_TETH_Elite_sx1262_companion_radio_usb_tcp none
LilyGo T-Beam S3 Supreme T_Beam_S3_Supreme_SX1262_companion_radio_usb_tcp SH1106 OLED

All six are marked experimental in the README, which explains what has not been checked on them.

Why

These are the boards that can take the meshcomod stack without losing anything:

  • ESP32-S3: HTTPS OTA needs internal RAM with BLE and Wi-Fi up (see docs/COMPANION_OTA_MEMORY_ROOT_CAUSE.md). Classic ESP32 and C3 have less; C6 needs Arduino core 3.x, which the pinned NimBLE 1.4.3 does not support.
  • At least 8 MB flash on the board's existing partition table, so two app slots hold the ~1.6 MB image. No partition changes in this PR.
  • The display driver of the board's stock companion builds is reused (or headless, like the WSL3).

Each env is the board's stock BLE companion env plus the same meshcomod block as the V3 and Wireless Tracker usb_tcp envs. BLE_DEBUG_LOGGING is left out because Serial carries the companion protocol in these builds. The T-ETH Elite build runs over Wi-Fi; upstream has no Ethernet companion for it either, so nothing is lost there.

Not included, with reasons: the Station G2/G3 and T-Beam 1W need a default_16MB.csv partition change, the E290, W12 and RC32 use display drivers not yet used in a usb_tcp build, and the 4 MB boards (T3S3, EoRa-S3, ThinkNode M2/M5) would only fit with min_spiffs.csv and a 128 KB filesystem.

How it was tested

  • pio run for all six envs: 6 succeeded, no warnings. Flash 1.52 to 1.68 MB, static RAM 150 to 165 KB; per-env sizes in docs/companion_snmp.md.
  • bash build.sh get-meshcomod-companion-firmwares-to-build lists all six, so the release matrix picks them up.
  • Not tested on hardware: nobody working on the fork owns these boards.

Firmware and build impact

  • Six new release images per companion release (CI runtime grows by six parallel runners).
  • No change to existing envs, shared code or partition tables.
  • The PR build check still only builds V3, V4 and V4 TFT touch; these envs are first built in CI by the companion release workflow.
  • The Wireless Tracker V2 has the highest static RAM (165 KB) and no PSRAM, so it is the first board to check for free heap on hardware.

Docs: README device table and fork features row, changelog_ev.md, docs/CI_RELEASES.md, docs/companion_snmp.md.

Add the meshcomod multi-transport companion (USB + TCP + WebSocket +
BLE, SNMP agent, manifest OTA) for the Heltec Wireless Tracker V2,
Heltec Vision Master E213, Seeed Xiao S3, RAK3112, LilyGo T-ETH Elite
and LilyGo T-Beam S3 Supreme, and add them to MESHCOMOD_COMPANION_ENVS
so the matrix workflow builds and releases them.

These were picked because nothing is lost by moving them onto the
meshcomod stack: each is an ESP32-S3 (the internal RAM HTTPS OTA needs
with BLE and Wi-Fi up), has at least 8 MB flash on its existing
partition table (two app slots for the ~1.6 MB image), and reuses the
display driver of the board's stock companion builds. RAK3112 and
T-ETH Elite are headless, like the WSL3. The T-ETH Elite build runs
over Wi-Fi; upstream has no Ethernet companion for it either.
BLE_DEBUG_LOGGING is left out because Serial carries the companion
protocol in these builds.

Nobody working on the fork owns these boards, so the README marks them
experimental and lists what has not been checked. README, changelog,
CI releases and SNMP docs updated.

All six build with pio run (flash 1.52 to 1.68 MB, static RAM 150 to
165 KB, sizes in docs/companion_snmp.md); not tested on hardware.
@Elektr0Vodka
Elektr0Vodka merged commit 5c01ff2 into main Oct 16, 2026
5 checks passed
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