942 lines
30 KiB
INI
942 lines
30 KiB
INI
[Heltec_lora32_v4]
|
|
extends = esp32_base
|
|
board = heltec_v4
|
|
build_flags =
|
|
${esp32_base.build_flags}
|
|
${sensor_base.build_flags}
|
|
-I variants/heltec_v4
|
|
-D HELTEC_LORA_V4
|
|
-D USE_SX1262
|
|
-D ARDUINO_USB_MODE=1 ; ARDUINO_USB_MODE in heltec_v4.json has no effect
|
|
-D ESP32_CPU_FREQ=80
|
|
-D RADIO_CLASS=CustomSX1262
|
|
-D WRAPPER_CLASS=CustomSX1262Wrapper
|
|
-D P_LORA_TX_LED=35
|
|
-D P_LORA_DIO_1=14
|
|
-D P_LORA_NSS=8
|
|
-D P_LORA_RESET=12
|
|
-D P_LORA_BUSY=13
|
|
-D P_LORA_SCLK=9
|
|
-D P_LORA_MISO=11
|
|
-D P_LORA_MOSI=10
|
|
-D P_LORA_PA_POWER=7 ; // VFEM_Ctrl -LDO power enable
|
|
-D P_LORA_GC1109_PA_EN=2 ; // CSD - GC1109 chip enable (HIGH=on)
|
|
-D P_LORA_GC1109_PA_TX_EN=46 ;// CPS - GC1109 PA mode (HIGH=full PA, LOW=bypass)
|
|
-D P_LORA_KCT8103L_PA_CSD=2
|
|
-D P_LORA_KCT8103L_PA_CTX=5
|
|
-D PIN_USER_BTN=0
|
|
-D MOMENTARY_BUTTON_WAKE_FROM_SLEEP=1
|
|
-D PIN_VEXT_EN=36
|
|
-D PIN_VEXT_EN_ACTIVE=HIGH
|
|
-D LORA_TX_POWER=22 ; Default to maximum SX1262 drive
|
|
-D MAX_LORA_TX_POWER=22 ; Max SX1262 output
|
|
-D SX126X_REGISTER_PATCH=1 ; Patch register 0x8B5 for improved RX
|
|
-D SX126X_DIO2_AS_RF_SWITCH=true ; GC1109 CTX is controlled by SX1262 DIO2
|
|
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
|
|
-D SX126X_CURRENT_LIMIT=140
|
|
-D SX126X_RX_BOOSTED_GAIN=1 ; In some cases, commenting this out will improve RX
|
|
-D PIN_GPS_RX=38
|
|
-D PIN_GPS_TX=39
|
|
-D PIN_GPS_RESET=42
|
|
-D PIN_GPS_RESET_ACTIVE=LOW
|
|
-D PIN_GPS_EN=34
|
|
-D PIN_GPS_EN_ACTIVE=LOW
|
|
-D ENV_INCLUDE_GPS=1
|
|
-D PIN_ADC_CTRL=37
|
|
-D PIN_VBAT_READ=1
|
|
build_src_filter = ${esp32_base.build_src_filter}
|
|
+<../variants/heltec_v4>
|
|
+<helpers/sensors>
|
|
lib_deps =
|
|
${esp32_base.lib_deps}
|
|
${sensor_base.lib_deps}
|
|
|
|
[heltec_v4_oled]
|
|
extends = Heltec_lora32_v4
|
|
build_flags =
|
|
${Heltec_lora32_v4.build_flags}
|
|
-D HELTEC_LORA_V4_OLED
|
|
-D PIN_BOARD_SDA=17
|
|
-D PIN_BOARD_SCL=18
|
|
; The OLED uses Wire above; the expansion/general sensor connector is 4/3.
|
|
-D ENV_PIN_SDA=4
|
|
-D ENV_PIN_SCL=3
|
|
-D PIN_OLED_RESET=21
|
|
build_src_filter= ${Heltec_lora32_v4.build_src_filter}
|
|
lib_deps = ${Heltec_lora32_v4.lib_deps}
|
|
|
|
[heltec_v4_tft]
|
|
extends = Heltec_lora32_v4
|
|
build_flags =
|
|
${Heltec_lora32_v4.build_flags}
|
|
-D HELTEC_LORA_V4_TFT
|
|
-D PIN_BOARD_SDA=4
|
|
-D PIN_BOARD_SCL=3
|
|
-D PIN_TFT_RST=18
|
|
-D PIN_TFT_VDD_CTL=-1
|
|
-D PIN_TFT_LEDA_CTL=21
|
|
-D PIN_TFT_LEDA_CTL_ACTIVE=HIGH
|
|
-D PIN_TFT_CS=15
|
|
-D PIN_TFT_DC=16
|
|
-D PIN_TFT_SCL=17
|
|
-D PIN_TFT_SDA=33
|
|
build_src_filter= ${Heltec_lora32_v4.build_src_filter}
|
|
lib_deps =
|
|
${Heltec_lora32_v4.lib_deps}
|
|
adafruit/Adafruit ST7735 and ST7789 Library @ ^1.11.0
|
|
|
|
[env:heltec_v4_repeater]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"Heltec Repeater"'
|
|
-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
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
bakercp/CRC32 @ ^2.0.0
|
|
|
|
[env:heltec_v4_repeater_legacy_partition_test]
|
|
; Deliberately retains Arduino's 1.25 MiB OTA slots for validating the
|
|
; Wi-Fi-only partition migration bridge on disposable hardware.
|
|
extends = heltec_v4_oled
|
|
board_build.partitions = default.csv
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"Heltec Repeater"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
bakercp/CRC32 @ ^2.0.0
|
|
|
|
[env:heltec_v4_expansionkit_repeater]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"Heltec Repeater"'
|
|
-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 ENV_PIN_SDA=4
|
|
-D ENV_PIN_SCL=3
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
bakercp/CRC32 @ ^2.0.0
|
|
|
|
[env:heltec_v4_repeater_bridge_espnow]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"ESPNow Bridge"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_ESPNOW_BRIDGE=1
|
|
; -D BRIDGE_DEBUG=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/bridges/ESPNowBridge.cpp>
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
[env:heltec_v4_repeater_observer_mqtt]
|
|
extends = heltec_v4_oled
|
|
extra_scripts =
|
|
${esp32_base.extra_scripts}
|
|
pre:scripts/generate_cert_bundle.py
|
|
board_ssl_cert_source = adafruit-full
|
|
board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"MQTT Observer"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_MQTT_BRIDGE=1
|
|
-D MQTT_MAX_PACKET_SIZE=1024
|
|
-D MQTT_DEBUG=1
|
|
; -D MQTT_MEMORY_DEBUG=1
|
|
; Keep default observer profile less verbose to reduce runtime contention.
|
|
; Use heltec_v4_repeater_observer_mqtt_debug for deep troubleshooting.
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
|
-D ESP32_CPU_FREQ=160
|
|
-D MQTT_WIFI_TX_POWER=WIFI_POWER_11dBm
|
|
-D WITH_SNMP=1
|
|
# -D WIFI_SSID='"ssid"'
|
|
# -D WIFI_PWD='"password"'
|
|
# -D MQTT_SERVER='"your-mqtt-broker.com"'
|
|
# -D MQTT_PORT=1883
|
|
# -D MQTT_USERNAME='"your-username"'
|
|
# -D MQTT_PASSWORD='"your-password"'
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/bridges/MQTTBridge.cpp>
|
|
+<helpers/MQTTMessageBuilder.cpp>
|
|
+<helpers/JWTHelper.cpp>
|
|
+<helpers/SNMPAgent.cpp>
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
elims/PsychicMqttClient@^0.2.4
|
|
bblanchon/ArduinoJson @ 7.4.3
|
|
arduino-libraries/NTPClient
|
|
JChristensen/Timezone
|
|
paulstoffregen/Time@1.6.1
|
|
0neblock/SNMP_Agent
|
|
|
|
[env:heltec_v4_expansionkit_repeater_observer_mqtt]
|
|
extends = heltec_v4_oled
|
|
extra_scripts =
|
|
${esp32_base.extra_scripts}
|
|
pre:scripts/generate_cert_bundle.py
|
|
board_ssl_cert_source = adafruit-full
|
|
board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"MQTT Observer"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_MQTT_BRIDGE=1
|
|
-D MQTT_MAX_PACKET_SIZE=1024
|
|
-D MQTT_DEBUG=1
|
|
; -D MQTT_MEMORY_DEBUG=1
|
|
; Keep default observer profile less verbose to reduce runtime contention.
|
|
; Use heltec_v4_repeater_observer_mqtt_debug for deep troubleshooting.
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
|
-D ESP32_CPU_FREQ=160
|
|
-D MQTT_WIFI_TX_POWER=WIFI_POWER_11dBm
|
|
-D WITH_SNMP=1
|
|
-D ENV_PIN_SDA=4
|
|
-D ENV_PIN_SCL=3
|
|
# -D WIFI_SSID='"ssid"'
|
|
# -D WIFI_PWD='"password"'
|
|
# -D MQTT_SERVER='"your-mqtt-broker.com"'
|
|
# -D MQTT_PORT=1883
|
|
# -D MQTT_USERNAME='"your-username"'
|
|
# -D MQTT_PASSWORD='"your-password"'
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/bridges/MQTTBridge.cpp>
|
|
+<helpers/MQTTMessageBuilder.cpp>
|
|
+<helpers/JWTHelper.cpp>
|
|
+<helpers/SNMPAgent.cpp>
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
elims/PsychicMqttClient@^0.2.4
|
|
bblanchon/ArduinoJson @ 7.4.3
|
|
arduino-libraries/NTPClient
|
|
JChristensen/Timezone
|
|
paulstoffregen/Time@1.6.1
|
|
0neblock/SNMP_Agent
|
|
|
|
#[env:heltec_v4_repeater_observer_mqtt_debug]
|
|
#extends = heltec_v4_oled
|
|
#extra_scripts =
|
|
# ${esp32_base.extra_scripts}
|
|
# pre:scripts/generate_cert_bundle.py
|
|
#board_ssl_cert_source = adafruit-full
|
|
#board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
#build_flags =
|
|
# ${env:heltec_v4_repeater_observer_mqtt.build_flags}
|
|
# -D MQTT_MEMORY_DEBUG=1
|
|
# -D MESH_PACKET_LOGGING=1
|
|
# -D MESH_DEBUG=1
|
|
#build_src_filter = ${env:heltec_v4_repeater_observer_mqtt.build_src_filter}
|
|
#lib_deps =
|
|
# ${env:heltec_v4_repeater_observer_mqtt.lib_deps}
|
|
|
|
#[env:heltec_v4_repeater_observer_mqtt_quiet]
|
|
#extends = heltec_v4_oled
|
|
#extra_scripts =
|
|
# ${esp32_base.extra_scripts}
|
|
# pre:scripts/generate_cert_bundle.py
|
|
#board_ssl_cert_source = adafruit-full
|
|
#board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
#build_flags =
|
|
# ${env:heltec_v4_repeater_observer_mqtt.build_flags}
|
|
#build_unflags =
|
|
# -D MQTT_DEBUG=1
|
|
# -D MQTT_MEMORY_DEBUG=1
|
|
#build_src_filter = ${env:heltec_v4_repeater_observer_mqtt.build_src_filter}
|
|
#lib_deps =
|
|
# ${env:heltec_v4_repeater_observer_mqtt.lib_deps}
|
|
|
|
#[env:heltec_v4_repeater_observer_mqtt_quiet_keepalive45]
|
|
#extends = heltec_v4_oled
|
|
#extra_scripts =
|
|
# ${esp32_base.extra_scripts}
|
|
# pre:scripts/generate_cert_bundle.py
|
|
#board_ssl_cert_source = adafruit-full
|
|
#board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
#build_flags =
|
|
# ${env:heltec_v4_repeater_observer_mqtt.build_flags}
|
|
# -D MQTT_FORCE_KEEPALIVE_45=1
|
|
#build_unflags =
|
|
# -D MQTT_DEBUG=1
|
|
# -D MQTT_MEMORY_DEBUG=1
|
|
#build_src_filter = ${env:heltec_v4_repeater_observer_mqtt.build_src_filter}
|
|
#lib_deps =
|
|
# ${env:heltec_v4_repeater_observer_mqtt.lib_deps}
|
|
|
|
[env:heltec_v4_room_server_observer_mqtt]
|
|
extends = heltec_v4_oled
|
|
extra_scripts =
|
|
${esp32_base.extra_scripts}
|
|
pre:scripts/generate_cert_bundle.py
|
|
board_ssl_cert_source = adafruit-full
|
|
board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"Heltec Room Observer"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D ROOM_PASSWORD='"hello"'
|
|
-D WITH_MQTT_BRIDGE=1
|
|
-D MAX_NEIGHBOURS=50
|
|
-D MQTT_MAX_PACKET_SIZE=1024
|
|
-D MQTT_DEBUG=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
|
-D ESP32_CPU_FREQ=160
|
|
-D MQTT_WIFI_TX_POWER=WIFI_POWER_11dBm
|
|
-D WITH_SNMP=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/bridges/MQTTBridge.cpp>
|
|
+<helpers/MQTTMessageBuilder.cpp>
|
|
+<helpers/JWTHelper.cpp>
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<helpers/SNMPAgent.cpp>
|
|
+<../examples/simple_room_server>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
elims/PsychicMqttClient@^0.2.4
|
|
bblanchon/ArduinoJson @ 7.4.3
|
|
arduino-libraries/NTPClient
|
|
JChristensen/Timezone
|
|
paulstoffregen/Time@1.6.1
|
|
0neblock/SNMP_Agent
|
|
|
|
[env:heltec_v4_expansionkit_room_server_observer_mqtt]
|
|
extends = heltec_v4_oled
|
|
extra_scripts =
|
|
${esp32_base.extra_scripts}
|
|
pre:scripts/generate_cert_bundle.py
|
|
board_ssl_cert_source = adafruit-full
|
|
board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"Heltec Room Observer"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D ROOM_PASSWORD='"hello"'
|
|
-D WITH_MQTT_BRIDGE=1
|
|
-D MAX_NEIGHBOURS=50
|
|
-D MQTT_MAX_PACKET_SIZE=1024
|
|
-D MQTT_DEBUG=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
|
-D ESP32_CPU_FREQ=160
|
|
-D MQTT_WIFI_TX_POWER=WIFI_POWER_11dBm
|
|
-D ENV_PIN_SDA=4
|
|
-D ENV_PIN_SCL=3
|
|
-D WITH_SNMP=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/bridges/MQTTBridge.cpp>
|
|
+<helpers/MQTTMessageBuilder.cpp>
|
|
+<helpers/JWTHelper.cpp>
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<helpers/SNMPAgent.cpp>
|
|
+<../examples/simple_room_server>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
elims/PsychicMqttClient@^0.2.4
|
|
bblanchon/ArduinoJson @ 7.4.3
|
|
arduino-libraries/NTPClient
|
|
JChristensen/Timezone
|
|
paulstoffregen/Time@1.6.1
|
|
0neblock/SNMP_Agent
|
|
|
|
[env:heltec_v4_room_server]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ADVERT_NAME='"Heltec 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
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_room_server>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
[env:heltec_v4_terminal_chat]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<../examples/simple_secure_chat/main.cpp>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_companion_radio_usb_femon]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D ENABLE_USB_INTERFACE
|
|
; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
|
|
; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_3_companion_radio_usb_femoff]
|
|
extends = env:heltec_v4_companion_radio_usb_femon
|
|
build_flags =
|
|
${env:heltec_v4_companion_radio_usb_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_companion_radio_usb]
|
|
extends = env:heltec_v4_companion_radio_usb_femon
|
|
|
|
[env:heltec_v4_companion_radio_usb_ps_femon]
|
|
extends = env:heltec_v4_companion_radio_usb_femon
|
|
|
|
[env:heltec_v4_companion_radio_usb_ps_femoff]
|
|
extends = env:heltec_v4_3_companion_radio_usb_femoff
|
|
|
|
[env:heltec_v4_companion_radio_ble_femon]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D BLE_PIN_CODE=123456 ; dynamic, random PIN
|
|
-D AUTO_SHUTDOWN_MILLIVOLTS=3400
|
|
-D BLE_DEBUG_LOGGING=1
|
|
-D OFFLINE_QUEUE_SIZE=512
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<helpers/esp32/*.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_3_companion_radio_ble_femoff]
|
|
extends = env:heltec_v4_companion_radio_ble_femon
|
|
build_flags =
|
|
${env:heltec_v4_companion_radio_ble_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_companion_radio_ble]
|
|
extends = env:heltec_v4_companion_radio_ble_femon
|
|
|
|
[env:heltec_v4_companion_radio_ble_ps_femon]
|
|
extends = env:heltec_v4_companion_radio_ble_femon
|
|
|
|
[env:heltec_v4_3_companion_radio_ble_ps_femoff]
|
|
extends = env:heltec_v4_3_companion_radio_ble_femoff
|
|
|
|
[env:heltec_v4_companion_radio_wifi_femon]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D ENABLE_WIFI_INTERFACE
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
-D WIFI_DEBUG_LOGGING=1
|
|
-D WIFI_SSID='"myssid"'
|
|
-D WIFI_PWD='"mypwd"'
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<helpers/esp32/*.cpp>
|
|
+<helpers/wifi/*.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_3_companion_radio_wifi_femoff]
|
|
extends = env:heltec_v4_companion_radio_wifi_femon
|
|
build_flags =
|
|
${env:heltec_v4_companion_radio_wifi_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_companion_radio_wifi_mqtt_femon]
|
|
extends = env:heltec_v4_companion_radio_wifi_femon
|
|
extra_scripts =
|
|
${esp32_base.extra_scripts}
|
|
pre:scripts/generate_cert_bundle.py
|
|
board_ssl_cert_source = adafruit-full
|
|
board_build.embed_files = src/certs/x509_crt_bundle.bin
|
|
build_flags =
|
|
${env:heltec_v4_companion_radio_wifi_femon.build_flags}
|
|
-D WITH_MQTT_BRIDGE=1
|
|
-D MQTT_RUNTIME_SLOT_COUNT=1
|
|
-D CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
|
|
-D ESP32_CPU_FREQ=160
|
|
-D MQTT_WIFI_TX_POWER=WIFI_POWER_11dBm
|
|
build_src_filter = ${env:heltec_v4_companion_radio_wifi_femon.build_src_filter}
|
|
+<helpers/bridges/MQTTBridge.cpp>
|
|
+<helpers/MQTTMessageBuilder.cpp>
|
|
+<helpers/JWTHelper.cpp>
|
|
lib_deps =
|
|
${env:heltec_v4_companion_radio_wifi_femon.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
elims/PsychicMqttClient@^0.2.4
|
|
bblanchon/ArduinoJson @ 7.4.3
|
|
arduino-libraries/NTPClient
|
|
JChristensen/Timezone
|
|
paulstoffregen/Time@1.6.1
|
|
|
|
[env:heltec_v4_3_companion_radio_wifi_mqtt_femoff]
|
|
extends = env:heltec_v4_companion_radio_wifi_mqtt_femon
|
|
build_flags =
|
|
${env:heltec_v4_companion_radio_wifi_mqtt_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
; Full Companion subsumes the former direct-MQTT Companion so this is the one
|
|
; canonical V4 OLED image. Arduino-ESP32 2.x exposes one USB TTY; enabling USB
|
|
; logging gives that TTY exclusively to the plaintext CLI/logging stream until
|
|
; logging is disabled again.
|
|
[env:heltec_v4_2_v4_3_companion_radio_full_femon]
|
|
extends = env:heltec_v4_companion_radio_wifi_mqtt_femon
|
|
; Marking the merged image QIO makes this V4 reset in the ROM before the
|
|
; software bootloader can start. Keep the Full image on the shared DIO policy.
|
|
board_build.flash_mode = ${esp32_s3_full.board_build.flash_mode}
|
|
build_flags =
|
|
${env:heltec_v4_companion_radio_wifi_mqtt_femon.build_flags}
|
|
-D MESHCORE_REQUIRES_COMPANION_RADIO_FULL=1
|
|
-D UI_WIFI_SETUP_HOME_PAGE=1
|
|
|
|
[env:heltec_v4_3_companion_radio_full_femoff]
|
|
extends = env:heltec_v4_3_companion_radio_wifi_mqtt_femoff
|
|
board_build.flash_mode = ${esp32_s3_full.board_build.flash_mode}
|
|
build_flags =
|
|
${env:heltec_v4_3_companion_radio_wifi_mqtt_femoff.build_flags}
|
|
-D MESHCORE_REQUIRES_COMPANION_RADIO_FULL=1
|
|
-D UI_WIFI_SETUP_HOME_PAGE=1
|
|
|
|
[env:heltec_v4_sensor]
|
|
extends = heltec_v4_oled
|
|
build_flags =
|
|
${heltec_v4_oled.build_flags}
|
|
-D ADVERT_NAME='"Heltec v4 Sensor"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D DISPLAY_CLASS=SSD1306Display
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_oled.build_src_filter}
|
|
+<helpers/ui/SSD1306Display.cpp>
|
|
+<../examples/simple_sensor>
|
|
lib_deps =
|
|
${heltec_v4_oled.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
|
|
[env:heltec_v4_tft_repeater]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
-D ADVERT_NAME='"Heltec Repeater"'
|
|
-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
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
bakercp/CRC32 @ ^2.0.0
|
|
|
|
|
|
[env:heltec_v4_tft_repeater_bridge_espnow]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
-D ADVERT_NAME='"ESPNow Bridge"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
-D MAX_NEIGHBOURS=50
|
|
-D WITH_ESPNOW_BRIDGE=1
|
|
; -D BRIDGE_DEBUG=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/bridges/ESPNowBridge.cpp>
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<../examples/simple_repeater>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
[env:heltec_v4_tft_room_server]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
-D ADVERT_NAME='"Heltec 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
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<../examples/simple_room_server>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
[env:heltec_v4_tft_terminal_chat]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=1
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<../examples/simple_secure_chat/main.cpp>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_tft_companion_radio_usb_femon]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
-D ENABLE_USB_INTERFACE
|
|
; NOTE: DO NOT ENABLE --> -D MESH_PACKET_LOGGING=1
|
|
; NOTE: DO NOT ENABLE --> -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_3_tft_companion_radio_usb_femoff]
|
|
extends = env:heltec_v4_tft_companion_radio_usb_femon
|
|
build_flags =
|
|
${env:heltec_v4_tft_companion_radio_usb_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_tft_companion_radio_ble_femon]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D BLE_PIN_CODE=123456 ; dynamic, random PIN
|
|
-D AUTO_SHUTDOWN_MILLIVOLTS=3400
|
|
-D BLE_DEBUG_LOGGING=1
|
|
-D OFFLINE_QUEUE_SIZE=512
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<helpers/esp32/*.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_3_tft_companion_radio_ble_femoff]
|
|
extends = env:heltec_v4_tft_companion_radio_ble_femon
|
|
build_flags =
|
|
${env:heltec_v4_tft_companion_radio_ble_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_expansionkit_tft_companion_radio_ble_femon]
|
|
extends = env:heltec_v4_tft_companion_radio_ble_femon
|
|
build_flags =
|
|
${env:heltec_v4_tft_companion_radio_ble_femon.build_flags}
|
|
; The TFT profile already uses Wire at the expansion I2C pins, GPIO4/3.
|
|
|
|
[env:heltec_v4_3_expansionkit_tft_companion_radio_ble_femoff]
|
|
extends = env:heltec_v4_expansionkit_tft_companion_radio_ble_femon
|
|
build_flags =
|
|
${env:heltec_v4_expansionkit_tft_companion_radio_ble_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_expansionkit_tft_companion_radio_ble_ps]
|
|
extends = env:heltec_v4_expansionkit_tft_companion_radio_ble_femon
|
|
|
|
; The expansion-kit layout has different I2C ownership from the base TFT. Its
|
|
; Full image retains that exact hardware recipe while using the common
|
|
; Arduino-ESP32 2.x single-TTY policy.
|
|
[env:heltec_v4_expansionkit_tft_companion_radio_full_femon]
|
|
extends = env:heltec_v4_expansionkit_tft_companion_radio_ble_femon
|
|
board_build.flash_mode = ${esp32_s3_full.board_build.flash_mode}
|
|
build_flags =
|
|
${env:heltec_v4_expansionkit_tft_companion_radio_ble_femon.build_flags}
|
|
-D MESHCORE_REQUIRES_COMPANION_RADIO_FULL=1
|
|
|
|
[env:heltec_v4_tft_companion_radio_wifi_femon]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-I examples/companion_radio/ui-new
|
|
-D ENABLE_WIFI_INTERFACE
|
|
-D MAX_CONTACTS=350
|
|
-D MAX_GROUP_CHANNELS=40
|
|
-D OFFLINE_QUEUE_SIZE=512
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
-D WIFI_DEBUG_LOGGING=1
|
|
-D WIFI_SSID='"myssid"'
|
|
-D WIFI_PWD='"mypwd"'
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<helpers/ui/MomentaryButton.cpp>
|
|
+<helpers/esp32/*.cpp>
|
|
+<helpers/wifi/*.cpp>
|
|
+<../examples/companion_radio/*.cpp>
|
|
+<../examples/companion_radio/ui-new/*.cpp>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
densaugeo/base64 @ ~1.4.0
|
|
|
|
[env:heltec_v4_3_tft_companion_radio_wifi_femoff]
|
|
extends = env:heltec_v4_tft_companion_radio_wifi_femon
|
|
build_flags =
|
|
${env:heltec_v4_tft_companion_radio_wifi_femon.build_flags}
|
|
-D RADIO_FEM_RXGAIN=0 ; undefined (default on), 1=on, 0=off
|
|
|
|
[env:heltec_v4_tft_companion_radio_full_femon]
|
|
extends = env:heltec_v4_tft_companion_radio_wifi_femon
|
|
board_build.flash_mode = ${esp32_s3_full.board_build.flash_mode}
|
|
build_flags =
|
|
${env:heltec_v4_tft_companion_radio_wifi_femon.build_flags}
|
|
-D MESHCORE_REQUIRES_COMPANION_RADIO_FULL=1
|
|
|
|
[env:heltec_v4_3_tft_companion_radio_full_femoff]
|
|
extends = env:heltec_v4_3_tft_companion_radio_wifi_femoff
|
|
board_build.flash_mode = ${esp32_s3_full.board_build.flash_mode}
|
|
build_flags =
|
|
${env:heltec_v4_3_tft_companion_radio_wifi_femoff.build_flags}
|
|
-D MESHCORE_REQUIRES_COMPANION_RADIO_FULL=1
|
|
|
|
[env:heltec_v4_tft_sensor]
|
|
extends = heltec_v4_tft
|
|
build_flags =
|
|
${heltec_v4_tft.build_flags}
|
|
-D ADVERT_NAME='"Heltec v4 Sensor"'
|
|
-D ADVERT_LAT=0.0
|
|
-D ADVERT_LON=0.0
|
|
-D ADMIN_PASSWORD='"password"'
|
|
; Environmental sensors use the TFT profile's Wire bus at GPIO4/3.
|
|
-D DISPLAY_CLASS=ST7789LCDDisplay
|
|
; -D MESH_PACKET_LOGGING=1
|
|
; -D MESH_DEBUG=1
|
|
build_src_filter = ${heltec_v4_tft.build_src_filter}
|
|
+<helpers/ui/ST7789LCDDisplay.cpp>
|
|
+<../examples/simple_sensor>
|
|
lib_deps =
|
|
${heltec_v4_tft.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
[env:heltec_v4_kiss_modem]
|
|
extends = Heltec_lora32_v4
|
|
build_unflags =
|
|
-DARDUINO_USB_MODE=0
|
|
build_flags =
|
|
${Heltec_lora32_v4.build_flags}
|
|
-DARDUINO_USB_MODE=1
|
|
; KISS radio2 scanning stays on the board. This narrowly opts this target
|
|
; into the guarded SX1262 RX-to-RX fast path and buffered 8 MHz SPI. The
|
|
; host-powered modem also uses the established V4 160 MHz role override;
|
|
; normal V4 images retain their lower-power 80 MHz policy.
|
|
-D MC_SX1262_FAST_PROFILE_SWITCH=1
|
|
-D MC_SX1262_FAST_FS=1
|
|
-D MC_SX1262_FAST_PACKET_CACHE=1
|
|
-D MC_SX1262_BUFFERED_RADIO_HAL=1
|
|
-D MC_SX1262_SPI_HZ=8000000
|
|
-D ESP32_CPU_FREQ=160
|
|
build_src_filter = ${Heltec_lora32_v4.build_src_filter}
|
|
+<../examples/kiss_modem/>
|
|
|
|
; Self-hosted partition migration receiver for a legacy V4 1.25 MiB slot.
|
|
; This role keeps Wi-Fi recovery and receives the exact Full repeater over LoRa.
|
|
[env:heltec_v4_partition_expander]
|
|
extends = Heltec_lora32_v4
|
|
board = heltec_v4_migrator
|
|
board_build.partitions = default.csv
|
|
board_build.flash_mode = dio
|
|
board_upload.maximum_size = 1310720
|
|
build_src_filter = ${Heltec_lora32_v4.build_src_filter}
|
|
+<../examples/partition_expander/*.cpp>
|
|
build_flags = ${Heltec_lora32_v4.build_flags}
|
|
-D MESH_MIN_RUNTIME_HEAP=100352
|
|
-D MOTA_MIGRATION_TARGET_ID=0xe792a051
|
|
; Pipeline verified OTA blocks across one request turn. The adaptive window
|
|
; starts at one and grows only after clean flights, then shrinks on loss.
|
|
-D OTA_FETCH_PIPELINE=4
|
|
lib_deps = ${Heltec_lora32_v4.lib_deps}
|
|
${esp32_ota.lib_deps}
|
|
|
|
; One-time Wi-Fi-only migration bridge for legacy Heltec V4/V4.3 OLED
|
|
; repeaters that still use Arduino's 1.25 MiB OTA slots. It is linked against
|
|
; default.csv so the existing browser updater can install it.
|
|
[env:heltec_v4_partition_migrator]
|
|
platform = platformio/espressif32@6.11.0
|
|
board = heltec_v4_migrator
|
|
framework = arduino
|
|
board_build.partitions = default.csv
|
|
; The V4's ROM/bootloader chain is reliable with DIO. The final Full image
|
|
; uses the same setting, so there is no flash-mode transition after migration.
|
|
board_build.flash_mode = dio
|
|
; The partition-table erase disables the flash cache. Native USB CDC can still
|
|
; raise a flash-backed event ISR during that interval, even after Serial.end().
|
|
; The Wi-Fi-only bridge therefore keeps CDC disabled; the final regular
|
|
; repeater build restores its normal USB serial setting.
|
|
; This standalone image runs its own Wi-Fi OTA server. Reserve the generic
|
|
; ESP32 baseline plus its always-on Wi-Fi budget in the linked-image proof.
|
|
extra_scripts =
|
|
pre:scripts/esp32_wifi_scan_fix.py
|
|
post:scripts/check_firmware_ram.py
|
|
build_flags =
|
|
-D ESP32_PLATFORM
|
|
-D MESH_MIN_RUNTIME_HEAP=100352
|
|
-I variants/heltec_v4
|
|
build_src_filter =
|
|
-<*>
|
|
+<../examples/esp32_partition_migrator>
|
|
lib_deps =
|
|
ESP32Async/AsyncTCP @ 3.5.0
|
|
ESP32Async/ESPAsyncWebServer @ 3.12.0
|
|
file://arch/esp32/AsyncElegantOTA
|
|
|
|
; LoRa-delivered first stage for an OTA-enabled heltec_v4_repeater. It keeps
|
|
; that exact old application bootable after the table change, restores its
|
|
; private identity, and returns to it for the expanded-slot LoRa update.
|
|
[env:heltec_v4_partition_migrator_lora_repeater]
|
|
extends = env:heltec_v4_partition_migrator
|
|
build_flags =
|
|
${env:heltec_v4_partition_migrator.build_flags}
|
|
-D MESHCORE_MIGRATION_RESUME_OTA=1
|
|
|
|
; Disposable-hardware harness: leaves a ten-minute Wi-Fi OTA window for
|
|
; installing the production bridge into legacy slot B. This is not a release
|
|
; profile.
|
|
[env:heltec_v4_partition_migrator_test_hold]
|
|
extends = env:heltec_v4_partition_migrator
|
|
build_flags =
|
|
${env:heltec_v4_partition_migrator.build_flags}
|
|
-D MESHCORE_MIGRATION_DELAY_MS=600000
|
|
-D MESHCORE_MIGRATION_RESTART_DELAY_MS=0
|
|
|
|
; Harness-only diagnostic: USB CDC is restored so a failed AP startup can be
|
|
; distinguished from a board which never left its bootloader. It retains
|
|
; the same ten-minute no-write window as test_hold.
|
|
[env:heltec_v4_partition_migrator_test_usb_diagnostic]
|
|
extends = env:heltec_v4_partition_migrator_test_hold
|
|
build_flags =
|
|
${env:heltec_v4_partition_migrator_test_hold.build_flags}
|
|
-DARDUINO_USB_CDC_ON_BOOT=1
|