diff --git a/build.sh b/build.sh index 3ef1eaa3..112ac43c 100755 --- a/build.sh +++ b/build.sh @@ -2142,7 +2142,7 @@ run_logging_matrix_build_targets() { fi if [ ${#constrained_logging_targets[@]} -gt 0 ]; then - echo "Building ${#constrained_logging_targets[@]} 224KB STM32 repeater target(s) with packet logging on and MESH_DEBUG off to fit flash: Tiny_Relay_repeater, RAK_3x72_repeater, wio-e5_repeater." + echo "Building ${#constrained_logging_targets[@]} size-constrained STM32 target(s) with packet logging on and MESH_DEBUG off to fit flash." MESHDEBUG_OVERRIDE="off" PACKET_LOGGING_OVERRIDE="on" MQTT_BRIDGE_OVERRIDE="off" diff --git a/platformio.ini b/platformio.ini index f8ab7596..4e48eff9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -195,6 +195,15 @@ lib_deps = adafruit/Adafruit BME680 Library @ ^2.0.4 adafruit/Adafruit BMP085 Library @ ^1.2.4 +; The VL53L0X and BME680/BSEC stacks prevent some nRF52840 repeater images from fitting +; the safe in-place LoRa OTA window. Space-constrained targets retain GPS, the other +; environmental sensors, and board-native telemetry while omitting these optional sensors. +[nrf52_ota_sensor_trim] +build_flags = + -UENV_INCLUDE_VL53L0X + -UENV_INCLUDE_BME680 + -UENV_INCLUDE_BME680_BSEC + ; ----------------- TESTING --------------------- [env:native] diff --git a/variants/gat562_30s_mesh_kit/platformio.ini b/variants/gat562_30s_mesh_kit/platformio.ini index d8d19d8c..0eb2209d 100644 --- a/variants/gat562_30s_mesh_kit/platformio.ini +++ b/variants/gat562_30s_mesh_kit/platformio.ini @@ -36,6 +36,7 @@ lib_deps = extends = GAT562_30S_Mesh_Kit build_flags = ${GAT562_30S_Mesh_Kit.build_flags} + ${nrf52_ota_sensor_trim.build_flags} -D DISPLAY_CLASS=SSD1306Display -D ADVERT_NAME='"GAT562 Repeater"' -D ADVERT_LAT=0.0 diff --git a/variants/heltec_t114/platformio.ini b/variants/heltec_t114/platformio.ini index 8ecfdfc3..a470a36b 100644 --- a/variants/heltec_t114/platformio.ini +++ b/variants/heltec_t114/platformio.ini @@ -164,6 +164,7 @@ build_src_filter = ${Heltec_t114_with_display.build_src_filter} build_flags = ${Heltec_t114_with_display.build_flags} + ${nrf52_ota_sensor_trim.build_flags} -D ADVERT_NAME='"Heltec_T114 Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 diff --git a/variants/lilygo_tlora_v2_1/dual_ota_1984k.csv b/variants/lilygo_tlora_v2_1/dual_ota_1984k.csv new file mode 100644 index 00000000..674eba1f --- /dev/null +++ b/variants/lilygo_tlora_v2_1/dual_ota_1984k.csv @@ -0,0 +1,6 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x5000, +otadata, data, ota, 0xe000, 0x2000, +app0, app, ota_0, 0x10000, 0x1F0000, +app1, app, ota_1, 0x200000,0x1F0000, +spiffs, data, spiffs, 0x3F0000,0x10000, diff --git a/variants/lilygo_tlora_v2_1/platformio.ini b/variants/lilygo_tlora_v2_1/platformio.ini index 963ab0bf..78443265 100644 --- a/variants/lilygo_tlora_v2_1/platformio.ini +++ b/variants/lilygo_tlora_v2_1/platformio.ini @@ -147,6 +147,8 @@ lib_deps = ; Set extra slots to "none" (e.g. set mqtt2.preset none). See MQTT_IMPLEMENTATION.md. [env:LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt] extends = LilyGo_TLora_V2_1_1_6_core +; Preserve two OTA app slots while reclaiming coredump/half of SPIFFS for the MQTT repeater image. +board_build.partitions = variants/lilygo_tlora_v2_1/dual_ota_1984k.csv extra_scripts = ${esp32_base.extra_scripts} pre:scripts/generate_cert_bundle.py diff --git a/variants/rak3x72/platformio.ini b/variants/rak3x72/platformio.ini index 8795c79d..bbbeec9c 100644 --- a/variants/rak3x72/platformio.ini +++ b/variants/rak3x72/platformio.ini @@ -16,8 +16,10 @@ build_src_filter = ${stm32_base.build_src_filter} [env:RAK_3x72_repeater] extends = rak3x72 +board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS build_flags = ${rak3x72.build_flags} -flto + -D LFS_FLASH_TOTAL_SIZE=16384 -D ADVERT_NAME='"RAK3x72 Repeater"' -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50 diff --git a/variants/rak4631/platformio.ini b/variants/rak4631/platformio.ini index ded500e0..30c74795 100644 --- a/variants/rak4631/platformio.ini +++ b/variants/rak4631/platformio.ini @@ -109,6 +109,7 @@ lib_deps = extends = rak4631 build_flags = ${rak4631.build_flags} + ${nrf52_ota_sensor_trim.build_flags} -D DISPLAY_CLASS=SSD1306Display -D ADVERT_NAME='"RS232 Bridge"' -D ADVERT_LAT=0.0 @@ -132,6 +133,7 @@ build_src_filter = ${rak4631.build_src_filter} extends = rak4631 build_flags = ${rak4631.build_flags} + ${nrf52_ota_sensor_trim.build_flags} -D DISPLAY_CLASS=SSD1306Display -D ADVERT_NAME='"RS232 Bridge"' -D ADVERT_LAT=0.0 diff --git a/variants/tiny_relay/platformio.ini b/variants/tiny_relay/platformio.ini index 6ba8aa28..d4ed4da4 100644 --- a/variants/tiny_relay/platformio.ini +++ b/variants/tiny_relay/platformio.ini @@ -17,8 +17,10 @@ build_src_filter = ${stm32_base.build_src_filter} [env:Tiny_Relay_repeater] extends = Tiny_Relay +board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS build_flags = ${Tiny_Relay.build_flags} - -flto ; this 224 KiB target otherwise has no room for current repeater safety features + -flto ; retain headroom for current repeater safety features + -D LFS_FLASH_TOTAL_SIZE=16384 -D ADVERT_NAME='"tiny_relay Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 diff --git a/variants/wio-e5-dev/platformio.ini b/variants/wio-e5-dev/platformio.ini index 61878dda..8af9651b 100644 --- a/variants/wio-e5-dev/platformio.ini +++ b/variants/wio-e5-dev/platformio.ini @@ -17,8 +17,10 @@ build_src_filter = ${stm32_base.build_src_filter} [env:wio-e5_repeater] extends = lora_e5 +board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS build_flags = ${lora_e5.build_flags} -flto + -D LFS_FLASH_TOTAL_SIZE=16384 -D LORA_TX_POWER=22 -D ADVERT_NAME='"WIO-E5 Repeater"' -D ADMIN_PASSWORD='"password"' @@ -28,8 +30,10 @@ build_src_filter = ${lora_e5.build_src_filter} [env:wio-e5-repeater_bridge_rs232] extends = lora_e5 +board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS build_flags = ${lora_e5.build_flags} -flto + -D LFS_FLASH_TOTAL_SIZE=16384 -D MESH_ENABLE_RECENT_REPEATERS=1 -D LORA_TX_POWER=22 -D ADVERT_NAME='"WIO-E5 Repeater"' diff --git a/variants/wio-e5-mini/platformio.ini b/variants/wio-e5-mini/platformio.ini index bbd69a55..61ec2a13 100644 --- a/variants/wio-e5-mini/platformio.ini +++ b/variants/wio-e5-mini/platformio.ini @@ -19,8 +19,10 @@ lib_deps = ${stm32_base.lib_deps} [env:wio-e5-mini_repeater] extends = lora_e5_mini +board_upload.maximum_size = 245760 ; 240 KiB app, 16 KiB LittleFS build_flags = ${lora_e5_mini.build_flags} -flto + -D LFS_FLASH_TOTAL_SIZE=16384 -D MESH_ENABLE_RECENT_REPEATERS=1 -D LORA_TX_POWER=22 -D ADVERT_NAME='"wio-e5-mini Repeater"'