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_INPUT false
#define HAS_SLEEP false
#define PIN_DISP_SLEEP -1
#define VALIDATE_FIRMWARE true
#if defined(ENABLE_TCXO)
@ -353,11 +354,13 @@
#define HAS_SD false
#define HAS_EEPROM true
// #define HAS_INPUT true
// #define HAS_SLEEP true
// #define PIN_WAKEUP GPIO_NUM_0
// #define WAKEUP_LEVEL 0
// const int pin_btn_usr1 = 0;
#define HAS_INPUT true
#define HAS_SLEEP true
#define PIN_WAKEUP GPIO_NUM_0
#define WAKEUP_LEVEL 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_reset = 8;

View File

@ -564,17 +564,26 @@ void update_disp_area() {
}
}
void update_display() {
if (millis()-last_disp_update >= disp_update_interval) {
void update_display(bool blank = false) {
if (blank) {
if (display_contrast != display_intensity) {
display_contrast = display_intensity;
set_contrast(&display, display_contrast);
}
display.clearDisplay();
update_stat_area();
update_disp_area();
display.display();
last_disp_update = millis();
display.display();
} else {
if (millis()-last_disp_update >= disp_update_interval) {
if (display_contrast != display_intensity) {
display_contrast = display_intensity;
set_contrast(&display, display_contrast);
}
display.clearDisplay();
update_stat_area();
update_disp_area();
display.display();
last_disp_update = millis();
}
}
}

View File

@ -77,7 +77,9 @@ void setup() {
fifo_init(&serialFIFO, serialBuffer, CONFIG_UART_BUFFER_SIZE);
Serial.begin(serial_baudrate);
while (!Serial);
#if BOARD_MODEL != BOARD_RNODE_NG_22
while (!Serial);
#endif
serial_interrupt_init();
@ -1305,6 +1307,14 @@ void loop() {
void sleep_now() {
#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_deep_sleep_start();
#endif