Skip to content

Repeater and room server: build again with the one-palette display API - #61

Merged
B0N3-GD merged 1 commit into
mainfrom
fix/repeater-room-display-palette
Oct 15, 2026
Merged

B0N3-GD merged 1 commit into
mainfrom
fix/repeater-room-display-palette

Conversation

@B0N3-GD

@B0N3-GD B0N3-GD commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

The repeater and room-server envs with a display stopped compiling at the 1.17 merge. meshcomod's extended UIs for them still used DisplayDriver::LIGHT/GREEN/RED/..., but upstream replaced that enum with UIColor roles in b8504e5. The companion was ported at the time; these two UIs were not. meshcomod only releases companion firmware, so nothing noticed.

Changes

  • Palette port. Both UIs now use the same roles the companion OLED UI uses for the same pages: page titles corp_blue, content primary_txt, problems and waiting states warning_txt, the alert overlay popup_bkg/popup_txt, and the OTA bar background window_bkg. On the mono OLEDs every role except the backgrounds is "on", so they look as before. On TFT and e-ink they pick up the shared theme.
  • repeater_tcp passes the board to UITask. Its constructor gained that parameter upstream in 2efb3af (poweroff on long press), and this main was never updated.
  • esp32_base also compiles SdNvsPrefs.cpp. It already compiled WifiRuntimeStore.cpp for every ESP32 env, but that store has used SdNvsPrefs since beta_17. Envs that don't pull in helpers/esp32/*.cpp (repeater_tcp) failed to link. build_as_lib.py already drops the file for wadamesh's vendored build. It costs 414 bytes on a C3 repeater.
  • Room server UITask::begin. Drops the version-string block the 1.17 merge appended after ours. On boards without a user button it redeclared version (Xiao S3 WIO did not compile). On multitransport builds it overwrote the version string the splash expects.

Verification

Built and passing:

  • heltec_v4_repeater, heltec_v4_repeater_tcp, heltec_v4_tft_repeater_tcp
  • Heltec_v3_repeater, Heltec_v3_repeater_tcp
  • heltec_v4_room_server_multitransport, heltec_v4_tft_room_server_multitransport, Heltec_v3_room_server_multitransport, Heltec_Wireless_Paper_room_server_multitransport, Xiao_S3_WIO_room_server_multitransport
  • Companion regression check: heltec_v4_companion_radio_usb_tcp and ThinkNode_M7_companion_radio_ble

Also test-merged with #60 (MeshCore v1.18): there are no conflicts, and heltec_v4_repeater_tcp, heltec_v4_room_server_multitransport and Heltec_v3_repeater build on the merged tree. The two PRs can land in either order.

Not tested on hardware. I don't have a repeater or room server running here.

Still broken, not from this change

These are upstream boards meshcomod doesn't ship:

  • The Xiao C3 repeater and room server are about 15 to 20 KB over their 1.25 MB app partition, with or without this change.
  • The Xiao C6 fails inside the ESP-IDF Bluetooth headers when NimBLE 1.4.3 builds on Arduino core 3.x.

🤖 Generated with Claude Code

The repeater and room-server envs with a display stopped compiling at the
1.17 merge: meshcomod's extended UIs still used DisplayDriver::LIGHT/GREEN/
RED/... after upstream replaced that enum with UIColor roles (b8504e5).

- Port both UIs to the roles the companion OLED UI uses for the same pages:
  titles corp_blue, content primary_txt, problems warning_txt, the alert
  overlay popup_bkg/popup_txt, the OTA bar background window_bkg.
- repeater_tcp: pass the board to UITask, whose constructor gained it
  upstream in 2efb3af (poweroff on long press).
- esp32_base also compiles SdNvsPrefs.cpp. It compiled WifiRuntimeStore.cpp
  for every ESP32 env, but that store has used SdNvsPrefs since beta_17, so
  envs without helpers/esp32/*.cpp (repeater_tcp) failed to link.
  build_as_lib.py already drops it for wadamesh's vendored build.
- Room server UITask::begin: drop the version-string block the 1.17 merge
  appended after ours. It redeclared `version` on boards without a user
  button and overwrote the multitransport version string elsewhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@B0N3-GD
B0N3-GD merged commit 8aba438 into main Oct 15, 2026
4 checks passed
@B0N3-GD
B0N3-GD deleted the fix/repeater-room-display-palette branch October 15, 2026 14:42
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