From e1758d2ece3030c3df7aacab59844baaf1d0bb53 Mon Sep 17 00:00:00 2001 From: Kevin Le Date: Sat, 15 Aug 2026 18:26:32 +0700 Subject: [PATCH] Fixed for T096 OLED to save 3.5mA and use dark theme --- src/helpers/ui/ST7735Display.cpp | 33 ++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/helpers/ui/ST7735Display.cpp b/src/helpers/ui/ST7735Display.cpp index 95588d17..ac0a3f08 100644 --- a/src/helpers/ui/ST7735Display.cpp +++ b/src/helpers/ui/ST7735Display.cpp @@ -417,16 +417,16 @@ bool ST7735Display::i2c_probe(TwoWire& wire, uint8_t addr) { #define PIN_TFT_LEDA_CTL_ACTIVE HIGH #endif -// Color scheme -ColorVal UIColor::window_bkg = ST77XX_WHITE; -ColorVal UIColor::title_bkg = ST77XX_BLUE; -ColorVal UIColor::title_txt = ST77XX_WHITE; -ColorVal UIColor::primary_txt = ST77XX_BLACK; -ColorVal UIColor::secondary_txt = (18 << 11) | (36 << 5) | 18; // mid-gray -ColorVal UIColor::warning_txt = ST77XX_ORANGE; -ColorVal UIColor::popup_bkg = ST77XX_CYAN; -ColorVal UIColor::popup_txt = ST77XX_BLACK; -ColorVal UIColor::corp_blue = 0x001A; +// Color scheme - Dark theme before v1.17 +ColorVal UIColor::window_bkg = ST77XX_BLACK; +ColorVal UIColor::title_bkg = ST77XX_BLACK; +ColorVal UIColor::title_txt = ST77XX_GREEN; +ColorVal UIColor::primary_txt = ST77XX_GREEN; +ColorVal UIColor::secondary_txt = ST77XX_YELLOW; +ColorVal UIColor::warning_txt = ST77XX_RED; +ColorVal UIColor::popup_bkg = ST77XX_BLACK; +ColorVal UIColor::popup_txt = ST77XX_WHITE; +ColorVal UIColor::corp_blue = ST77XX_BLUE; bool ST7735Display::begin() { if (!sprite) { @@ -512,6 +512,15 @@ void ST7735Display::_resetAndInit() { void ST7735Display::turnOn() { if (!_isOn) { if (_peripher_power) _peripher_power->claim(); + + // Restore GPIOs + pinMode(PIN_TFT_CS, OUTPUT); + pinMode(PIN_TFT_DC, OUTPUT); + pinMode(PIN_TFT_SDA, OUTPUT); + pinMode(PIN_TFT_SCL, OUTPUT); + pinMode(PIN_TFT_RST, OUTPUT); + pinMode(PIN_TFT_LEDA_CTL, OUTPUT); + _resetAndInit(); sendCommand(ST77XX_DISPON); @@ -525,11 +534,11 @@ void ST7735Display::turnOff() { if (_isOn) { sendCommand(ST77XX_DISPOFF); - //digitalWrite(PIN_TFT_RST, LOW); + // digitalWrite(PIN_TFT_RST, LOW); // Now turn off the backlight digitalWrite(PIN_TFT_LEDA_CTL, !PIN_TFT_LEDA_CTL_ACTIVE); - // Prevent back-powering to save 2.8 mA + // Prevent back-powering to save 3.5mA (from 12.6 down to 9.1mA) pinMode(PIN_TFT_CS, INPUT); pinMode(PIN_TFT_DC, INPUT); pinMode(PIN_TFT_SDA, INPUT);