diff --git a/build.sh b/build.sh index 73424b5f..eb5e78bb 100755 --- a/build.sh +++ b/build.sh @@ -2696,6 +2696,12 @@ requires_dram_limited_neighbors() { # 8 KiB static reserve at 254 neighbors. Use their board-declared 50-entry # tables when the OTA manager is included. case "${1,,}" in + heltec_tracker_v1_1_repeater_observer_mqtt|\ + heltec_tracker_v2_repeater_observer_mqtt) + # The non-PSRAM Tracker's color framebuffer, MQTT/TLS and OTA leave + # insufficient runtime heap with the expanded 254-neighbor table. + # Keep the board's 50 entries in Full; retain its display and services. + if [ "$ESP32_FULL_BUILD" = "1" ]; then return 0; fi ;; heltec_t096_repeater_lora_ota_no_external_sensors|\ heltec_t1_repeater_lora_ota_no_external_sensors) return 0 ;; diff --git a/docs/releases/1.17.1.6.md b/docs/releases/1.17.1.6.md index 3153d760..04ed8163 100644 --- a/docs/releases/1.17.1.6.md +++ b/docs/releases/1.17.1.6.md @@ -105,6 +105,12 @@ Follow-up builds repair the constrained profiles without relaxing qualification: bytes, and the T1's from 72,868 to 81,844 bytes. Required startup allocations fall from 88,410 to 79,010 bytes. These are linked capacity checks, not soak measurements. Full Companion capacities are unchanged. +- Tracker v1.1 and v2 Full MQTT repeaters retain their board-defined 50 + neighbors so the color display, MQTT/TLS and OTA fit in internal RAM. + Their radio, display, sensor and update features remain enabled; ordinary + Tracker repeater and Companion capacities are unchanged. Tracker v2's + available startup heap rises from 184,640 to 222,992 bytes against the + unchanged 190,386-byte requirement. Both corrected Tracker profiles pass. - Size-failure detection keeps its temporary output log outside PlatformIO's build tree, so SCons cleanup cannot erase the evidence needed by the measured size fallback. CI exercises cleanup, ordinary compiler failures and log errors. diff --git a/test/test_release_ota_policy.sh b/test/test_release_ota_policy.sh index 37afd635..e91bff1d 100644 --- a/test/test_release_ota_policy.sh +++ b/test/test_release_ota_policy.sh @@ -69,7 +69,9 @@ for pair in Tbeam_SX1262_repeater_observer_mqtt:31 \ Tbeam_SX1276_repeater_observer_mqtt:31 \ Generic_E22_sx1262_repeater_bridge_espnow:47 \ LilyGo_TLora_V2_1_1_6_repeater_bridge_espnow:47 \ - LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt_:default; do + LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt_:default \ + heltec_tracker_v1_1_repeater_observer_mqtt:default \ + heltec_tracker_v2_repeater_observer_mqtt:default; do target=${pair%:*} rules=${pair##*:} PIO_ENV_PLATFORM_BY_NAME[$target]=ESP32_PLATFORM @@ -88,4 +90,20 @@ for pair in Tbeam_SX1262_repeater_observer_mqtt:31 \ fi done +# The Tracker correction is specific to Full MQTT repeaters. Ordinary LoRa +# repeaters and companions keep their existing capacities and services. +for target in heltec_tracker_v1_1_repeater heltec_tracker_v2_repeater \ + heltec_tracker_v2_companion_radio_full_femon; do + if requires_dram_limited_neighbors "$target"; then + fail "$target inherited an unrelated MQTT neighbor reduction" + fi +done +ESP32_FULL_BUILD=0 +for target in heltec_tracker_v1_1_repeater_observer_mqtt \ + heltec_tracker_v2_repeater_observer_mqtt; do + if requires_dram_limited_neighbors "$target"; then + fail "$target changed its non-Full neighbor policy" + fi +done + echo "test_release_ota_policy: OK"