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