mirror of https://github.com/meshcore-dev/MeshCore
Browse Source
AUTO_OFF_MILLIS is a power-save feature aimed at battery use. When the board reports isExternalPowered() == true (USB or other DC source), blanking the screen serves no purpose — there's nothing to conserve. But OLEDs are vulnerable to burn-in with static content, so this behaviour is gated behind a new build flag KEEP_DISPLAY_ON_USB. Default is unchanged from upstream — the display blanks after AUTO_OFF_MILLIS on USB or battery. Variants that ship with an LCD instead of an OLED (e.g. heltec_t096) can opt in by adding -D KEEP_DISPLAY_ON_USB to their env, gaining always-on-while-powered without exposing OLED users to burn-in risk. When the flag is enabled, the implementation refreshes _auto_off every loop iteration while externally powered, so the timer naturally counts a fresh AUTO_OFF_MILLIS window from the moment power is removed — no instantaneous-blank-on-unplug. Applied to all three companion_radio UI flavours (ui-new, ui-tiny, ui-orig). Boards without an isExternalPowered() override use the base-class default in MeshCore.h (returns false), so battery-powered behaviour is unchanged everywhere. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>pull/2643/head
3 changed files with 27 additions and 0 deletions
Loading…
Reference in new issue