From fcf798df984d09653618d59613c75d9c4d3a6831 Mon Sep 17 00:00:00 2001 From: Ben Meadors Date: Thu, 7 Sep 2023 16:01:35 -0500 Subject: [PATCH] Experiment with moving gps init (#2780) * Move it move it * Moving to the end of the main setup method * NimBLE version --- arch/esp32/esp32.ini | 2 +- src/main.cpp | 42 ++++++++++++++++++++---------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/arch/esp32/esp32.ini b/arch/esp32/esp32.ini index d8ee50f45..ccad60858 100644 --- a/arch/esp32/esp32.ini +++ b/arch/esp32/esp32.ini @@ -38,7 +38,7 @@ lib_deps = ${networking_base.lib_deps} ${environmental_base.lib_deps} https://github.com/meshtastic/esp32_https_server.git#23665b3adc080a311dcbb586ed5941b5f94d6ea2 - h2zero/NimBLE-Arduino@^1.4.0 + h2zero/NimBLE-Arduino@^1.4.1 jgromes/RadioLib@^6.1.0 https://github.com/lewisxhe/XPowersLib.git#84b7373faea3118b6c37954d52f98b8a337148d6 https://github.com/meshtastic/ESP32_Codec2.git#633326c78ac251c059ab3a8c430fcdf25b41672f diff --git a/src/main.cpp b/src/main.cpp index 2ae17225f..e67603c64 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -558,17 +558,6 @@ void setup() readFromRTC(); // read the main CPU RTC at first (in case we can't get GPS time) - gps = createGps(); - - if (gps) { - gpsStatus->observe(&gps->newStatus); - if (config.position.gps_enabled == false && config.position.fixed_position == false) { - doGPSpowersave(false); - } - } else { - LOG_WARN("No GPS found - running without GPS\n"); - } - nodeStatus->observe(&nodeDB.newStatus); service.init(); @@ -593,17 +582,6 @@ void setup() screen->print("Started...\n"); - // We have now loaded our saved preferences from flash - - // ONCE we will factory reset the GPS for bug #327 - if (gps && !devicestate.did_gps_reset) { - LOG_WARN("GPS FactoryReset requested\n"); - if (gps->factoryReset()) { // If we don't succeed try again next time - devicestate.did_gps_reset = true; - nodeDB.saveToDisk(SEGMENT_DEVICESTATE); - } - } - #ifdef SX126X_ANT_SW // make analog PA vs not PA switch on SX126x eval board work properly pinMode(SX126X_ANT_SW, OUTPUT); @@ -758,6 +736,26 @@ void setup() PowerFSM_setup(); // we will transition to ON in a couple of seconds, FIXME, only do this for cold boots, not waking from SDS powerFSMthread = new PowerFSMThread(); + gps = createGps(); + + if (gps) { + gpsStatus->observe(&gps->newStatus); + if (config.position.gps_enabled == false && config.position.fixed_position == false) { + doGPSpowersave(false); + } + } else { + LOG_WARN("No GPS found - running without GPS\n"); + } + // We have now loaded our saved preferences from flash + + // ONCE we will factory reset the GPS for bug #327 + if (gps && !devicestate.did_gps_reset) { + LOG_WARN("GPS FactoryReset requested\n"); + if (gps->factoryReset()) { // If we don't succeed try again next time + devicestate.did_gps_reset = true; + nodeDB.saveToDisk(SEGMENT_DEVICESTATE); + } + } // setBluetoothEnable(false); we now don't start bluetooth until we enter the proper state setCPUFast(false); // 80MHz is fine for our slow peripherals }