Improved T-Echo e-ink sleep

This commit is contained in:
Mark Qvist 2025-01-16 11:00:39 +01:00
parent 68349aaa70
commit 9b792862b9
2 changed files with 15 additions and 7 deletions

View File

@ -201,7 +201,7 @@ uint8_t display_contrast = 0x00;
void set_contrast(ST7789Spi *display, uint8_t value) { } void set_contrast(ST7789Spi *display, uint8_t value) { }
#elif BOARD_MODEL == BOARD_TECHO #elif BOARD_MODEL == BOARD_TECHO
void set_contrast(void *display, uint8_t value) { void set_contrast(void *display, uint8_t value) {
if (value == 0) { digitalWrite(pin_backlight, LOW); } if (value == 0) { analogWrite(pin_backlight, 0); }
else { analogWrite(pin_backlight, value); } else { analogWrite(pin_backlight, value); }
} }
#elif BOARD_MODEL == BOARD_TDECK #elif BOARD_MODEL == BOARD_TDECK
@ -274,7 +274,7 @@ bool display_init() {
display.epd2.setBusyCallback(busyCallback); display.epd2.setBusyCallback(busyCallback);
#if HAS_BACKLIGHT #if HAS_BACKLIGHT
pinMode(pin_backlight, OUTPUT); pinMode(pin_backlight, OUTPUT);
digitalWrite(pin_backlight, LOW); analogWrite(pin_backlight, 0);
#endif #endif
#elif BOARD_MODEL == BOARD_TBEAM_S_V1 #elif BOARD_MODEL == BOARD_TBEAM_S_V1
Wire.begin(SDA_OLED, SCL_OLED); Wire.begin(SDA_OLED, SCL_OLED);
@ -414,7 +414,7 @@ bool display_init() {
#if BOARD_MODEL == BOARD_TECHO #if BOARD_MODEL == BOARD_TECHO
#if HAS_BACKLIGHT #if HAS_BACKLIGHT
if (display_intensity == 0) { digitalWrite(pin_backlight, LOW); } if (display_intensity == 0) { analogWrite(pin_backlight, 0); }
else { analogWrite(pin_backlight, display_intensity); } else { analogWrite(pin_backlight, display_intensity); }
#endif #endif
#endif #endif
@ -906,10 +906,16 @@ void display_recondition() {
bool epd_blanked = false; bool epd_blanked = false;
#if BOARD_MODEL == BOARD_TECHO #if BOARD_MODEL == BOARD_TECHO
void epd_blank() { void epd_blank(bool full_update = true) {
display.setFullWindow(); display.setFullWindow();
display.fillScreen(SSD1306_WHITE); display.fillScreen(SSD1306_WHITE);
display.display(true); display.display(full_update);
}
void epd_black(bool full_update = true) {
display.setFullWindow();
display.fillScreen(SSD1306_BLACK);
display.display(full_update);
} }
#endif #endif

View File

@ -1631,8 +1631,10 @@ void sleep_now() {
digitalWrite(PIN_T114_TFT_BLGT, HIGH); digitalWrite(PIN_T114_TFT_BLGT, HIGH);
digitalWrite(PIN_T114_TFT_EN, HIGH); digitalWrite(PIN_T114_TFT_EN, HIGH);
#elif BOARD_MODEL == BOARD_TECHO #elif BOARD_MODEL == BOARD_TECHO
digitalWrite(pin_backlight, LOW); for (uint8_t i = display_intensity; i > 0; i--) { analogWrite(pin_backlight, i-1); delay(1); }
epd_blank(); epd_black(true); delay(300); epd_black(true);
analogWrite(PIN_VEXT_EN, 0);
delay(100);
#endif #endif
sd_power_gpregret_set(0, 0x6d); sd_power_gpregret_set(0, 0x6d);
nrf_gpio_cfg_sense_input(pin_btn_usr1, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW); nrf_gpio_cfg_sense_input(pin_btn_usr1, NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_SENSE_LOW);