From cbedd72993dc2e7b32e32a9c8243a8dffa9016aa Mon Sep 17 00:00:00 2001 From: Kevin Brosius Date: Sun, 23 Feb 2025 18:52:17 -0500 Subject: [PATCH] Seeed ESP32S3 - enable button sleep, stopRadio at sleep to sleep sx1262 also. --- Boards.h | 6 ++++-- RNode_Firmware.ino | 3 ++- sx126x.cpp | 12 +++++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Boards.h b/Boards.h index 112d2c9..f93790f 100644 --- a/Boards.h +++ b/Boards.h @@ -620,8 +620,10 @@ #define HAS_EEPROM true #define HAS_INPUT true - #define HAS_SLEEP false - + #define HAS_SLEEP true + #define PIN_WAKEUP GPIO_NUM_21 + #define WAKEUP_LEVEL 0 + // #define PMU_IRQ 40 // #define I2C_SCL 41 // #define I2C_SDA 42 diff --git a/RNode_Firmware.ino b/RNode_Firmware.ino index c2b9886..79bff2f 100644 --- a/RNode_Firmware.ino +++ b/RNode_Firmware.ino @@ -1612,7 +1612,7 @@ void loop() { void sleep_now() { #if HAS_SLEEP == true #if PLATFORM == PLATFORM_ESP32 - #if BOARD_MODEL == BOARD_T3S3 + #if BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3 display_intensity = 0; update_display(true); #endif @@ -1626,6 +1626,7 @@ void sleep_now() { delay(100); } #endif + stopRadio(); esp_sleep_enable_ext0_wakeup(PIN_WAKEUP, WAKEUP_LEVEL); esp_deep_sleep_start(); #elif PLATFORM == PLATFORM_NRF52 diff --git a/sx126x.cpp b/sx126x.cpp index ebbde43..68bf7b1 100644 --- a/sx126x.cpp +++ b/sx126x.cpp @@ -122,17 +122,19 @@ sx126x::sx126x() : { setTimeout(0); } bool sx126x::preInit() { -// delay(300); - //LoRa->reset(); -// reset(); -// delay(100); + #if BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3 + // Improve wakeup from sleep + delay(300); + reset(); + delay(100); + #endif pinMode(_ss, OUTPUT); digitalWrite(_ss, HIGH); #if BOARD_MODEL == BOARD_T3S3 || BOARD_MODEL == BOARD_HELTEC32_V3 || BOARD_MODEL == BOARD_TDECK SPI.begin(pin_sclk, pin_miso, pin_mosi, pin_cs); - #elif BOARD_MODEL == BOARD_TECHO // || BOARD_MODEL == BOARD_SEEED_XIAO_ESP32S3 + #elif BOARD_MODEL == BOARD_TECHO SPI.setPins(pin_miso, pin_sclk, pin_mosi); SPI.begin(); #else