From b2b4c9e0f73bd9d5a435b291ee27574ee9c2f69f Mon Sep 17 00:00:00 2001 From: jgromes Date: Fri, 27 Dec 2024 16:26:24 +0000 Subject: [PATCH] [SX126x] Use dummy SPI transfer for wakeup (#1364) --- src/modules/SX126x/SX126x.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/SX126x/SX126x.cpp b/src/modules/SX126x/SX126x.cpp index 1d8c0801..31aa2aa3 100644 --- a/src/modules/SX126x/SX126x.cpp +++ b/src/modules/SX126x/SX126x.cpp @@ -467,8 +467,10 @@ int16_t SX126x::standby(uint8_t mode, bool wakeup) { this->mod->setRfSwitchState(Module::MODE_IDLE); if(wakeup) { - // pull NSS low to wake up - this->mod->hal->digitalWrite(this->mod->getCs(), this->mod->hal->GpioLevelLow); + // send a NOP command - this pulls the NSS low to exit the sleep mode, + // while preventing interference with possible other SPI transactions + // see https://github.com/jgromes/RadioLib/discussions/1364 + (void)this->mod->SPIwriteStream(RADIOLIB_SX126X_CMD_NOP, NULL, 0, false, false); } uint8_t data[] = { mode };