Fixed for T096 OLED to save 3.5mA and use dark theme

This commit is contained in:
Kevin Le
2026-08-15 18:26:32 +07:00
parent 320ce563d1
commit e1758d2ece
+21 -12
View File
@@ -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);