From e20058c93cedc9086332c88aeb2b11204d7fd7c5 Mon Sep 17 00:00:00 2001 From: James Smith Date: Thu, 24 Mar 2022 10:30:45 -0700 Subject: [PATCH 1/3] [CC1101] Data shaping and encoding params in right order For some reason, the `RADIOLIB_SHAPING_NONE` was being passed to `setEncoding` and `RADIOLIB_ENCODING_NRZ` was being passed to `setDataShaping`. Flipped these to be passed to the correct functions. Note: These are both defined as `0x00` so this should have no impact on functionality, just makes initialization less confusing. --- src/modules/CC1101/CC1101.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/CC1101/CC1101.cpp b/src/modules/CC1101/CC1101.cpp index bf581fd5..98a2dadc 100644 --- a/src/modules/CC1101/CC1101.cpp +++ b/src/modules/CC1101/CC1101.cpp @@ -81,11 +81,11 @@ int16_t CC1101::begin(float freq, float br, float freqDev, float rxBw, int8_t po RADIOLIB_ASSERT(state); // set default data shaping - state = setDataShaping(RADIOLIB_ENCODING_NRZ); + state = setDataShaping(RADIOLIB_SHAPING_NONE); RADIOLIB_ASSERT(state); // set default encoding - state = setEncoding(RADIOLIB_SHAPING_NONE); + state = setEncoding(RADIOLIB_ENCODING_NRZ); RADIOLIB_ASSERT(state); // set default sync word From eed4075cb1d77a01e6b71eaf2cb7f7c53403af06 Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 26 Mar 2022 13:08:46 -0700 Subject: [PATCH 2/3] [RF69] Persist bit synchronization settings --- src/modules/RF69/RF69.cpp | 20 +++++++++++++++++--- src/modules/RF69/RF69.h | 2 ++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 8b3f441b..4c0e15ed 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -223,7 +223,11 @@ int16_t RF69::directMode() { RADIOLIB_ASSERT(state); // set continuous mode - return(_mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE_WITH_SYNC, 6, 5)); + if(_bitSync) { + return(_mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE_WITH_SYNC, 6, 5)); + } else { + return(_mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE, 6, 5)); + } } int16_t RF69::packetMode() { @@ -666,11 +670,21 @@ int16_t RF69::disableSyncWordFiltering() { } int16_t RF69::enableContinuousModeBitSync() { - return(_mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE_WITH_SYNC, 6, 5)); + int16_t state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE_WITH_SYNC, 6, 5); + if(state == RADIOLIB_ERR_NONE) { + _bitSync = true; + } + + return(state); } int16_t RF69::disableContinuousModeBitSync() { - return(_mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE, 6, 5)); + int16_t state = _mod->SPIsetRegValue(RADIOLIB_RF69_REG_DATA_MODUL, RADIOLIB_RF69_CONTINUOUS_MODE, 6, 5); + if(state == RADIOLIB_ERR_NONE) { + _bitSync = false; + } + + return(state); } int16_t RF69::setCrcFiltering(bool crcOn) { diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index 8e4afded..42c36b14 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -942,6 +942,8 @@ class RF69: public PhysicalLayer { uint8_t _syncWordLength = 2; + bool _bitSync = true; + int16_t config(); int16_t directMode(); int16_t setPacketMode(uint8_t mode, uint8_t len); From 4f19d97f428c2bb6ec89b4a3032ae396e1af0acd Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 27 Mar 2022 17:38:22 +0200 Subject: [PATCH 3/3] [SX126x] Set initial BW to 500 kHz for LLCC68 (#502) --- src/modules/SX126x/SX126x.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/SX126x/SX126x.cpp b/src/modules/SX126x/SX126x.cpp index bfe9dba5..56eb61b6 100644 --- a/src/modules/SX126x/SX126x.cpp +++ b/src/modules/SX126x/SX126x.cpp @@ -18,11 +18,11 @@ int16_t SX126x::begin(uint8_t cr, uint8_t syncWord, uint16_t preambleLength, flo // BW in kHz and SF are required in order to calculate LDRO for setModulationParams // set the defaults, this will get overwritten later anyway - _bwKhz = 125.0; + _bwKhz = 500.0; _sf = 9; // initialize configuration variables (will be overwritten during public settings configuration) - _bw = RADIOLIB_SX126X_LORA_BW_125_0; + _bw = RADIOLIB_SX126X_LORA_BW_500_0; // initialized to 500 kHz, since lower valeus will interfere with LLCC68 _cr = RADIOLIB_SX126X_LORA_CR_4_7; _ldro = 0x00; _crcType = RADIOLIB_SX126X_LORA_CRC_ON; @@ -1424,7 +1424,8 @@ int16_t SX126x::setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t } else { _ldro = ldro; } - + // 500/9/8 - 0x09 0x04 0x03 0x00 - SF9, BW125, 4/8 + // 500/11/8 - 0x0B 0x04 0x03 0x00 - SF11 BW125, 4/7 uint8_t data[4] = {sf, bw, cr, _ldro}; return(SPIwriteCommand(RADIOLIB_SX126X_CMD_SET_MODULATION_PARAMS, data, 4)); }