From 0af7f838ab8640796f859c00cec58f15ac4647c8 Mon Sep 17 00:00:00 2001 From: Todd Herbert Date: Wed, 26 Mar 2025 16:42:06 +1300 Subject: [PATCH] fix: cooldown period during the display shutdown display sequence Observed to prevent border pixels from being locked in place with some residual charge? --- src/graphics/niche/InkHUD/Applets/System/Logo/LogoApplet.cpp | 2 ++ src/graphics/niche/InkHUD/Events.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/src/graphics/niche/InkHUD/Applets/System/Logo/LogoApplet.cpp b/src/graphics/niche/InkHUD/Applets/System/Logo/LogoApplet.cpp index a669c6d75..520b3ef65 100644 --- a/src/graphics/niche/InkHUD/Applets/System/Logo/LogoApplet.cpp +++ b/src/graphics/niche/InkHUD/Applets/System/Logo/LogoApplet.cpp @@ -95,8 +95,10 @@ void InkHUD::LogoApplet::onShutdown() inverted = true; inkhud->forceUpdate(Drivers::EInk::FULL, false); + delay(1000); // Cooldown. Back to back updates aren't great for health. inverted = false; inkhud->forceUpdate(Drivers::EInk::FULL, false); + delay(1000); // Cooldown // Prepare for the powered-off screen now // We can change these values because the initial "shutting down" screen has already rendered at this point diff --git a/src/graphics/niche/InkHUD/Events.cpp b/src/graphics/niche/InkHUD/Events.cpp index 7107d4f59..ddd01b7e1 100644 --- a/src/graphics/niche/InkHUD/Events.cpp +++ b/src/graphics/niche/InkHUD/Events.cpp @@ -95,6 +95,7 @@ int InkHUD::Events::beforeDeepSleep(void *unused) // We're updating to show that one now. inkhud->forceUpdate(Drivers::EInk::UpdateTypes::FULL, false); + delay(1000); // Cooldown, before potentially yanking display power return 0; // We agree: deep sleep now }