From 564e2f26f32049b90aa43a655f7528e000597cdd Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Sat, 4 Jan 2025 22:08:04 +0100 Subject: [PATCH] Fixed intermittent radio init failure on T3S3 SX1280 --- sx128x.cpp | 6 +++++- sx128x.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sx128x.cpp b/sx128x.cpp index 34eb14f..ed7415e 100644 --- a/sx128x.cpp +++ b/sx128x.cpp @@ -300,7 +300,7 @@ void sx128x::setPacketParams(uint32_t preamble, uint8_t headermode, uint8_t leng executeOpcode(OP_PACKET_PARAMS_8X, buf, 7); } -int sx128x::begin(unsigned long frequency) { +void sx128x::reset() { if (_reset != -1) { pinMode(_reset, OUTPUT); digitalWrite(_reset, LOW); @@ -308,6 +308,10 @@ int sx128x::begin(unsigned long frequency) { digitalWrite(_reset, HIGH); delay(10); } +} + +int sx128x::begin(unsigned long frequency) { + reset(); if (_rxen != -1) { pinMode(_rxen, OUTPUT); } if (_txen != -1) { pinMode(_txen, OUTPUT); } diff --git a/sx128x.h b/sx128x.h index 203a265..8a3e7d1 100644 --- a/sx128x.h +++ b/sx128x.h @@ -25,6 +25,7 @@ public: int begin(unsigned long frequency); void end(); + void reset(); int beginPacket(int implicitHeader = false); int endPacket();