diff --git a/bin/version.sh b/bin/version.sh index 388402b6..b71c5d64 100644 --- a/bin/version.sh +++ b/bin/version.sh @@ -1,3 +1,3 @@ -export VERSION=0.9.5 \ No newline at end of file +export VERSION=0.9.6 \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 72ae1af9..1069f8e0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -85,7 +85,7 @@ build_flags = # board_build.ldscript = linker/esp32.extram.bss.ld lib_ignore = segger_rtt platform_packages = - framework-arduinoespressif32 @ https://github.com/meshtastic/arduino-esp32.git#1adba3f11ca8406ac0a704d151697b572058b53d + framework-arduinoespressif32@https://github.com/meshtastic/arduino-esp32.git#2814f110aa618429bdd9a0a2d6a93c55f29f87a6 ; not needed included in ttgo-t-beam board file ; also to use PSRAM https://docs.platformio.org/en/latest/platforms/espressif32.html#external-ram-psram @@ -94,7 +94,7 @@ platform_packages = ; -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG -; The 1.0 release of the TBEAM board +; The 1.0 release of the TBEAM board [env:tbeam] extends = esp32_base board = ttgo-t-beam diff --git a/proto b/proto index 3caee2e5..ce422b7c 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 3caee2e5b92d4429c6cf47a4c88d4615001f300b +Subproject commit ce422b7c448906c6fee3eef64bbd41adfbc990f0 diff --git a/src/configuration.h b/src/configuration.h index 50e16e6a..e70f1fda 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -255,6 +255,7 @@ along with this program. If not, see . // #define VEXT_ENABLE 21 // active low, powers the oled display and the lora antenna boost #define LED_PIN 2 // If defined we will blink this LED #define BUTTON_PIN 0 // If defined, this will be used for user button presses +#define BUTTON_NEED_PULLUP #define USE_RF95 #define LORA_DIO0 26 // a No connect on the SX1262 module @@ -281,6 +282,7 @@ along with this program. If not, see . #define BUTTON_PIN \ 0 // If defined, this will be used for user button presses, if your board doesn't have a physical switch, you can wire one // between this pin and ground +#define BUTTON_NEED_PULLUP #define USE_RF95 #define LORA_DIO0 26 // a No connect on the SX1262 module diff --git a/src/gps/UBloxGPS.cpp b/src/gps/UBloxGPS.cpp index 80d7064b..624ab77b 100644 --- a/src/gps/UBloxGPS.cpp +++ b/src/gps/UBloxGPS.cpp @@ -46,8 +46,9 @@ bool UBloxGPS::setup() // ublox.enableDebugging(Serial); // try a second time, the ublox lib serial parsing is buggy? - if (!tryConnect()) - tryConnect(); + // see https://github.com/meshtastic/Meshtastic-device/issues/376 + for (int i = 0; (i < 3) && !tryConnect(); i++) + delay(500); if (isConnected) { DEBUG_MSG("Connected to UBLOX GPS successfully\n"); @@ -81,8 +82,11 @@ bool UBloxGPS::setUBXMode() // assert(ok); // ok = ublox.setDynamicModel(DYN_MODEL_BIKE); // probably PEDESTRIAN but just in case assume bike speeds // assert(ok); - if (!ublox.powerSaveMode(true, 2000)) // use power save mode, the default timeout (1100ms seems a bit too tight) - return false; + + // per https://github.com/meshtastic/Meshtastic-device/issues/376 powerSaveMode might not work with the marginal + // TTGO antennas + // if (!ublox.powerSaveMode(true, 2000)) // use power save mode, the default timeout (1100ms seems a bit too tight) + // return false; if (!ublox.saveConfiguration(3000)) return false; @@ -106,8 +110,8 @@ bool UBloxGPS::factoryReset() tryConnect(); // sets isConnected // try a second time, the ublox lib serial parsing is buggy? - if (!tryConnect()) - tryConnect(); + for (int i = 0; (i < 3) && !tryConnect(); i++) + delay(500); DEBUG_MSG("GPS Factory reset success=%d\n", isConnected); if (isConnected) @@ -165,7 +169,7 @@ void UBloxGPS::doTask() latitude = ublox.getLatitude(0); longitude = ublox.getLongitude(0); - altitude = ublox.getAltitude(0) / 1000; // in mm convert to meters + altitude = ublox.getAltitudeMSL(0) / 1000; // in mm convert to meters dop = ublox.getPDOP(0); // PDOP (an accuracy metric) is reported in 10^2 units so we have to scale down when we use it heading = ublox.getHeading(0); numSatellites = ublox.getSIV(0); diff --git a/src/mesh/mesh.pb.h b/src/mesh/mesh.pb.h index 27ff63f9..64b2758c 100644 --- a/src/mesh/mesh.pb.h +++ b/src/mesh/mesh.pb.h @@ -364,7 +364,7 @@ typedef struct _ToRadio { #define DeviceState_version_tag 8 #define DeviceState_rx_text_message_tag 7 #define DeviceState_no_save_tag 9 -#define DeviceState_did_gps_reset_tag 10 +#define DeviceState_did_gps_reset_tag 11 #define FromRadio_packet_tag 2 #define FromRadio_my_info_tag 3 #define FromRadio_node_info_tag 4 @@ -519,7 +519,7 @@ X(a, STATIC, REPEATED, MESSAGE, receive_queue, 5) \ X(a, STATIC, OPTIONAL, MESSAGE, rx_text_message, 7) \ X(a, STATIC, SINGULAR, UINT32, version, 8) \ X(a, STATIC, SINGULAR, BOOL, no_save, 9) \ -X(a, STATIC, SINGULAR, BOOL, did_gps_reset, 10) +X(a, STATIC, SINGULAR, BOOL, did_gps_reset, 11) #define DeviceState_CALLBACK NULL #define DeviceState_DEFAULT NULL #define DeviceState_radio_MSGTYPE RadioConfig diff --git a/src/sleep.cpp b/src/sleep.cpp index 3bce7266..886886b5 100644 --- a/src/sleep.cpp +++ b/src/sleep.cpp @@ -284,8 +284,10 @@ esp_sleep_wakeup_cause_t doLightSleep(uint64_t sleepMsec) // FIXME, use a more r assert(esp_light_sleep_start() == ESP_OK); esp_sleep_wakeup_cause_t cause = esp_sleep_get_wakeup_cause(); +#ifdef BUTTON_PIN if (cause == ESP_SLEEP_WAKEUP_GPIO) DEBUG_MSG("Exit light sleep gpio: btn=%d\n", !digitalRead(BUTTON_PIN)); +#endif return cause; }