diff --git a/src/ButtonThread.h b/src/ButtonThread.h index f35c53a46..9d7fd2ae5 100644 --- a/src/ButtonThread.h +++ b/src/ButtonThread.h @@ -123,14 +123,12 @@ class ButtonThread : public concurrency::OSThread static void userButtonPressedLong() { // LOG_DEBUG("Long press!\n"); - // If user button is held down for 5 seconds, shutdown the device. - if ((millis() - longPressTime > 5 * 1000) && (longPressTime > 0)) { -#ifdef HAS_PMU - if (pmu_found == true) { - setLed(false); - power->shutdown(); - } -#elif defined(ARCH_NRF52) || defined(ARCH_ESP32) + if (screen_found == true) { + screen->adjustBrightness(); + } + // If user button is held down for 10 seconds, shutdown the device. + if ((millis() - longPressTime > 10000) && (longPressTime > 0)) { +#if defined(ARCH_NRF52) || defined(ARCH_ESP32) // Do actual shutdown when button released, otherwise the button release // may wake the board immediatedly. if ((!shutdown_on_long_stop) && (millis() > 30 * 1000)) { diff --git a/src/Power.cpp b/src/Power.cpp index 6c4851c11..6b5bebe4d 100644 --- a/src/Power.cpp +++ b/src/Power.cpp @@ -277,12 +277,11 @@ void Power::shutdown() LOG_INFO("Shutting down\n"); #ifdef HAS_PMU - if (PMU) { + if (pmu_found == true) { PMU->setChargingLedMode(XPOWERS_CHG_LED_OFF); + PMU->shutdown(); } -#endif - -#if defined(ARCH_NRF52) || defined(ARCH_ESP32) +#elif defined(ARCH_NRF52) || defined(ARCH_ESP32) #ifdef PIN_LED1 ledOff(PIN_LED1); #endif diff --git a/src/sleep.cpp b/src/sleep.cpp index e3f042a27..5fdacb73e 100644 --- a/src/sleep.cpp +++ b/src/sleep.cpp @@ -203,7 +203,11 @@ void doGPSpowersave(bool on) void doDeepSleep(uint64_t msecToWake) { - LOG_INFO("Entering deep sleep for %lu seconds\n", msecToWake / 1000); + if (INCLUDE_vTaskSuspend && (msecToWake == portMAX_DELAY)) { + LOG_INFO("Entering deep sleep forever\n"); + } else { + LOG_INFO("Entering deep sleep for %u seconds\n", msecToWake / 1000); + } // not using wifi yet, but once we are this is needed to shutoff the radio hw // esp_wifi_stop();