From 8bf32dc042fc3e6f7a5d9b988c12492da9930305 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Wed, 8 Oct 2025 23:13:02 -0500 Subject: [PATCH] Attach an interrupt to EXT_PWR_DETECT if present, and force a screen redraw on a power change. --- src/Power.cpp | 10 ++++++++++ src/graphics/Screen.cpp | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/Power.cpp b/src/Power.cpp index 7de82b8d6..39d47610b 100644 --- a/src/Power.cpp +++ b/src/Power.cpp @@ -691,6 +691,16 @@ bool Power::setup() #ifdef NRF_APM found = true; #endif +#ifdef EXT_PWR_DETECT + attachInterrupt( + EXT_PWR_DETECT, + []() { + power->setIntervalFromNow(0); + runASAP = true; + BaseType_t higherWake = 0; + }, + CHANGE); +#endif enabled = found; low_voltage_counter = 0; diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index 4485ca7a3..767f97eed 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -1428,6 +1428,9 @@ int Screen::handleStatusUpdate(const meshtastic::Status *arg) } nodeDB->updateGUI = false; break; + case STATUS_TYPE_POWER: + forceDisplay(true); + break; } return 0;