From b57dd30582960ec334004630d8544639f0077c31 Mon Sep 17 00:00:00 2001
From: Marius <m.e.neuhalfen@t-online.de>
Date: Wed, 11 May 2022 09:26:20 +0200
Subject: [PATCH 1/2] add setRxSingleTimeout(...)

---
 src/LoRa.cpp | 7 +++++++
 src/LoRa.h   | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/LoRa.cpp b/src/LoRa.cpp
index 210a589..80786d0 100644
--- a/src/LoRa.cpp
+++ b/src/LoRa.cpp
@@ -23,6 +23,7 @@
 #define REG_RSSI_VALUE           0x1b
 #define REG_MODEM_CONFIG_1       0x1d
 #define REG_MODEM_CONFIG_2       0x1e
+#define REG_SYMB_TIMEOUT_LSB	 0x1f
 #define REG_PREAMBLE_MSB         0x20
 #define REG_PREAMBLE_LSB         0x21
 #define REG_PAYLOAD_LENGTH       0x22
@@ -582,6 +583,12 @@ void LoRaClass::setSyncWord(int sw)
   writeRegister(REG_SYNC_WORD, sw);
 }
 
+void LoRaClass::setRxSingleTimeout(uint16_t symbols) 
+{
+	writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) | (symbols >> 8));
+	writeRegister(REG_SYMB_TIMEOUT_LSB, (symbols & 0xFF));
+}
+
 void LoRaClass::enableCrc()
 {
   writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) | 0x04);
diff --git a/src/LoRa.h b/src/LoRa.h
index b312db5..da21692 100644
--- a/src/LoRa.h
+++ b/src/LoRa.h
@@ -73,6 +73,7 @@ class LoRaClass : public Stream {
   void setCodingRate4(int denominator);
   void setPreambleLength(long length);
   void setSyncWord(int sw);
+  void setRxSingleTimeout(uint16_t symbols);
   void enableCrc();
   void disableCrc();
   void enableInvertIQ();

From f85d2bdd4840b9d82dbe47a192c87b5fbb8857f9 Mon Sep 17 00:00:00 2001
From: Marius <m.e.neuhalfen@t-online.de>
Date: Wed, 11 May 2022 09:31:14 +0200
Subject: [PATCH 2/2] added input check

---
 src/LoRa.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/LoRa.cpp b/src/LoRa.cpp
index 80786d0..1899859 100644
--- a/src/LoRa.cpp
+++ b/src/LoRa.cpp
@@ -585,6 +585,9 @@ void LoRaClass::setSyncWord(int sw)
 
 void LoRaClass::setRxSingleTimeout(uint16_t symbols) 
 {
+	if (symbols > 1023) {
+		symbols = 1023;
+	}
 	writeRegister(REG_MODEM_CONFIG_2, readRegister(REG_MODEM_CONFIG_2) | (symbols >> 8));
 	writeRegister(REG_SYMB_TIMEOUT_LSB, (symbols & 0xFF));
 }