From 2e183d70bb3f4717d70d096537b795f6d8cece8a Mon Sep 17 00:00:00 2001
From: jgromes <jan.gromes@gmail.com>
Date: Sun, 3 Apr 2022 12:14:26 +0200
Subject: [PATCH] [SX127x] Use RSSI interrupt and disable AFC (#505)

---
 src/modules/SX127x/SX127x.cpp | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/modules/SX127x/SX127x.cpp b/src/modules/SX127x/SX127x.cpp
index a0f967da..0ab12eff 100644
--- a/src/modules/SX127x/SX127x.cpp
+++ b/src/modules/SX127x/SX127x.cpp
@@ -96,17 +96,12 @@ int16_t SX127x::beginFSK(uint8_t chipVersion, float br, float freqDev, float rxB
   state = SX127x::setAFCBandwidth(rxBw);
   RADIOLIB_ASSERT(state);
 
-  // set AFC&AGC trigger to RSSI (in OOK) or both (in FSK)
-  if(enableOOK) {
-    state = SX127x::setAFCAGCTrigger(RADIOLIB_SX127X_RX_TRIGGER_RSSI_INTERRUPT);
-  } else {
-    state = SX127x::setAFCAGCTrigger(RADIOLIB_SX127X_RX_TRIGGER_BOTH);
-  }
-
+  // set AFC&AGC trigger to RSSI (both in OOK and FSK)
+  state = SX127x::setAFCAGCTrigger(RADIOLIB_SX127X_RX_TRIGGER_RSSI_INTERRUPT);
   RADIOLIB_ASSERT(state);
 
   // enable AFC
-  state = SX127x::setAFC(true);
+  state = SX127x::setAFC(false);
   RADIOLIB_ASSERT(state);
 
   // set receiver bandwidth
@@ -998,7 +993,7 @@ int16_t SX127x::setOOK(bool enableOOK) {
 
 int16_t SX127x::setFrequencyRaw(float newFreq) {
   int16_t state = RADIOLIB_ERR_NONE;
-  
+
   // set mode to standby if not FHSS
   if(_mod->SPIgetRegValue(RADIOLIB_SX127X_REG_HOP_PERIOD) == RADIOLIB_SX127X_HOP_PERIOD_OFF) {
     state = setMode(RADIOLIB_SX127X_STANDBY);
@@ -1372,11 +1367,11 @@ int16_t SX127x::setFHSSHoppingPeriod(uint8_t freqHoppingPeriod) {
 }
 
 uint8_t SX127x::getFHSSHoppingPeriod(void) {
-  return(_mod->SPIgetRegValue(RADIOLIB_SX127X_REG_HOP_PERIOD)); 
+  return(_mod->SPIgetRegValue(RADIOLIB_SX127X_REG_HOP_PERIOD));
 }
 
 uint8_t SX127x::getFHSSChannel(void) {
-  return(_mod->SPIgetRegValue(RADIOLIB_SX127X_REG_HOP_CHANNEL, 5, 0)); 
+  return(_mod->SPIgetRegValue(RADIOLIB_SX127X_REG_HOP_CHANNEL, 5, 0));
 }
 
 void SX127x::clearFHSSInt(void) {
@@ -1385,7 +1380,7 @@ void SX127x::clearFHSSInt(void) {
     _mod->SPIwriteRegister(RADIOLIB_SX127X_REG_IRQ_FLAGS, getIRQFlags() | RADIOLIB_SX127X_CLEAR_IRQ_FLAG_FHSS_CHANGE_CHANNEL);
   } else if(modem == RADIOLIB_SX127X_FSK_OOK) {
     return; //These are not the interrupts you are looking for
-  }  
+  }
 }
 
 #endif