From fd3781002251aa1ef9cd99a4f0883aa160059474 Mon Sep 17 00:00:00 2001 From: cod3doomy Date: Mon, 19 May 2025 12:55:56 -0700 Subject: [PATCH 01/13] t-beam supreme: display fix, BME add, user btn fix -Fixed build issues after display refactor -Added BME280 support and updated SensorManager to include this data -Fixed user button and verified it turns the display on --- .gitignore | 1 + src/helpers/SensorManager.h | 4 +- src/helpers/TBeamS3SupremeBoard.h | 4 +- .../platformio.ini | 7 +- .../lilygo_tbeam_supreme_SX1262/target.cpp | 78 +++++++++++++++++-- variants/lilygo_tbeam_supreme_SX1262/target.h | 5 ++ 6 files changed, 89 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 51449c2d..7ca9335a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ out/ .direnv/ .DS_Store .vscode/settings.json +.vscode/extensions.json diff --git a/src/helpers/SensorManager.h b/src/helpers/SensorManager.h index 0e4bc27d..f48c2a7b 100644 --- a/src/helpers/SensorManager.h +++ b/src/helpers/SensorManager.h @@ -10,10 +10,10 @@ class SensorManager { public: - double node_lat, node_lon; // modify these, if you want to affect Advert location + double node_lat, node_lon, node_temp, node_hum, node_pres; // modify these, if you want to affect Advert location double node_altitude; // altitude in meters - SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0; } + SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0; node_temp = 0; node_hum = 0; node_pres = 0;} virtual bool begin() { return false; } virtual bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { return false; } virtual void loop() { } diff --git a/src/helpers/TBeamS3SupremeBoard.h b/src/helpers/TBeamS3SupremeBoard.h index 74d9ca2e..9bc9a83d 100644 --- a/src/helpers/TBeamS3SupremeBoard.h +++ b/src/helpers/TBeamS3SupremeBoard.h @@ -22,7 +22,7 @@ #define PIN_BOARD_SCL1 41 //SCL for PMU and PFC8563 (RTC) #define PIN_PMU_IRQ 40 //IRQ pin for PMU -#define PIN_USER_BTN 0 +//#define PIN_USER_BTN 0 #define P_BOARD_SPI_MOSI 35 //SPI for SD Card and QMI8653 (IMU) #define P_BOARD_SPI_MISO 37 //SPI for SD Card and QMI8653 (IMU) @@ -55,7 +55,9 @@ class TBeamS3SupremeBoard : public ESP32Board { XPowersAXP2101 PMU; public: #ifdef MESH_DEBUG + void scanDevices(TwoWire *w); void printPMU(); + void printBMEValues(); #endif bool power_init(); diff --git a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini index d3447673..5ab9fedc 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini +++ b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini @@ -8,18 +8,21 @@ build_flags = -D P_LORA_TX_LED=6 -D PIN_BOARD_SDA=17 -D PIN_BOARD_SCL=18 + -D PIN_USER_BTN=0 -D RADIO_CLASS=CustomSX1262 -D WRAPPER_CLASS=CustomSX1262Wrapper - ;-D DISPLAY_CLASS=SSD1306Display ;Needs to be modified for SH1106 + -D DISPLAY_CLASS=SH1106Display -D SX126X_RX_BOOSTED_GAIN=1 build_src_filter = ${esp32_base.build_src_filter} +<../variants/lilygo_tbeam_supreme_SX1262> + + board_build.partitions = min_spiffs.csv ; get around 4mb flash limit lib_deps = ${esp32_base.lib_deps} lewisxhe/XPowersLib @ ^0.2.7 - ;adafruit/Adafruit SSD1306 @ ^2.5.13 + adafruit/Adafruit SH110X @ ^2.1.13 stevemarple/MicroNMEA @ ^2.0.6 + adafruit/Adafruit BME280 Library @ ^2.3.0 ; === LILYGO T-Beam S3 Supreme with SX1262 environments === [env:T_Beam_S3_Supreme_SX1262_repeater] diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.cpp b/variants/lilygo_tbeam_supreme_SX1262/target.cpp index f5b7080b..97fd8c76 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.cpp +++ b/variants/lilygo_tbeam_supreme_SX1262/target.cpp @@ -1,10 +1,16 @@ #include #include "target.h" #include +#include TBeamS3SupremeBoard board; +#ifdef DISPLAY_CLASS + DISPLAY_CLASS display; +#endif + bool pmuIntFlag; +//#define SEALEVELPRESSURE_HPA (1013.25) #ifndef LORA_CR #define LORA_CR 5 @@ -23,6 +29,7 @@ ESP32RTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1); TbeamSupSensorManager sensors = TbeamSupSensorManager(nmea); +Adafruit_BME280 bme; static void setPMUIntFlag(){ pmuIntFlag = true; @@ -46,7 +53,7 @@ void scanDevices(TwoWire *w) switch (addr) { case 0x77: case 0x76: - Serial.println("\tFound BMX280 Sensor"); + Serial.println("\tFound BME280 Sensor"); deviceOnline |= BME280_ONLINE; break; case 0x34: @@ -107,6 +114,26 @@ void TBeamS3SupremeBoard::printPMU() Serial.println(); } +void printBMEValues() { + Serial.print("Temperature = "); + Serial.print(bme.readTemperature()); + Serial.println(" *C"); + + Serial.print("Pressure = "); + + Serial.print(bme.readPressure() / 100.0F); + Serial.println(" hPa"); + + Serial.print("Approx. Altitude = "); + Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA)); + Serial.println(" m"); + + Serial.print("Humidity = "); + Serial.print(bme.readHumidity()); + Serial.println(" %"); + + Serial.println(); +} #endif bool TBeamS3SupremeBoard::power_init() @@ -289,6 +316,10 @@ bool radio_init() { fallback_clock.begin(); rtc_clock.begin(Wire1); + + // #ifdef MESH_DEBUG + // printBMEValues(); + // #endif #ifdef SX126X_DIO3_TCXO_VOLTAGE float tcxo = SX126X_DIO3_TCXO_VOLTAGE; @@ -340,8 +371,14 @@ void TbeamSupSensorManager::sleep_gps() { } bool TbeamSupSensorManager::begin() { + //init BME280 + if (! bme.begin(0x77, &Wire)) { + MESH_DEBUG_PRINTLN("Could not find a valid BME280 sensor, check wiring!"); + } + else + MESH_DEBUG_PRINTLN("BME280 found and init!"); + // init GPS port - Serial1.begin(GPS_BAUD_RATE, SERIAL_8N1, P_GPS_RX, P_GPS_TX); bool result = false; @@ -359,22 +396,53 @@ bool TbeamSupSensorManager::querySensors(uint8_t requester_permissions, CayenneL if (requester_permissions & TELEM_PERM_LOCATION) { // does requester have permission? telemetry.addGPS(TELEM_CHANNEL_SELF, node_lat, node_lon, node_altitude); } + if (requester_permissions & TELEM_PERM_ENVIRONMENT) { // does requester have permission? + telemetry.addTemperature(TELEM_CHANNEL_SELF, node_temp); + telemetry.addRelativeHumidity(TELEM_CHANNEL_SELF, node_hum); + telemetry.addBarometricPressure(TELEM_CHANNEL_SELF, node_pres); + //telemetry.addAltitude(TELEM_CHANNEL_SELF, node_alt); + } return true; } void TbeamSupSensorManager::loop() { - static long next_gps_update = 0; + static long next_update = 0; _nmea->loop(); - if (millis() > next_gps_update) { + if (millis() > next_update) { if (_nmea->isValid()) { node_lat = ((double)_nmea->getLatitude())/1000000.; node_lon = ((double)_nmea->getLongitude())/1000000.; node_altitude = ((double)_nmea->getAltitude()) / 1000.0; //Serial.printf("lat %f lon %f\r\n", _lat, _lon); } - next_gps_update = millis() + 1000; + + //read BME280 values + //node_alt = bme.readAltitude(SEALEVELPRESSURE_HPA); + node_temp = bme.readTemperature(); + node_hum = bme.readHumidity(); + node_pres = (bme.readPressure() / 100.0F); + + #ifdef MESH_DEBUG + Serial.print("Temperature = "); + Serial.print(node_temp); + Serial.println(" *C"); + + Serial.print("Humidity = "); + Serial.print(node_hum); + Serial.println(" %"); + + Serial.print("Pressure = "); + Serial.print(node_pres); + Serial.println(" hPa"); + + // Serial.print("Approx. Altitude = "); + // Serial.print(node_alt); + // Serial.println(" m"); + #endif + + next_update = millis() + 1000; } } diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.h b/variants/lilygo_tbeam_supreme_SX1262/target.h index 107e2950..99ffa1c5 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.h +++ b/variants/lilygo_tbeam_supreme_SX1262/target.h @@ -31,6 +31,11 @@ extern WRAPPER_CLASS radio_driver; extern AutoDiscoverRTCClock rtc_clock; extern TbeamSupSensorManager sensors; +#ifdef DISPLAY_CLASS + #include + extern DISPLAY_CLASS display; +#endif + enum { POWERMANAGE_ONLINE = _BV(0), DISPLAY_ONLINE = _BV(1), From 4990fe40e7d6a86553cc0da0c03aaebd7b69062d Mon Sep 17 00:00:00 2001 From: cod3doomy Date: Mon, 19 May 2025 13:15:01 -0700 Subject: [PATCH 02/13] t-beam supreme: current limit increase Added the current limit increase define --- variants/lilygo_tbeam_supreme_SX1262/platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini index 5ab9fedc..0316bef2 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini +++ b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini @@ -12,6 +12,7 @@ build_flags = -D RADIO_CLASS=CustomSX1262 -D WRAPPER_CLASS=CustomSX1262Wrapper -D DISPLAY_CLASS=SH1106Display + -D SX126X_CURRENT_LIMIT=140 -D SX126X_RX_BOOSTED_GAIN=1 build_src_filter = ${esp32_base.build_src_filter} +<../variants/lilygo_tbeam_supreme_SX1262> From 4f503de7431cfa446e0bb3fb9113389ba6e35880 Mon Sep 17 00:00:00 2001 From: cod3doomy Date: Tue, 20 May 2025 11:37:41 -0700 Subject: [PATCH 03/13] t-beam supreme: fixes and cleanup Reverted the SensorManager changes Moved BME into TbeamSupSensorManager Moved printBMEValues into TbeamSupSensorManager Moved scanDevices out of TBeamS3SupremeBoard --- src/helpers/SensorManager.h | 4 ++-- src/helpers/TBeamS3SupremeBoard.h | 2 -- variants/lilygo_tbeam_supreme_SX1262/target.cpp | 5 +---- variants/lilygo_tbeam_supreme_SX1262/target.h | 17 ++++++++++++++--- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/helpers/SensorManager.h b/src/helpers/SensorManager.h index f48c2a7b..41c34e55 100644 --- a/src/helpers/SensorManager.h +++ b/src/helpers/SensorManager.h @@ -10,10 +10,10 @@ class SensorManager { public: - double node_lat, node_lon, node_temp, node_hum, node_pres; // modify these, if you want to affect Advert location + double node_lat, node_lon; // modify these, if you want to affect Advert location double node_altitude; // altitude in meters - SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0; node_temp = 0; node_hum = 0; node_pres = 0;} + SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0;} virtual bool begin() { return false; } virtual bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { return false; } virtual void loop() { } diff --git a/src/helpers/TBeamS3SupremeBoard.h b/src/helpers/TBeamS3SupremeBoard.h index 9bc9a83d..1ae6a230 100644 --- a/src/helpers/TBeamS3SupremeBoard.h +++ b/src/helpers/TBeamS3SupremeBoard.h @@ -55,9 +55,7 @@ class TBeamS3SupremeBoard : public ESP32Board { XPowersAXP2101 PMU; public: #ifdef MESH_DEBUG - void scanDevices(TwoWire *w); void printPMU(); - void printBMEValues(); #endif bool power_init(); diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.cpp b/variants/lilygo_tbeam_supreme_SX1262/target.cpp index 97fd8c76..4dbfd625 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.cpp +++ b/variants/lilygo_tbeam_supreme_SX1262/target.cpp @@ -1,7 +1,6 @@ #include #include "target.h" #include -#include TBeamS3SupremeBoard board; @@ -10,7 +9,6 @@ TBeamS3SupremeBoard board; #endif bool pmuIntFlag; -//#define SEALEVELPRESSURE_HPA (1013.25) #ifndef LORA_CR #define LORA_CR 5 @@ -29,7 +27,6 @@ ESP32RTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); MicroNMEALocationProvider nmea = MicroNMEALocationProvider(Serial1); TbeamSupSensorManager sensors = TbeamSupSensorManager(nmea); -Adafruit_BME280 bme; static void setPMUIntFlag(){ pmuIntFlag = true; @@ -114,7 +111,7 @@ void TBeamS3SupremeBoard::printPMU() Serial.println(); } -void printBMEValues() { +void TbeamSupSensorManager::printBMEValues() { Serial.print("Temperature = "); Serial.print(bme.readTemperature()); Serial.println(" *C"); diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.h b/variants/lilygo_tbeam_supreme_SX1262/target.h index 99ffa1c5..dbb24a8e 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.h +++ b/variants/lilygo_tbeam_supreme_SX1262/target.h @@ -8,15 +8,20 @@ #include #include #include +#include class TbeamSupSensorManager: public SensorManager { bool gps_active = false; LocationProvider * _nmea; - + Adafruit_BME280 bme; + double node_temp, node_hum, node_pres; + + #define SEALEVELPRESSURE_HPA (1013.25) + void start_gps(); void sleep_gps(); public: - TbeamSupSensorManager(LocationProvider &nmea): _nmea(&nmea) { } + TbeamSupSensorManager(LocationProvider &nmea): _nmea(&nmea) {node_temp = 0; node_hum = 0; node_pres = 0;} bool begin() override; bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override; void loop() override; @@ -24,6 +29,11 @@ class TbeamSupSensorManager: public SensorManager { const char* getSettingName(int i) const override; const char* getSettingValue(int i) const override; bool setSettingValue(const char* name, const char* value) override; + + #ifdef MESH_DEBUG + void printBMEValues(); + #endif + }; extern TBeamS3SupremeBoard board; @@ -53,7 +63,8 @@ enum { OSC32768_ONLINE = _BV(13), }; -bool power_init(); +void scanDevices(TwoWire *w); +static bool l76kProbe(); bool radio_init(); uint32_t radio_get_rng_seed(); void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr); From 1d94df1d048d9f2476db41fa7a4a501150dd481d Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Thu, 22 May 2025 12:06:34 +0000 Subject: [PATCH 04/13] Update platformio.ini --- variants/heltec_v3/platformio.ini | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/variants/heltec_v3/platformio.ini b/variants/heltec_v3/platformio.ini index 0814ad4d..0b7ea006 100644 --- a/variants/heltec_v3/platformio.ini +++ b/variants/heltec_v3/platformio.ini @@ -19,9 +19,14 @@ build_flags = -D SX126X_RX_BOOSTED_GAIN=1 build_src_filter = ${esp32_base.build_src_filter} +<../variants/heltec_v3> + + lib_deps = ${esp32_base.lib_deps} adafruit/Adafruit SSD1306 @ ^2.5.13 + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_repeater] extends = Heltec_lora32_v3 @@ -38,9 +43,14 @@ build_flags = build_src_filter = ${Heltec_lora32_v3.build_src_filter} + +<../examples/simple_repeater> + + lib_deps = ${Heltec_lora32_v3.lib_deps} ${esp32_ota.lib_deps} + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_room_server] extends = Heltec_lora32_v3 @@ -57,9 +67,14 @@ build_flags = build_src_filter = ${Heltec_lora32_v3.build_src_filter} + +<../examples/simple_room_server> + + lib_deps = ${Heltec_lora32_v3.lib_deps} ${esp32_ota.lib_deps} + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_terminal_chat] extends = Heltec_lora32_v3 @@ -71,9 +86,14 @@ build_flags = ; -D MESH_DEBUG=1 build_src_filter = ${Heltec_lora32_v3.build_src_filter} +<../examples/simple_secure_chat/main.cpp> + + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_companion_radio_usb] extends = Heltec_lora32_v3 @@ -89,9 +109,14 @@ build_flags = build_src_filter = ${Heltec_lora32_v3.build_src_filter} + +<../examples/companion_radio> + + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_companion_radio_ble] extends = Heltec_lora32_v3 @@ -111,9 +136,14 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} + + +<../examples/companion_radio> + + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_companion_radio_wifi] extends = Heltec_lora32_v3 @@ -133,9 +163,14 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} + + +<../examples/companion_radio> + + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 + adafruit/Adafruit INA3221 Library @ ^1.0.1 + adafruit/Adafruit INA219 @ ^1.2.3 + adafruit/Adafruit AHTX0 @ ^2.0.5 + adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_WSL3_repeater] extends = Heltec_lora32_v3 From 648953ce8d5ed8d3e63c51f5376592df38d771be Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Thu, 22 May 2025 12:07:06 +0000 Subject: [PATCH 05/13] Update target.cpp --- variants/heltec_v3/target.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variants/heltec_v3/target.cpp b/variants/heltec_v3/target.cpp index ab9b709f..be99a1e3 100644 --- a/variants/heltec_v3/target.cpp +++ b/variants/heltec_v3/target.cpp @@ -14,7 +14,7 @@ WRAPPER_CLASS radio_driver(radio, board); ESP32RTCClock fallback_clock; AutoDiscoverRTCClock rtc_clock(fallback_clock); -SensorManager sensors; +EnvironmentSensorManager sensors; #ifdef DISPLAY_CLASS DISPLAY_CLASS display; From 0caa2b4cd1b9ed45262539ee9e95c9cec76a0bc3 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Thu, 22 May 2025 12:07:45 +0000 Subject: [PATCH 06/13] Update target.h --- variants/heltec_v3/target.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/variants/heltec_v3/target.h b/variants/heltec_v3/target.h index 76ad58a7..701f9cd5 100644 --- a/variants/heltec_v3/target.h +++ b/variants/heltec_v3/target.h @@ -7,6 +7,7 @@ #include #include #include +#include #ifdef DISPLAY_CLASS #include #endif @@ -14,7 +15,7 @@ extern HeltecV3Board board; extern WRAPPER_CLASS radio_driver; extern AutoDiscoverRTCClock rtc_clock; -extern SensorManager sensors; +extern EnvironmentSensorManager sensors; #ifdef DISPLAY_CLASS extern DISPLAY_CLASS display; From cd7fc59f067e30ce34d3aeb381b16c09066cfa9c Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Thu, 22 May 2025 13:24:26 +0000 Subject: [PATCH 07/13] Update platformio.ini --- variants/heltec_v3/platformio.ini | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/variants/heltec_v3/platformio.ini b/variants/heltec_v3/platformio.ini index 0b7ea006..9f4c23c1 100644 --- a/variants/heltec_v3/platformio.ini +++ b/variants/heltec_v3/platformio.ini @@ -47,10 +47,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} lib_deps = ${Heltec_lora32_v3.lib_deps} ${esp32_ota.lib_deps} - adafruit/Adafruit INA3221 Library @ ^1.0.1 - adafruit/Adafruit INA219 @ ^1.2.3 - adafruit/Adafruit AHTX0 @ ^2.0.5 - adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_room_server] extends = Heltec_lora32_v3 @@ -71,10 +67,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} lib_deps = ${Heltec_lora32_v3.lib_deps} ${esp32_ota.lib_deps} - adafruit/Adafruit INA3221 Library @ ^1.0.1 - adafruit/Adafruit INA219 @ ^1.2.3 - adafruit/Adafruit AHTX0 @ ^2.0.5 - adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_terminal_chat] extends = Heltec_lora32_v3 @@ -90,10 +82,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 - adafruit/Adafruit INA3221 Library @ ^1.0.1 - adafruit/Adafruit INA219 @ ^1.2.3 - adafruit/Adafruit AHTX0 @ ^2.0.5 - adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_companion_radio_usb] extends = Heltec_lora32_v3 @@ -113,10 +101,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 - adafruit/Adafruit INA3221 Library @ ^1.0.1 - adafruit/Adafruit INA219 @ ^1.2.3 - adafruit/Adafruit AHTX0 @ ^2.0.5 - adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_companion_radio_ble] extends = Heltec_lora32_v3 @@ -140,10 +124,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 - adafruit/Adafruit INA3221 Library @ ^1.0.1 - adafruit/Adafruit INA219 @ ^1.2.3 - adafruit/Adafruit AHTX0 @ ^2.0.5 - adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_v3_companion_radio_wifi] extends = Heltec_lora32_v3 @@ -167,10 +147,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 - adafruit/Adafruit INA3221 Library @ ^1.0.1 - adafruit/Adafruit INA219 @ ^1.2.3 - adafruit/Adafruit AHTX0 @ ^2.0.5 - adafruit/Adafruit BME280 Library @ ^2.3.0 [env:Heltec_WSL3_repeater] extends = Heltec_lora32_v3 From e1351effb18cd3d3554027e175b144e23b10c6bb Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Thu, 22 May 2025 15:50:54 +0000 Subject: [PATCH 08/13] Update platformio.ini --- variants/heltec_v3/platformio.ini | 6 ------ 1 file changed, 6 deletions(-) diff --git a/variants/heltec_v3/platformio.ini b/variants/heltec_v3/platformio.ini index 9f4c23c1..a5687987 100644 --- a/variants/heltec_v3/platformio.ini +++ b/variants/heltec_v3/platformio.ini @@ -43,7 +43,6 @@ build_flags = build_src_filter = ${Heltec_lora32_v3.build_src_filter} + +<../examples/simple_repeater> - + lib_deps = ${Heltec_lora32_v3.lib_deps} ${esp32_ota.lib_deps} @@ -63,7 +62,6 @@ build_flags = build_src_filter = ${Heltec_lora32_v3.build_src_filter} + +<../examples/simple_room_server> - + lib_deps = ${Heltec_lora32_v3.lib_deps} ${esp32_ota.lib_deps} @@ -78,7 +76,6 @@ build_flags = ; -D MESH_DEBUG=1 build_src_filter = ${Heltec_lora32_v3.build_src_filter} +<../examples/simple_secure_chat/main.cpp> - + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 @@ -97,7 +94,6 @@ build_flags = build_src_filter = ${Heltec_lora32_v3.build_src_filter} + +<../examples/companion_radio> - + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 @@ -120,7 +116,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} + + +<../examples/companion_radio> - + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 @@ -143,7 +138,6 @@ build_src_filter = ${Heltec_lora32_v3.build_src_filter} + + +<../examples/companion_radio> - + lib_deps = ${Heltec_lora32_v3.lib_deps} densaugeo/base64 @ ~1.4.0 From e742d1f7228a4e155b2b98178744c39cf8dd884c Mon Sep 17 00:00:00 2001 From: cod3doomy Date: Thu, 22 May 2025 16:50:06 -0700 Subject: [PATCH 09/13] t-beam supreme: minor GPS and BME fixes Fixed GPS initial state to default to off after init. Removed redundant current limit define --- .../platformio.ini | 1 - .../lilygo_tbeam_supreme_SX1262/target.cpp | 54 +++++++++++-------- variants/lilygo_tbeam_supreme_SX1262/target.h | 2 + 3 files changed, 35 insertions(+), 22 deletions(-) diff --git a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini index 4367dc15..8e46f22c 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini +++ b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini @@ -12,7 +12,6 @@ build_flags = -D RADIO_CLASS=CustomSX1262 -D WRAPPER_CLASS=CustomSX1262Wrapper -D DISPLAY_CLASS=SH1106Display - -D SX126X_CURRENT_LIMIT=140 -D SX126X_RX_BOOSTED_GAIN=1 -D SX126X_CURRENT_LIMIT=140 build_src_filter = ${esp32_base.build_src_filter} diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.cpp b/variants/lilygo_tbeam_supreme_SX1262/target.cpp index 4dbfd625..dfe453ee 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.cpp +++ b/variants/lilygo_tbeam_supreme_SX1262/target.cpp @@ -370,23 +370,28 @@ void TbeamSupSensorManager::sleep_gps() { bool TbeamSupSensorManager::begin() { //init BME280 if (! bme.begin(0x77, &Wire)) { - MESH_DEBUG_PRINTLN("Could not find a valid BME280 sensor, check wiring!"); + MESH_DEBUG_PRINTLN("Could not find a valid BME280 sensor"); + bme_active = false; } else MESH_DEBUG_PRINTLN("BME280 found and init!"); + bme_active = true; // init GPS port Serial1.begin(GPS_BAUD_RATE, SERIAL_8N1, P_GPS_RX, P_GPS_TX); - bool result = false; + bool gps_alive = false; for ( int i = 0; i < 3; ++i) { - result = l76kProbe(); - if (result) { - gps_active = true; - return result; + gps_alive = l76kProbe(); + if (gps_alive) { + MESH_DEBUG_PRINTLN("GPS is init and active. Shutting down for initial state."); + sleep_gps(); + return gps_alive; } } - return result; + gps_active = gps_alive; + MESH_DEBUG_PRINTLN("GPS init failed and GPS is not active"); + return gps_alive; } bool TbeamSupSensorManager::querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { @@ -422,17 +427,17 @@ void TbeamSupSensorManager::loop() { node_pres = (bme.readPressure() / 100.0F); #ifdef MESH_DEBUG - Serial.print("Temperature = "); - Serial.print(node_temp); - Serial.println(" *C"); + // Serial.print("Temperature = "); + // Serial.print(node_temp); + // Serial.println(" *C"); - Serial.print("Humidity = "); - Serial.print(node_hum); - Serial.println(" %"); + // Serial.print("Humidity = "); + // Serial.print(node_hum); + // Serial.println(" %"); - Serial.print("Pressure = "); - Serial.print(node_pres); - Serial.println(" hPa"); + // Serial.print("Pressure = "); + // Serial.print(node_pres); + // Serial.println(" hPa"); // Serial.print("Approx. Altitude = "); // Serial.print(node_alt); @@ -443,17 +448,24 @@ void TbeamSupSensorManager::loop() { } } -int TbeamSupSensorManager::getNumSettings() const { return 1; } // just one supported: "gps" (power switch) +int TbeamSupSensorManager::getNumSettings() const { + return sensorNum; +} const char* TbeamSupSensorManager::getSettingName(int i) const { - return i == 0 ? "gps" : NULL; + switch(i){ + case 0: return "gps"; + case 1: return "bme280"; + default: NULL; + } } const char* TbeamSupSensorManager::getSettingValue(int i) const { - if (i == 0) { - return gps_active ? "1" : "0"; + switch(i){ + case 0: return gps_active == true ? "1" : "0"; + case 1: return bme_active == true ? "1" : "0"; + default: NULL; } - return NULL; } bool TbeamSupSensorManager::setSettingValue(const char* name, const char* value) { diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.h b/variants/lilygo_tbeam_supreme_SX1262/target.h index dbb24a8e..6acf6cdf 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.h +++ b/variants/lilygo_tbeam_supreme_SX1262/target.h @@ -12,9 +12,11 @@ class TbeamSupSensorManager: public SensorManager { bool gps_active = false; + bool bme_active = false; LocationProvider * _nmea; Adafruit_BME280 bme; double node_temp, node_hum, node_pres; + int sensorNum = 2; #define SEALEVELPRESSURE_HPA (1013.25) From 42284edcfe1e46de9501599ed5716ffd827aa4de Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Sat, 24 May 2025 10:39:05 +0000 Subject: [PATCH 10/13] Update platformio.ini --- variants/heltec_v3/platformio.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/variants/heltec_v3/platformio.ini b/variants/heltec_v3/platformio.ini index a5687987..28c6d562 100644 --- a/variants/heltec_v3/platformio.ini +++ b/variants/heltec_v3/platformio.ini @@ -17,6 +17,10 @@ build_flags = -D SX126X_DIO3_TCXO_VOLTAGE=1.8 -D SX126X_CURRENT_LIMIT=140 -D SX126X_RX_BOOSTED_GAIN=1 + -D ENV_INCLUDE_AHTX0=1 + -D ENV_INCLUDE_BME280=1 + -D ENV_INCLUDE_INA3221=1 + -D ENV_INCLUDE_INA219=1 build_src_filter = ${esp32_base.build_src_filter} +<../variants/heltec_v3> + From e5ddb8a598d91fd4a1cf1d43c8c5c9e18b777867 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Mon, 26 May 2025 12:23:52 +1000 Subject: [PATCH 11/13] * RAK: "start ota" now replies with Bluetooth MAC address --- src/helpers/nrf52/RAK4631Board.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/helpers/nrf52/RAK4631Board.cpp b/src/helpers/nrf52/RAK4631Board.cpp index eb1a42c5..c75ecf29 100644 --- a/src/helpers/nrf52/RAK4631Board.cpp +++ b/src/helpers/nrf52/RAK4631Board.cpp @@ -80,6 +80,11 @@ bool RAK4631Board::startOTAUpdate(const char* id, char reply[]) { Bluefruit.Advertising.setFastTimeout(30); // number of seconds in fast mode Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds - strcpy(reply, "OK - started"); + uint8_t mac_addr[6]; + memset(mac_addr, 0, sizeof(mac_addr)); + Bluefruit.getAddr(mac_addr); + sprintf(reply, "OK - mac: %02X:%02X:%02X:%02X:%02X:%02X", + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); + return true; } From 4b103ca0de7fdcad35ac7cf59f539e822e7a024d Mon Sep 17 00:00:00 2001 From: cod3doomy Date: Sun, 25 May 2025 21:23:31 -0700 Subject: [PATCH 12/13] t-beam supreme: fixes and consolidation Made changes requested by Scott Simplified gps init sequence and removed unnecessary code Reverted SensorManager change Updated PMU flow to enable header outputs --- src/helpers/SensorManager.h | 2 +- src/helpers/TBeamS3SupremeBoard.h | 4 +- .../lilygo_tbeam_supreme_SX1262/target.cpp | 139 +++++------------- variants/lilygo_tbeam_supreme_SX1262/target.h | 4 +- 4 files changed, 44 insertions(+), 105 deletions(-) diff --git a/src/helpers/SensorManager.h b/src/helpers/SensorManager.h index 41c34e55..0e4bc27d 100644 --- a/src/helpers/SensorManager.h +++ b/src/helpers/SensorManager.h @@ -13,7 +13,7 @@ public: double node_lat, node_lon; // modify these, if you want to affect Advert location double node_altitude; // altitude in meters - SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0;} + SensorManager() { node_lat = 0; node_lon = 0; node_altitude = 0; } virtual bool begin() { return false; } virtual bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { return false; } virtual void loop() { } diff --git a/src/helpers/TBeamS3SupremeBoard.h b/src/helpers/TBeamS3SupremeBoard.h index 1ae6a230..ccb8e24c 100644 --- a/src/helpers/TBeamS3SupremeBoard.h +++ b/src/helpers/TBeamS3SupremeBoard.h @@ -61,10 +61,10 @@ public: void begin() { - power_init(); - ESP32Board::begin(); + power_init(); + esp_reset_reason_t reason = esp_reset_reason(); if (reason == ESP_RST_DEEPSLEEP) { long wakeup_source = esp_sleep_get_ext1_wakeup_status(); diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.cpp b/variants/lilygo_tbeam_supreme_SX1262/target.cpp index dfe453ee..6a37f7c2 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.cpp +++ b/variants/lilygo_tbeam_supreme_SX1262/target.cpp @@ -143,9 +143,9 @@ bool TBeamS3SupremeBoard::power_init() PMU.setChargingLedMode(XPOWERS_CHG_LED_CTRL_CHG); // Set up PMU interrupts - // MESH_DEBUG_PRINTLN("Setting up PMU interrupts"); - // pinMode(PIN_PMU_IRQ, INPUT_PULLUP); - // attachInterrupt(PIN_PMU_IRQ, setPMUIntFlag, FALLING); + MESH_DEBUG_PRINTLN("Setting up PMU interrupts"); + pinMode(PIN_PMU_IRQ, INPUT_PULLUP); + attachInterrupt(PIN_PMU_IRQ, setPMUIntFlag, FALLING); // GPS MESH_DEBUG_PRINTLN("Setting and enabling a-ldo4 for GPS"); @@ -188,22 +188,22 @@ bool TBeamS3SupremeBoard::power_init() PMU.enableBLDO1(); // Out to header pins - // MESH_DEBUG_PRINTLN("Setting and enabling b-ldo2 for output to header"); - // PMU.setBLDO2Voltage(3300); - // PMU.enableBLDO2(); + MESH_DEBUG_PRINTLN("Setting and enabling b-ldo2 for output to header"); + PMU.setBLDO2Voltage(3300); + PMU.enableBLDO2(); - // MESH_DEBUG_PRINTLN("Setting and enabling dcdc4 for output to header"); - // PMU.setDC4Voltage(XPOWERS_AXP2101_DCDC4_VOL2_MAX); // 1.8V - // PMU.enableDC4(); + MESH_DEBUG_PRINTLN("Setting and enabling dcdc4 for output to header"); + PMU.setDC4Voltage(XPOWERS_AXP2101_DCDC4_VOL2_MAX); // 1.8V + PMU.enableDC4(); - // MESH_DEBUG_PRINTLN("Setting and enabling dcdc5 for output to header"); - // PMU.setDC5Voltage(3300); - // PMU.enableDC5(); + MESH_DEBUG_PRINTLN("Setting and enabling dcdc5 for output to header"); + PMU.setDC5Voltage(3300); + PMU.enableDC5(); // Unused power rails - MESH_DEBUG_PRINTLN("Disabling unused supplies dcdc2, dldo1 and dldo2"); + MESH_DEBUG_PRINTLN("Disabling unused supplies dcdc2, dcdc5, dldo1 and dldo2"); PMU.disableDC2(); - PMU.disableDC5(); + //PMU.disableDC5(); PMU.disableDLDO1(); PMU.disableDLDO2(); @@ -223,18 +223,18 @@ bool TBeamS3SupremeBoard::power_init() PMU.enableVbusVoltageMeasure(); // Reset and re-enable PMU interrupts - // MESH_DEBUG_PRINTLN("Re-enable interrupts"); - // PMU.disableIRQ(XPOWERS_AXP2101_ALL_IRQ); - // PMU.clearIrqStatus(); - // PMU.enableIRQ( - // XPOWERS_AXP2101_BAT_INSERT_IRQ | XPOWERS_AXP2101_BAT_REMOVE_IRQ | // Battery interrupts - // XPOWERS_AXP2101_VBUS_INSERT_IRQ | XPOWERS_AXP2101_VBUS_REMOVE_IRQ | // VBUS interrupts - // XPOWERS_AXP2101_PKEY_SHORT_IRQ | XPOWERS_AXP2101_PKEY_LONG_IRQ | // Power Key interrupts - // XPOWERS_AXP2101_BAT_CHG_DONE_IRQ | XPOWERS_AXP2101_BAT_CHG_START_IRQ // Charging interrupts - // ); + MESH_DEBUG_PRINTLN("Re-enable interrupts"); + PMU.disableIRQ(XPOWERS_AXP2101_ALL_IRQ); + PMU.clearIrqStatus(); + PMU.enableIRQ( + XPOWERS_AXP2101_BAT_INSERT_IRQ | XPOWERS_AXP2101_BAT_REMOVE_IRQ | // Battery interrupts + XPOWERS_AXP2101_VBUS_INSERT_IRQ | XPOWERS_AXP2101_VBUS_REMOVE_IRQ | // VBUS interrupts + XPOWERS_AXP2101_PKEY_SHORT_IRQ | XPOWERS_AXP2101_PKEY_LONG_IRQ | // Power Key interrupts + XPOWERS_AXP2101_BAT_CHG_DONE_IRQ | XPOWERS_AXP2101_BAT_CHG_START_IRQ // Charging interrupts + ); #ifdef MESH_DEBUG - // scanDevices(&Wire); - // scanDevices(&Wire1); + scanDevices(&Wire); + scanDevices(&Wire1); printPMU(); #endif @@ -259,56 +259,6 @@ static bool readStringUntil(Stream& s, char dest[], size_t max_len, char term, u return millis() < timeout; // false, if timed out } -static bool l76kProbe() -{ - bool result = false; - uint32_t startTimeout ; - Serial1.write("$PCAS03,0,0,0,0,0,0,0,0,0,0,,,0,0*02\r\n"); - delay(5); - // Get version information - startTimeout = millis() + 3000; - MESH_DEBUG_PRINTLN("Trying to init L76K GPS"); - // Serial1.flush(); - while (Serial1.available()) { - int c = Serial1.read(); - // Serial.write(c); - // Serial.print("."); - // Serial.flush(); - // Serial1.flush(); - if (millis() > startTimeout) { - MESH_DEBUG_PRINTLN("L76K NMEA timeout!"); - return false; - } - }; - - Serial1.flush(); - delay(200); - - Serial1.write("$PCAS06,0*1B\r\n"); - - char ver[100]; - if (!readStringUntil(Serial1, ver, sizeof(ver), '\n', 500)) { - MESH_DEBUG_PRINTLN("Get L76K timeout!"); - return false; - } - - if (memcmp(ver, "$GPTXT,01,01,02", 15) == 0) { - MESH_DEBUG_PRINTLN("L76K GNSS init succeeded, using L76K GNSS Module\n"); - result = true; - } - delay(500); - - // Initialize the L76K Chip, use GPS + GLONASS - Serial1.write("$PCAS04,5*1C\r\n"); - delay(250); - // only ask for RMC and GGA - Serial1.write("$PCAS03,1,0,0,0,1,0,0,0,0,0,,,0,0*02\r\n"); - delay(250); - // Switch to Vehicle Mode, since SoftRF enables Aviation < 2g - Serial1.write("$PCAS11,3*1E\r\n"); - return result; -} - bool radio_init() { fallback_clock.begin(); @@ -380,25 +330,16 @@ bool TbeamSupSensorManager::begin() { // init GPS port Serial1.begin(GPS_BAUD_RATE, SERIAL_8N1, P_GPS_RX, P_GPS_TX); - bool gps_alive = false; - for ( int i = 0; i < 3; ++i) { - gps_alive = l76kProbe(); - if (gps_alive) { - MESH_DEBUG_PRINTLN("GPS is init and active. Shutting down for initial state."); - sleep_gps(); - return gps_alive; - } - } - gps_active = gps_alive; - MESH_DEBUG_PRINTLN("GPS init failed and GPS is not active"); - return gps_alive; + MESH_DEBUG_PRINTLN("Sleeping GPS for initial state"); + sleep_gps(); + return true; } bool TbeamSupSensorManager::querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) { if (requester_permissions & TELEM_PERM_LOCATION) { // does requester have permission? telemetry.addGPS(TELEM_CHANNEL_SELF, node_lat, node_lon, node_altitude); } - if (requester_permissions & TELEM_PERM_ENVIRONMENT) { // does requester have permission? + if (requester_permissions & TELEM_PERM_ENVIRONMENT && bme_active) { // does requester have permission? telemetry.addTemperature(TELEM_CHANNEL_SELF, node_temp); telemetry.addRelativeHumidity(TELEM_CHANNEL_SELF, node_hum); telemetry.addBarometricPressure(TELEM_CHANNEL_SELF, node_pres); @@ -413,20 +354,21 @@ void TbeamSupSensorManager::loop() { _nmea->loop(); if (millis() > next_update) { - if (_nmea->isValid()) { + if (_nmea->isValid() && gps_active) { node_lat = ((double)_nmea->getLatitude())/1000000.; node_lon = ((double)_nmea->getLongitude())/1000000.; node_altitude = ((double)_nmea->getAltitude()) / 1000.0; - //Serial.printf("lat %f lon %f\r\n", _lat, _lon); + MESH_DEBUG_PRINT("lat %f lon %f alt %f\r\n", node_lat, node_lon, node_altitude); } //read BME280 values - //node_alt = bme.readAltitude(SEALEVELPRESSURE_HPA); - node_temp = bme.readTemperature(); - node_hum = bme.readHumidity(); - node_pres = (bme.readPressure() / 100.0F); - - #ifdef MESH_DEBUG + if(bme_active){ + //node_alt = bme.readAltitude(SEALEVELPRESSURE_HPA); + node_temp = bme.readTemperature(); + node_hum = bme.readHumidity(); + node_pres = (bme.readPressure() / 100.0F); + + #ifdef MESH_DEBUG // Serial.print("Temperature = "); // Serial.print(node_temp); // Serial.println(" *C"); @@ -442,7 +384,8 @@ void TbeamSupSensorManager::loop() { // Serial.print("Approx. Altitude = "); // Serial.print(node_alt); // Serial.println(" m"); - #endif + #endif + } next_update = millis() + 1000; } @@ -455,7 +398,6 @@ int TbeamSupSensorManager::getNumSettings() const { const char* TbeamSupSensorManager::getSettingName(int i) const { switch(i){ case 0: return "gps"; - case 1: return "bme280"; default: NULL; } } @@ -463,7 +405,6 @@ const char* TbeamSupSensorManager::getSettingName(int i) const { const char* TbeamSupSensorManager::getSettingValue(int i) const { switch(i){ case 0: return gps_active == true ? "1" : "0"; - case 1: return bme_active == true ? "1" : "0"; default: NULL; } } diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.h b/variants/lilygo_tbeam_supreme_SX1262/target.h index 6acf6cdf..293580ee 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.h +++ b/variants/lilygo_tbeam_supreme_SX1262/target.h @@ -16,7 +16,7 @@ class TbeamSupSensorManager: public SensorManager { LocationProvider * _nmea; Adafruit_BME280 bme; double node_temp, node_hum, node_pres; - int sensorNum = 2; + int sensorNum = 1; #define SEALEVELPRESSURE_HPA (1013.25) @@ -65,8 +65,6 @@ enum { OSC32768_ONLINE = _BV(13), }; -void scanDevices(TwoWire *w); -static bool l76kProbe(); bool radio_init(); uint32_t radio_get_rng_seed(); void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr); From 3ae2e851a0f58e3b976129522e63a9dddb898c22 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Mon, 26 May 2025 14:39:44 +1000 Subject: [PATCH 13/13] * minor tidy ups --- variants/lilygo_tbeam_supreme_SX1262/platformio.ini | 2 +- variants/lilygo_tbeam_supreme_SX1262/target.cpp | 2 +- variants/lilygo_tbeam_supreme_SX1262/target.h | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini index 8e46f22c..4e6721f9 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/platformio.ini +++ b/variants/lilygo_tbeam_supreme_SX1262/platformio.ini @@ -67,8 +67,8 @@ build_flags = -D MAX_CONTACTS=100 -D MAX_GROUP_CHANNELS=8 -D BLE_PIN_CODE=123456 - -D BLE_DEBUG_LOGGING=1 -D OFFLINE_QUEUE_SIZE=256 +; -D BLE_DEBUG_LOGGING=1 ; -D ENABLE_PRIVATE_KEY_IMPORT=1 ; -D ENABLE_PRIVATE_KEY_EXPORT=1 ; -D MESH_PACKET_LOGGING=8 diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.cpp b/variants/lilygo_tbeam_supreme_SX1262/target.cpp index 6a37f7c2..4b38b11d 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.cpp +++ b/variants/lilygo_tbeam_supreme_SX1262/target.cpp @@ -392,7 +392,7 @@ void TbeamSupSensorManager::loop() { } int TbeamSupSensorManager::getNumSettings() const { - return sensorNum; + return 1; } const char* TbeamSupSensorManager::getSettingName(int i) const { diff --git a/variants/lilygo_tbeam_supreme_SX1262/target.h b/variants/lilygo_tbeam_supreme_SX1262/target.h index 293580ee..a3023750 100644 --- a/variants/lilygo_tbeam_supreme_SX1262/target.h +++ b/variants/lilygo_tbeam_supreme_SX1262/target.h @@ -16,7 +16,6 @@ class TbeamSupSensorManager: public SensorManager { LocationProvider * _nmea; Adafruit_BME280 bme; double node_temp, node_hum, node_pres; - int sensorNum = 1; #define SEALEVELPRESSURE_HPA (1013.25)