]> git.tnoah.ca Git - lora-radio.git/commitdiff
Added deep sleep support on T3S3
authorMark Qvist <mark@unsigned.io>
Fri, 17 May 2024 23:07:38 +0000 (01:07 +0200)
committerMark Qvist <mark@unsigned.io>
Fri, 17 May 2024 23:07:38 +0000 (01:07 +0200)
Boards.h
Display.h
RNode_Firmware.ino

index e9c069e6d6221177f8bb4e2986e88ae3fd45d00e..7816e00393b9b657e6bd7b8d936001360a8bb162 100644 (file)
--- a/Boards.h
+++ b/Boards.h
@@ -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)
       #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;
index a988f0e309a9b24da059ab96ce8f1180083be01a..dd244759e49a0686ffae7ce10aad75e46e26271f 100644 (file)
--- a/Display.h
+++ b/Display.h
@@ -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();
+    }
   }
 }
 
index 34d31e7b2418568ed1a9727cfe1a13c72450c695..db0605a726075df06f8d46030d5d67eadf2b5fb1 100644 (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