From 854ad0ea58a64b665d1dab5082ab1fbf3dc56631 Mon Sep 17 00:00:00 2001 From: AkkerKid Date: Wed, 20 May 2026 16:54:39 -0400 Subject: [PATCH] fix(heltec-v3): powerOff() arms user button + LoRa-DIO1 wake mask HeltecV3Board::powerOff() called enterDeepSleep(0) with the default pin_wake_btn = -1, so the wake mask armed only LoRa-DIO1. The user button (PIN_USER_BTN) was never armed despite typical long-hold-button- to-hibernate UX prompts expecting it to wake. Mirrors the same fix landed for HeltecV4Board in May 2026 in the downstream meshomatic-conduit-firmware fork (akkerkid/meshomatic-conduit-firmware fix/hibernate-button-only-wake), where this bug shipped to ~80 conduit units before discovery. V3 in upstream carries the identical bug shape today. One-line fix: pass PIN_USER_BTN explicitly. No API changes; the default-arg signature stays. Affected use case: any board class user that calls `powerOff()` expecting both LoRa packets AND the user button to wake the device (the OLED prompt "Tap button to wake" reads that way). Signed-off-by: AkkerKid --- variants/heltec_v3/HeltecV3Board.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variants/heltec_v3/HeltecV3Board.h b/variants/heltec_v3/HeltecV3Board.h index ba22a7f2b9..d9111ea504 100644 --- a/variants/heltec_v3/HeltecV3Board.h +++ b/variants/heltec_v3/HeltecV3Board.h @@ -76,7 +76,7 @@ class HeltecV3Board : public ESP32Board { } void powerOff() override { - enterDeepSleep(0); + enterDeepSleep(0, PIN_USER_BTN); } uint16_t getBattMilliVolts() override {