Repository navigation
feat(companion): add usb_tcp envs for V4 R8, V4 R8 TFT, V4 TFT and WSL3 - #7
Merged
Merged
Conversation
Same WITH_SNMP flag and library as the V3 and V4 OLED companions, so every non-touch Wi-Fi companion in the release set has the agent. Size vs the same tree without the flag: Paper +33,156 B flash, +344 B static RAM; Xiao +33,020 B flash, +344 B static RAM. Both start from about 40 KB more static RAM than the V3, so the docs flag them as the boards to check for free heap on hardware.
These boards only had upstream's single-transport _usb, _ble and _wifi companions. Add meshcomod multi-transport (USB + TCP + WebSocket + BLE) envs with the SNMP agent and HTTP OTA, built the same way as the V3: - heltec_v4_r8_companion_radio_usb_tcp (SSD1306, ui-new) - heltec_v4_r8_tft_companion_radio_usb_tcp (ST7789, ui-new) - heltec_v4_tft_companion_radio_usb_tcp (ST7789, ui-new; the V4 TFT without the LVGL touch UI) - Heltec_WSL3_companion_radio_usb_tcp (headless, like the Xiao) The names end in _companion_radio_usb_tcp, so build.sh bakes the manifest OTA variant and base and writes out/<env>.partsig for them, and the OTA server's suffix rule picks them up without a server change. All four use the board's default partition table (V4 family 16 MB, WSL3 8 MB), so the touch build's custom layout is never confused with the non-touch V4 TFT: partSig refuses an OTA across the two. Not added to the release list (MESHCOMOD_COMPANION_ENVS), CI or the flasher yet. Built with build.sh, not tested on hardware.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
New meshcomod multi-transport (USB + TCP + WebSocket + BLE) companion envs, each with the SNMP agent and HTTP OTA, built the same way as
Heltec_v3_companion_radio_usb_tcp:heltec_v4_r8_companion_radio_usb_tcpui-newheltec_v4_r8_tft_companion_radio_usb_tcpui-newheltec_v4_tft_companion_radio_usb_tcpui-newHeltec_WSL3_companion_radio_usb_tcpIt also carries
feat(companion): enable SNMP on Wireless Paper and Xiao S3 WIO. That commit was pushed toFeat/companion-snmpa few minutes after #4 merged, so it never reachedmain: today Paper and Xiao build without SNMP even though #4's description listed them.docs/companion_snmp.mdlists the new envs and their sizes.Why
These boards only had upstream's single-transport
_usb,_bleand_wificompanions, so they had no TCP/WebSocket clients, no SNMP and no in-firmware OTA. The receive filter was already in every companion build; this brings the rest of the meshcomod companion feature set to them.OTA
_companion_radio_usb_tcp, sobuild.sh(from feat(companion): add ota check and ota update from the OTA manifest #6) bakesOTA_VARIANT= env name andOTA_MANIFEST_BASE, and writesout/<env>.partsig. Checked: all four images contain the manifest base URL and their env name, and all four partsigs are written.default_16MB, WSL3default_8MB). The non-touchheltec_v4_tft_companion_radio_usb_tcptherefore has a different partsig fromheltec_v4_tft_companion_radio_usb_tcp_touch, soota updaterefuses to cross between them (USB flash needed), which is correct.ota urlandota startwork as on the other usb_tcp envs (esp32_otalibs andhelpers/esp32are included).Not in this PR: release, flasher and OTA server follow-ups
Until these are done the envs build locally and in
pr-build-checkonly if added there, but are not released.MESHCOMOD_COMPANION_ENVSinbuild.sh. That alone makesbuild-companion-firmwarespublish them to the GitHub Release.build.shhelp text (line 24), the comment in.github/workflows/build-companion-firmwares.yml, the companion row indocs/CI_RELEASES.md, and the board table and env list inREADME.md..github/workflows/pr-build-check.yml.<env>.bin/<env>-merged.binfrom the release assets. That repo is not here, so this is a change there.Dutch-Meshcore-Toolbox/public/community-firmware.json): its meshcomod devices point atALLFATHER-BV/meshcomodprebuilt/files, not this fork's releases. New boards only belong there if they are published where it reads from._companion_radio_usb_tcpsuffix, so new envs are served once they are in the release. The env list inmeshcomod-companion-ota-handoff.mdis documentation only. Note thatheltec_v4_tft_companion_radio_usb_tcpis a prefix ofheltec_v4_tft_companion_radio_usb_tcp_touch: the server must match env names exactly, never by prefix.prebuilt/scripts (scripts/copy-release-bins.sh,scripts/validate-prebuilt-release-folder.sh): only if that flow is still used. CI releases replaced it.How it was tested
sh build.sh build-firmware <env>withFIRMWARE_VERSION=v1.18.0.1,DISABLE_DEBUG=1, after rebasing on #6:heltec_v4_r8_companion_radio_usb_tcpheltec_v4_r8_tft_companion_radio_usb_tcpheltec_v4_tft_companion_radio_usb_tcpHeltec_WSL3_companion_radio_usb_tcpPaper and Xiao with SNMP were built before #6 landed: +33,156 B / +33,020 B flash and +344 B static RAM each against the same tree without the flag.
Not tested on hardware. Nobody here has flashed these boards with the new envs. Pin use comes from the existing
_wifienvs of the same boards.Firmware and build impact
Four new envs, and SNMP on two existing ones (Paper, Xiao). No source changes, no prefs, protocol or OTA naming change. No version bump.
Feat/companion-snmp-tier1also editsdocs/companion_snmp.md; the two branches merge cleanly in either order.No issue to close.