From ae4d9cccd0f18904ba2e7c274921546aa605e5a4 Mon Sep 17 00:00:00 2001 From: entr0p1 <1475255+entr0p1@users.noreply.github.com> Date: Sun, 19 Jul 2026 22:32:20 +1000 Subject: [PATCH] Fix - radio powerOff() inconsistent on some radios (confirmed SX1262, SX1268, LLCC68, possibly also LR1110 and LR1121). From Semtech datasheet for SX1262, SX1268, LLCC68: "The command SetSleep(...) sets the device in SLEEP mode with the lowest current consumption possible. This command can be sent only while in STDBY mode " SX1276 not affected, LR1110 and LR1121 are unclear from the datasheets. Fixes: - RadioLibWrapper, CustomSX1262Wrapper: call Standby() before calling Sleep() as --- src/helpers/radiolib/CustomSX1262Wrapper.h | 1 + src/helpers/radiolib/RadioLibWrappers.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/helpers/radiolib/CustomSX1262Wrapper.h b/src/helpers/radiolib/CustomSX1262Wrapper.h index 1d103f5790..bb87de2db9 100644 --- a/src/helpers/radiolib/CustomSX1262Wrapper.h +++ b/src/helpers/radiolib/CustomSX1262Wrapper.h @@ -35,6 +35,7 @@ class CustomSX1262Wrapper : public RadioLibWrapper { } uint8_t getSpreadingFactor() const override { return ((CustomSX1262 *)_radio)->spreadingFactor; } virtual void powerOff() override { + ((CustomSX1262 *)_radio)->standby(); ((CustomSX1262 *)_radio)->sleep(false); } diff --git a/src/helpers/radiolib/RadioLibWrappers.h b/src/helpers/radiolib/RadioLibWrappers.h index 3091832f11..fdc326c8d2 100644 --- a/src/helpers/radiolib/RadioLibWrappers.h +++ b/src/helpers/radiolib/RadioLibWrappers.h @@ -24,7 +24,7 @@ class RadioLibWrapper : public mesh::Radio { RadioLibWrapper(PhysicalLayer& radio, mesh::MainBoard& board) : _radio(&radio), _board(&board), _preamble_sf(0) { n_recv = n_sent = 0; } void begin() override; - virtual void powerOff() { _radio->sleep(); } + virtual void powerOff() { _radio->standby(); _radio->sleep(); } int recvRaw(uint8_t* bytes, int sz) override; uint32_t getEstAirtimeFor(int len_bytes) override; bool startSendRaw(const uint8_t* bytes, int len) override;