Added deep sleep support on T3S3

This commit is contained in:
Mark Qvist 2024-05-18 01:07:38 +02:00
parent 79f88eee2f
commit f19ccf7078
3 changed files with 34 additions and 12 deletions

View File

@ -79,6 +79,7 @@
#define HAS_EEPROM false #define HAS_EEPROM false
#define HAS_INPUT false #define HAS_INPUT false
#define HAS_SLEEP false #define HAS_SLEEP false
#define PIN_DISP_SLEEP -1
#define VALIDATE_FIRMWARE true #define VALIDATE_FIRMWARE true
#if defined(ENABLE_TCXO) #if defined(ENABLE_TCXO)
@ -353,11 +354,13 @@
#define HAS_SD false #define HAS_SD false
#define HAS_EEPROM true #define HAS_EEPROM true
// #define HAS_INPUT true #define HAS_INPUT true
// #define HAS_SLEEP true #define HAS_SLEEP true
// #define PIN_WAKEUP GPIO_NUM_0 #define PIN_WAKEUP GPIO_NUM_0
// #define WAKEUP_LEVEL 0 #define WAKEUP_LEVEL 0
// const int pin_btn_usr1 = 0; // #define PIN_DISP_SLEEP 21
// #define DISP_SLEEP_LEVEL HIGH
const int pin_btn_usr1 = 0;
const int pin_cs = 7; const int pin_cs = 7;
const int pin_reset = 8; const int pin_reset = 8;

View File

@ -564,7 +564,15 @@ void update_disp_area() {
} }
} }
void update_display() { void update_display(bool blank = false) {
if (blank) {
if (display_contrast != display_intensity) {
display_contrast = display_intensity;
set_contrast(&display, display_contrast);
}
display.clearDisplay();
display.display();
} else {
if (millis()-last_disp_update >= disp_update_interval) { if (millis()-last_disp_update >= disp_update_interval) {
if (display_contrast != display_intensity) { if (display_contrast != display_intensity) {
display_contrast = display_intensity; display_contrast = display_intensity;
@ -576,6 +584,7 @@ void update_display() {
display.display(); display.display();
last_disp_update = millis(); last_disp_update = millis();
} }
}
} }
void ext_fb_enable() { void ext_fb_enable() {

View File

@ -77,7 +77,9 @@ void setup() {
fifo_init(&serialFIFO, serialBuffer, CONFIG_UART_BUFFER_SIZE); fifo_init(&serialFIFO, serialBuffer, CONFIG_UART_BUFFER_SIZE);
Serial.begin(serial_baudrate); Serial.begin(serial_baudrate);
#if BOARD_MODEL != BOARD_RNODE_NG_22
while (!Serial); while (!Serial);
#endif
serial_interrupt_init(); serial_interrupt_init();
@ -1305,6 +1307,14 @@ void loop() {
void sleep_now() { void sleep_now() {
#if HAS_SLEEP == true #if HAS_SLEEP == true
#if BOARD_MODEL == BOARD_RNODE_NG_22
display_intensity = 0;
update_display(true);
#endif
#if PIN_DISP_SLEEP >= 0
pinMode(PIN_DISP_SLEEP, OUTPUT);
digitalWrite(PIN_DISP_SLEEP, DISP_SLEEP_LEVEL);
#endif
esp_sleep_enable_ext0_wakeup(PIN_WAKEUP, WAKEUP_LEVEL); esp_sleep_enable_ext0_wakeup(PIN_WAKEUP, WAKEUP_LEVEL);
esp_deep_sleep_start(); esp_deep_sleep_start();
#endif #endif