esphome / esphome/feature-requests

[ST7701S] Add power saving mode

Open
#2,987 2 comments 2 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem you have/What new integration you would like**

I would like to see an option to put the ST7701S display driver in 'Sleep in' mode.
In this mode, the DC/DC converter, internal oscillator and panel driver circuit are stopped.

Currently there is already a pause/resume function from LVGL including a function to prevent burn-in of the LCD.
But if the screen is off anyway, wouldn't it be better to just turn it off?

**Please describe your use case for this integration and alternatives you've tried:**

I would like to use a couple of Guidance ESP32-S3-4848S040 screens as a thermostat.
Low power consumption means less heat and therefore better temperature measurement.

**Additional context**

I tested a very simple code:
```
const uint8_t SLEEP_IN = 0x10;
const uint8_t SLEEP_OUT = 0x11;
void ST7701S::set_sleep(bool sleep) {
if (sleep) {
this->write_command_(SLEEP_IN);
} else {
this->write_command_(SLEEP_OUT);
}
}
```
(And removed `this->spi_teardown();` from `ST7701S::write_init_sequence_()`)
Simply called at the same time as turning on/off the backlight and it works perfectly fine.
But just throwing in some code is not enough for a neat integration.

USB power consumption:
Backlight off, LVGL pause with snow: +- 90mA
Backlight off, ST7701S 'Sleep in' mode, LVGL pause (without snow, as screen is powered down anyway): +- 60mA

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.