Port the measured RXPS model without changing Cascade wire preambles or automatically enabling experimental levels. Use a spaced weighted median with bounded calibration windows, preserve packet ownership across CAD, and check actual SX126x receive mode before recovery. Preserve Cascade sleep and radio fixes, integrate the new sensor and board profiles, and correct BSEC script inheritance and the MKE UART pin conflict. Native regressions, production-method/SPI harnesses, and ESP32, nRF52, and STM32 builds pass. Hardware comparison and fault-injection validation are recorded privately.
318 lines
9.2 KiB
INI
318 lines
9.2 KiB
INI
;
|
|
; Heltec T114 without display
|
|
;
|
|
[Heltec_t114]
|
|
extends = rak4631_hw
|
|
board = heltec_t114
|
|
board_build.ldscript = boards/nrf52840_s140_v6.ld
|
|
build_flags = ${rak4631_hw.build_flags}
|
|
${sensor_base.build_flags}
|
|
-D MOTA_HW_ID='"Heltec_t114"' ; OTA hardware tag (apply refuses a .mota built for other hardware)
|
|
-I lib/nrf52/s140_nrf52_6.1.1_API/include
|
|
-I lib/nrf52/s140_nrf52_6.1.1_API/include/nrf52
|
|
-I variants/heltec_t114
|
|
-I src/helpers/ui
|
|
-D HELTEC_T114
|
|
-D NRF52_POWER_MANAGEMENT
|
|
-D P_LORA_DIO_1=20
|
|
-D P_LORA_NSS=24
|
|
-D P_LORA_RESET=25
|
|
-D P_LORA_BUSY=17
|
|
-D P_LORA_SCLK=19
|
|
-D P_LORA_MISO=23
|
|
-D P_LORA_MOSI=22
|
|
-D P_LORA_TX_LED=35
|
|
-D RADIO_CLASS=CustomSX1262
|
|
-D WRAPPER_CLASS=CustomSX1262Wrapper
|
|
-D LORA_TX_POWER=22
|
|
-D SX126X_POWER_EN=37
|
|
-D SX126X_DIO2_AS_RF_SWITCH=true
|
|
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
|
|
-D SX126X_CURRENT_LIMIT=140
|
|
-D SX126X_RX_BOOSTED_GAIN=1
|
|
-D PIN_GPS_RX=39
|
|
-D PIN_GPS_TX=37
|
|
-D PIN_GPS_EN=21
|
|
-D PIN_GPS_RESET=38
|
|
-D PIN_GPS_RESET_ACTIVE=LOW
|
|
-D ENV_PIN_SDA=PIN_WIRE1_SDA
|
|
-D ENV_PIN_SCL=PIN_WIRE1_SCL
|
|
build_src_filter = ${rak4631_hw.build_src_filter}
|
|
+<helpers/*.cpp>
|
|
+<helpers/sensors>
|
|
+<../variants/heltec_t114>
|
|
lib_deps =
|
|
${rak4631_hw.lib_deps}
|
|
${sensor_base.lib_deps}
|
|
debug_tool = jlink
|
|
upload_protocol = nrfutil
|
|
|
|
[env:Heltec_t114_without_display_repeater]
|
|
extends = Heltec_t114
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<helpers/bridges/RS232Bridge.cpp>
|
|
+<../examples/simple_repeater>
|
|
build_flags =
|
|
${Heltec_t114.build_flags}
|
|
-D ADVERT_NAME='"Heltec_T114 Repeater"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_RS232_BRIDGE=Serial2
|
|
-D WITH_RS232_BRIDGE_UART=2
|
|
-D WITH_RS232_BRIDGE_RX=9
|
|
-D WITH_RS232_BRIDGE_TX=10
|
|
-D RS232_BRIDGE_MERGED=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
|
|
[env:Heltec_t114_without_display_repeater_bridge_rs232]
|
|
extends = Heltec_t114
|
|
build_flags =
|
|
${Heltec_t114.build_flags}
|
|
-D ADVERT_NAME='"RS232 Bridge"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_RS232_BRIDGE=Serial2
|
|
-D WITH_RS232_BRIDGE_UART=2
|
|
-D WITH_RS232_BRIDGE_RX=9
|
|
-D WITH_RS232_BRIDGE_TX=10
|
|
; -D BRIDGE_DEBUG=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<helpers/bridges/RS232Bridge.cpp>
|
|
+<../examples/simple_repeater>
|
|
|
|
[env:Heltec_t114_without_display_room_server]
|
|
extends = Heltec_t114
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<../examples/simple_room_server>
|
|
build_flags =
|
|
${Heltec_t114.build_flags}
|
|
-D ADVERT_NAME='"Heltec_T114 Room"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D ROOM_PASSWORD='"hello"'
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
|
|
[env:Heltec_t114_without_display_companion_radio_ble]
|
|
extends = Heltec_t114
|
|
board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld
|
|
board_upload.maximum_size = 712704
|
|
build_flags =
|
|
${Heltec_t114.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D DISPLAY_CLASS=NullDisplayDriver
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D BLE_PIN_CODE=123456
|
|
; -D BLE_DEBUG_LOGGING=1
|
|
-D OFFLINE_QUEUE_SIZE=256
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<helpers/ui/NullDisplayDriver.cpp>
|
|
+<helpers/nrf52/SerialBLEInterface.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${Heltec_t114.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:Heltec_t114_without_display_companion_radio_usb]
|
|
extends = Heltec_t114
|
|
board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld
|
|
board_upload.maximum_size = 712704
|
|
build_flags =
|
|
${Heltec_t114.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D DISPLAY_CLASS=NullDisplayDriver
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D ENABLE_USB_INTERFACE
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<helpers/nrf52/*.cpp>
|
|
+<helpers/ui/NullDisplayDriver.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${Heltec_t114.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
;
|
|
; Heltec T114 with ST7789 display
|
|
;
|
|
[Heltec_t114_with_display]
|
|
extends = Heltec_t114
|
|
board = heltec_t114
|
|
board_build.ldscript = boards/nrf52840_s140_v6.ld
|
|
build_flags = ${Heltec_t114.build_flags}
|
|
-D ST7789
|
|
-D HELTEC_T114_WITH_DISPLAY
|
|
-D DISPLAY_CLASS=ST7789Display
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<helpers/ui/ST7789Display.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<helpers/ui/OLEDDisplay.cpp>
|
|
+<helpers/ui/OLEDDisplayFonts.cpp>
|
|
lib_deps =
|
|
${Heltec_t114.lib_deps}
|
|
adafruit/Adafruit SSD1306 @ ^2.5.13
|
|
debug_tool = jlink
|
|
upload_protocol = nrfutil
|
|
|
|
[env:Heltec_t114_repeater]
|
|
extends = Heltec_t114_with_display
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<helpers/bridges/RS232Bridge.cpp>
|
|
+<../examples/simple_repeater>
|
|
|
|
build_flags =
|
|
${Heltec_t114_with_display.build_flags}
|
|
-UENABLE_OTA
|
|
-D DISABLE_LORA_OTA=1 ; Full external-sensor build exceeds the in-place OTA ceiling
|
|
-D ADVERT_NAME='"Heltec_T114 Repeater"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_RS232_BRIDGE=Serial2
|
|
-D WITH_RS232_BRIDGE_UART=2
|
|
-D WITH_RS232_BRIDGE_RX=9
|
|
-D WITH_RS232_BRIDGE_TX=10
|
|
-D RS232_BRIDGE_MERGED=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
; -D POWERSAVING_DEBUG=1
|
|
|
|
; Explicit lean alternative to the full-sensor, non-OTA repeater above.
|
|
[env:Heltec_t114_repeater_lora_ota_no_external_sensors]
|
|
extends = Heltec_t114_with_display
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<helpers/bridges/RS232Bridge.cpp>
|
|
+<../examples/simple_repeater>
|
|
build_flags =
|
|
${Heltec_t114_with_display.build_flags}
|
|
${nrf52_no_external_sensors_keep_gps.build_flags}
|
|
-D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build
|
|
-D ADVERT_NAME='"Heltec_T114 Repeater"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_RS232_BRIDGE=Serial2
|
|
-D WITH_RS232_BRIDGE_UART=2
|
|
-D WITH_RS232_BRIDGE_RX=9
|
|
-D WITH_RS232_BRIDGE_TX=10
|
|
-D RS232_BRIDGE_MERGED=1
|
|
lib_deps =
|
|
${nrf52_lora_ota.lib_deps}
|
|
${nrf52_no_external_sensors_keep_gps.lib_deps}
|
|
adafruit/Adafruit SSD1306 @ ^2.5.13
|
|
|
|
[env:Heltec_t114_repeater_bridge_rs232]
|
|
extends = Heltec_t114
|
|
build_flags =
|
|
${Heltec_t114.build_flags}
|
|
-D ADVERT_NAME='"RS232 Bridge"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_RS232_BRIDGE=Serial2
|
|
-D WITH_RS232_BRIDGE_UART=2
|
|
-D WITH_RS232_BRIDGE_RX=9
|
|
-D WITH_RS232_BRIDGE_TX=10
|
|
; -D BRIDGE_DEBUG=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<helpers/bridges/RS232Bridge.cpp>
|
|
+<../examples/simple_repeater>
|
|
|
|
[env:Heltec_t114_room_server]
|
|
extends = Heltec_t114_with_display
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<../examples/simple_room_server>
|
|
build_flags =
|
|
${Heltec_t114_with_display.build_flags}
|
|
-D ADVERT_NAME='"Heltec_T114 Room"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D ROOM_PASSWORD='"hello"'
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
|
|
[env:Heltec_t114_companion_radio_ble]
|
|
extends = Heltec_t114_with_display
|
|
board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld
|
|
board_upload.maximum_size = 712704
|
|
build_flags =
|
|
${Heltec_t114_with_display.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D BLE_PIN_CODE=123456
|
|
-D ENV_INCLUDE_GPS=1 ; enable the GPS page in UI
|
|
; -D BLE_DEBUG_LOGGING=1
|
|
-D OFFLINE_QUEUE_SIZE=256
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
; -D POWERSAVING_DEBUG=1
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<helpers/nrf52/SerialBLEInterface.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${Heltec_t114_with_display.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:Heltec_t114_companion_radio_usb]
|
|
extends = Heltec_t114_with_display
|
|
board_build.ldscript = boards/nrf52840_s140_v6_extrafs.ld
|
|
board_upload.maximum_size = 712704
|
|
build_flags =
|
|
${Heltec_t114_with_display.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D ENABLE_USB_INTERFACE
|
|
; -D BLE_PIN_CODE=123456
|
|
; -D BLE_DEBUG_LOGGING=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<helpers/nrf52/*.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${Heltec_t114_with_display.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:Heltec_t114_kiss_modem]
|
|
extends = Heltec_t114
|
|
build_src_filter = ${Heltec_t114.build_src_filter}
|
|
+<../examples/kiss_modem/>
|
|
|
|
[env:Heltec_t114_sensor]
|
|
extends = Heltec_t114_with_display
|
|
build_src_filter = ${Heltec_t114_with_display.build_src_filter}
|
|
+<../examples/simple_sensor>
|
|
build_flags =
|
|
${Heltec_t114_with_display.build_flags}
|
|
-D ADVERT_NAME='"Heltec_T114 Sensor"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
; -D POWERSAVING_DEBUG=1
|