diff --git a/src/ButtonThread.cpp b/src/ButtonThread.cpp index 375029c99..04200a7df 100644 --- a/src/ButtonThread.cpp +++ b/src/ButtonThread.cpp @@ -349,8 +349,12 @@ void ButtonThread::attachButtonInterrupts() #endif #ifdef BUTTON_PIN_ALT +#ifdef ELECROW_ThinkNode_M2 + wakeOnIrq(BUTTON_PIN_ALT, RISING); +#else wakeOnIrq(BUTTON_PIN_ALT, FALLING); #endif +#endif #ifdef BUTTON_PIN_TOUCH wakeOnIrq(BUTTON_PIN_TOUCH, FALLING); diff --git a/src/main.cpp b/src/main.cpp index bf4b0c2f2..bfbd73a43 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -248,8 +248,9 @@ static int32_t elecrowLedBlinker() return 1000; static bool ledOn; - // when fully charged, remain on! - if (powerStatus->getIsCharging() && powerStatus->getBatteryChargePercent() >= 100) { + // remain on when fully charged or discharging above 10% + if ((powerStatus->getIsCharging() && powerStatus->getBatteryChargePercent() >= 100) || + (!powerStatus->getIsCharging() && powerStatus->getBatteryChargePercent() >= 10)) { ledOn = true; } else { ledOn ^= 1; @@ -259,8 +260,8 @@ static int32_t elecrowLedBlinker() if (powerStatus->getIsCharging()) { return 500; } - // When almost empty, blink rapidly - if (!powerStatus->getIsCharging() && powerStatus->getBatteryChargePercent() < 10) { + // Blink rapidly when almost empty or if battery is not connected + if ((!powerStatus->getIsCharging() && powerStatus->getBatteryChargePercent() < 10) || !powerStatus->getHasBattery()) { return 250; } #if HAS_BUTTON