From c8052e90c2a8dbdf242ddc5e1e7eeab14efbc278 Mon Sep 17 00:00:00 2001 From: mikecarper Date: Wed, 22 Jul 2026 16:00:59 -0700 Subject: [PATCH] Enable onboard GPS in LoRa OTA builds --- variants/gat562_30s_mesh_kit/platformio.ini | 1 + variants/gat562_mesh_tracker_pro/platformio.ini | 1 + variants/heltec_t096/platformio.ini | 2 ++ variants/heltec_t1/platformio.ini | 1 + variants/heltec_t114/platformio.ini | 1 + variants/sensecap_solar/platformio.ini | 1 + variants/sensecap_solar/target.cpp | 11 ++++++++++- variants/wio-tracker-l1/platformio.ini | 1 + 8 files changed, 18 insertions(+), 1 deletion(-) diff --git a/variants/gat562_30s_mesh_kit/platformio.ini b/variants/gat562_30s_mesh_kit/platformio.ini index aea6cfae..d537d30c 100644 --- a/variants/gat562_30s_mesh_kit/platformio.ini +++ b/variants/gat562_30s_mesh_kit/platformio.ini @@ -56,6 +56,7 @@ extends = GAT562_30S_Mesh_Kit build_flags = ${GAT562_30S_Mesh_Kit.build_flags} ${nrf52_no_external_sensors.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build -D DISPLAY_CLASS=SSD1306Display -D ADVERT_NAME='"GAT562 Repeater"' -D ADVERT_LAT=0.0 diff --git a/variants/gat562_mesh_tracker_pro/platformio.ini b/variants/gat562_mesh_tracker_pro/platformio.ini index a2467bf2..18eeb9b3 100644 --- a/variants/gat562_mesh_tracker_pro/platformio.ini +++ b/variants/gat562_mesh_tracker_pro/platformio.ini @@ -52,6 +52,7 @@ extends = GAT562_Mesh_Tracker_Pro build_flags = ${GAT562_Mesh_Tracker_Pro.build_flags} ${nrf52_no_external_sensors.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build -D DISPLAY_CLASS=SSD1306Display -D ADVERT_NAME='"GAT562 Repeater"' -D ADVERT_LAT=0.0 diff --git a/variants/heltec_t096/platformio.ini b/variants/heltec_t096/platformio.ini index ee18d291..33a27c11 100644 --- a/variants/heltec_t096/platformio.ini +++ b/variants/heltec_t096/platformio.ini @@ -85,6 +85,7 @@ build_src_filter = ${Heltec_t096.build_src_filter} build_flags = ${Heltec_t096.build_flags} ${nrf52_no_external_sensors.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build -D ADVERT_NAME='"Heltec_t096 Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 @@ -121,6 +122,7 @@ extends = Heltec_t096 build_flags = ${Heltec_t096.build_flags} ${nrf52_no_external_sensors.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build -D ADVERT_NAME='"RS232 Bridge"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 diff --git a/variants/heltec_t1/platformio.ini b/variants/heltec_t1/platformio.ini index 00db3367..238b7027 100644 --- a/variants/heltec_t1/platformio.ini +++ b/variants/heltec_t1/platformio.ini @@ -56,6 +56,7 @@ build_src_filter = ${Heltec_t1.build_src_filter} build_flags = ${Heltec_t1.build_flags} ${nrf52_no_external_sensors.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build -D ADVERT_NAME='"Heltec_t1 Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 diff --git a/variants/heltec_t114/platformio.ini b/variants/heltec_t114/platformio.ini index d97eba8c..f6c2aca3 100644 --- a/variants/heltec_t114/platformio.ini +++ b/variants/heltec_t114/platformio.ini @@ -182,6 +182,7 @@ build_src_filter = ${Heltec_t114_with_display.build_src_filter} build_flags = ${Heltec_t114_with_display.build_flags} ${nrf52_no_external_sensors.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 diff --git a/variants/sensecap_solar/platformio.ini b/variants/sensecap_solar/platformio.ini index fc49f4e1..f0da5743 100644 --- a/variants/sensecap_solar/platformio.ini +++ b/variants/sensecap_solar/platformio.ini @@ -42,6 +42,7 @@ extends = SenseCap_Solar extra_scripts = ${nrf52_lora_ota.extra_scripts} build_flags = ${SenseCap_Solar.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS is available to repeater and LoRa-OTA builds -D ADVERT_NAME='"SenseCap_Solar Repeater"' -D ADVERT_LAT=0.0 -D ADVERT_LON=0.0 diff --git a/variants/sensecap_solar/target.cpp b/variants/sensecap_solar/target.cpp index a2687425..022e8a9b 100644 --- a/variants/sensecap_solar/target.cpp +++ b/variants/sensecap_solar/target.cpp @@ -2,6 +2,10 @@ #include "target.h" #include +#if ENV_INCLUDE_GPS + #include +#endif + SenseCapSolarBoard board; RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY, SPI); @@ -10,7 +14,13 @@ WRAPPER_CLASS radio_driver(radio, board); VolatileRTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); + +#if ENV_INCLUDE_GPS +MicroNMEALocationProvider nmea(Serial1, &rtc_clock); +EnvironmentSensorManager sensors(nmea); +#else EnvironmentSensorManager sensors; +#endif bool radio_init() { rtc_clock.begin(Wire); @@ -22,4 +32,3 @@ mesh::LocalIdentity radio_new_identity() { RadioNoiseListener rng(radio); return mesh::LocalIdentity(&rng); // create new random identity } - diff --git a/variants/wio-tracker-l1/platformio.ini b/variants/wio-tracker-l1/platformio.ini index 068c5ebd..262ce600 100644 --- a/variants/wio-tracker-l1/platformio.ini +++ b/variants/wio-tracker-l1/platformio.ini @@ -53,6 +53,7 @@ build_src_filter = ${WioTrackerL1.build_src_filter} build_flags = ${WioTrackerL1.build_flags} ${nrf52_no_external_sensors.build_flags} + -D ENV_INCLUDE_GPS=1 ; onboard GPS remains available in the lean LoRa-OTA build -D ADVERT_NAME='"WioTrackerL1 Repeater"' -D ADMIN_PASSWORD='"password"' -D MAX_NEIGHBOURS=50