diff --git a/loraprs_service.cpp b/loraprs_service.cpp index 630823f..aaf2622 100644 --- a/loraprs_service.cpp +++ b/loraprs_service.cpp @@ -269,7 +269,7 @@ void Service::onLoraDataAvailable(int packetSize) serialSend(Cmd::Data, rxBuf, rxBufIndex); long frequencyError = LoRa.packetFrequencyError(); - if (config_.EnableAutoFreqCorrection) { + if (config_.EnableAutoFreqCorrection && abs(frequencyError) > CfgFreqCorrMinHz) { config_.LoraFreq -= frequencyError; LoRa.setFrequency(config_.LoraFreq); } diff --git a/loraprs_service.h b/loraprs_service.h index df293e1..f60207f 100644 --- a/loraprs_service.h +++ b/loraprs_service.h @@ -83,6 +83,7 @@ private: const int CfgPollDelayMs = 5; const int CfgWiFiConnRetryMaxTimes = 10; const int CfgMaxAX25PayloadSize = 512; + const int CfgFreqCorrMinHz = 150; // csma parameters, overriden with KISS commands const long CfgCsmaPersistence = 100; // 255 for real time, lower for higher traffic