From 46a086cfa8d9383f5dd3321bed174a93417cbd29 Mon Sep 17 00:00:00 2001 From: jacobeva Date: Wed, 2 Oct 2024 16:59:25 +0100 Subject: [PATCH] [SX128x] Save context before sleep to allow TX to work on wake (#1249) (#1250) --- src/modules/SX128x/SX128x.cpp | 4 +++- src/modules/SX128x/SX128x.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/SX128x/SX128x.cpp b/src/modules/SX128x/SX128x.cpp index b1f47c7e..5cbcc91c 100644 --- a/src/modules/SX128x/SX128x.cpp +++ b/src/modules/SX128x/SX128x.cpp @@ -461,7 +461,9 @@ int16_t SX128x::sleep(bool retainConfig) { if(!retainConfig) { sleepConfig = RADIOLIB_SX128X_SLEEP_DATA_BUFFER_FLUSH | RADIOLIB_SX128X_SLEEP_DATA_RAM_FLUSH; } - int16_t state = this->mod->SPIwriteStream(RADIOLIB_SX128X_CMD_SET_SLEEP, &sleepConfig, 1, false, false); + int16_t state = this->mod->SPIwriteStream(RADIOLIB_SX128X_CMD_SAVE_CONTEXT, 0, 1, false, false); + RADIOLIB_ASSERT(state); + state = this->mod->SPIwriteStream(RADIOLIB_SX128X_CMD_SET_SLEEP, &sleepConfig, 1, false, false); // wait for SX128x to safely enter sleep mode this->mod->hal->delay(1); diff --git a/src/modules/SX128x/SX128x.h b/src/modules/SX128x/SX128x.h index cea6b7ad..02162449 100644 --- a/src/modules/SX128x/SX128x.h +++ b/src/modules/SX128x/SX128x.h @@ -22,6 +22,7 @@ #define RADIOLIB_SX128X_CMD_READ_REGISTER 0x19 #define RADIOLIB_SX128X_CMD_WRITE_BUFFER 0x1A #define RADIOLIB_SX128X_CMD_READ_BUFFER 0x1B +#define RADIOLIB_SX128X_CMD_SAVE_CONTEXT 0xD5 #define RADIOLIB_SX128X_CMD_SET_SLEEP 0x84 #define RADIOLIB_SX128X_CMD_SET_STANDBY 0x80 #define RADIOLIB_SX128X_CMD_SET_FS 0xC1