From fe3afaab3d5dc196e5cf8cbe8562b99d910c250e Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Thu, 2 Sep 2021 02:28:19 +0300 Subject: [PATCH 1/5] Reflecting changes from upstream RadioLib in https://github.com/osmanovv/RadioLib/tree/upstream-merge (https://github.com/osmanovv/RadioLib/commit/252fe74d5386c4a28bc7f69f5d3bd3962a6c9780) The argument `currentLimit` was removed from the `begin` method: https://github.com/jgromes/RadioLib/commit/e1141ca64c2f19110eac84f123d89861e98c4650#diff-507c32190e4a29ffe411c8eab06c75b594c5d2a5fd92e5cb703b787e5f019589L568 --- src/mesh/RadioLibRF95.cpp | 4 ++-- src/mesh/SX1262Interface.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mesh/RadioLibRF95.cpp b/src/mesh/RadioLibRF95.cpp index 364a7591f..fa4299b8e 100644 --- a/src/mesh/RadioLibRF95.cpp +++ b/src/mesh/RadioLibRF95.cpp @@ -14,9 +14,9 @@ int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_ uint16_t preambleLength, uint8_t gain) { // execute common part - int16_t state = SX127x::begin(RF95_CHIP_VERSION, syncWord, currentLimit, preambleLength); + int16_t state = SX127x::begin(RF95_CHIP_VERSION, syncWord, preambleLength); if (state != ERR_NONE) - state = SX127x::begin(RF95_ALT_VERSION, syncWord, currentLimit, preambleLength); + state = SX127x::begin(RF95_ALT_VERSION, syncWord, preambleLength); RADIOLIB_ASSERT(state); // configure settings not accessible by API diff --git a/src/mesh/SX1262Interface.cpp b/src/mesh/SX1262Interface.cpp index 002050f13..0d27bb0b2 100644 --- a/src/mesh/SX1262Interface.cpp +++ b/src/mesh/SX1262Interface.cpp @@ -50,7 +50,7 @@ bool SX1262Interface::init() limitPower(); - int res = lora.begin(freq, bw, sf, cr, syncWord, power, currentLimit, preambleLength, tcxoVoltage, useRegulatorLDO); + int res = lora.begin(freq, bw, sf, cr, syncWord, power, preambleLength, tcxoVoltage, useRegulatorLDO); DEBUG_MSG("SX1262 init result %d\n", res); #ifdef SX1262_TXEN From f40bd0745c19e2e1976be928ee0d1d45601988ca Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Thu, 2 Sep 2021 11:34:33 +0300 Subject: [PATCH 2/5] The argument `currentLimit` was removed from the `begin` method More info: jgromes/RadioLib@e1141ca#diff-507c32190e4a29ffe411c8eab06c75b594c5d2a5fd92e5cb703b787e5f019589L568 --- src/mesh/RadioLibRF95.cpp | 2 +- src/mesh/RadioLibRF95.h | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/mesh/RadioLibRF95.cpp b/src/mesh/RadioLibRF95.cpp index fa4299b8e..1bb2eca42 100644 --- a/src/mesh/RadioLibRF95.cpp +++ b/src/mesh/RadioLibRF95.cpp @@ -10,7 +10,7 @@ RadioLibRF95::RadioLibRF95(Module *mod) : SX1278(mod) {} -int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power, uint8_t currentLimit, +int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, int8_t power, uint16_t preambleLength, uint8_t gain) { // execute common part diff --git a/src/mesh/RadioLibRF95.h b/src/mesh/RadioLibRF95.h index 3c45a8f44..bfe805f42 100644 --- a/src/mesh/RadioLibRF95.h +++ b/src/mesh/RadioLibRF95.h @@ -35,9 +35,6 @@ class RadioLibRF95: public SX1278 { \param power Transmission output power in dBm. Allowed values range from 2 to 17 dBm. - \param currentLimit Trim value for OCP (over current protection) in mA. Can be set to multiplies of 5 in range 45 to 120 mA and to multiples of 10 in range 120 to 240 mA. - Set to 0 to disable OCP (not recommended). - \param preambleLength Length of %LoRa transmission preamble in symbols. The actual preamble length is 4.25 symbols longer than the set number. Allowed values range from 6 to 65535. @@ -46,7 +43,7 @@ class RadioLibRF95: public SX1278 { \returns \ref status_codes */ - int16_t begin(float freq = 915.0, float bw = 125.0, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = SX127X_SYNC_WORD, int8_t power = 17, uint8_t currentLimit = 100, uint16_t preambleLength = 8, uint8_t gain = 0); + int16_t begin(float freq = 915.0, float bw = 125.0, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = SX127X_SYNC_WORD, int8_t power = 17, uint16_t preambleLength = 8, uint8_t gain = 0); // configuration methods From e3ed63794235f6933e5da09d7155aa438f7e3d08 Mon Sep 17 00:00:00 2001 From: Kevin Hester Date: Sat, 4 Sep 2021 18:06:23 -0700 Subject: [PATCH 3/5] reference the updated radilib sha256 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 79f838f82..c979d8473 100644 --- a/platformio.ini +++ b/platformio.ini @@ -72,7 +72,7 @@ lib_deps = 1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib https://github.com/meshtastic/arduino-fsm.git https://github.com/meshtastic/SparkFun_Ublox_Arduino_Library.git#31015a55e630a2df77d9d714669c621a5bf355ad - https://github.com/meshtastic/RadioLib.git#80ed10d689a0568782c5bd152906b0f97d2bce93 + https://github.com/meshtastic/RadioLib.git#d82e9e6cf5d014a600981885fff98f56896659e9 https://github.com/meshtastic/TinyGPSPlus.git#f0f47067ef2f67c856475933188251c1ef615e79 https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460 Wire ; explicitly needed here because the AXP202 library forgets to add it From 1a671f287753e9140b72dd8bd83676766059fa0b Mon Sep 17 00:00:00 2001 From: Vladislav Osmanov <7123463+osmanovv@users.noreply.github.com> Date: Wed, 8 Sep 2021 14:30:52 +0300 Subject: [PATCH 4/5] override new RadioLib's default current limit value (60 mA) to the previous value of 100mA --- src/mesh/RF95Interface.cpp | 6 ++++++ src/mesh/RadioLibRF95.cpp | 6 ++++++ src/mesh/RadioLibRF95.h | 5 +++++ src/mesh/SX1262Interface.cpp | 6 ++++++ 4 files changed, 23 insertions(+) diff --git a/src/mesh/RF95Interface.cpp b/src/mesh/RF95Interface.cpp index 8ba3b6e29..8b7d9f112 100644 --- a/src/mesh/RF95Interface.cpp +++ b/src/mesh/RF95Interface.cpp @@ -70,6 +70,12 @@ bool RF95Interface::init() int res = lora->begin(freq, bw, sf, cr, syncWord, power, currentLimit, preambleLength); DEBUG_MSG("RF95 init result %d\n", res); + // current limit was removed from module' ctor + // override default value (60 mA) + res = lora->setCurrentLimit(currentLimit); + DEBUG_MSG("Current limit set to %f\n", currentLimit); + DEBUG_MSG("Current limit set result %d\n", res); + if (res == ERR_NONE) res = lora->setCRC(SX126X_LORA_CRC_ON); diff --git a/src/mesh/RadioLibRF95.cpp b/src/mesh/RadioLibRF95.cpp index 1bb2eca42..dcb987d1b 100644 --- a/src/mesh/RadioLibRF95.cpp +++ b/src/mesh/RadioLibRF95.cpp @@ -19,6 +19,12 @@ int16_t RadioLibRF95::begin(float freq, float bw, uint8_t sf, uint8_t cr, uint8_ state = SX127x::begin(RF95_ALT_VERSION, syncWord, preambleLength); RADIOLIB_ASSERT(state); + // current limit was removed from module' ctor + // override default value (60 mA) + state = setCurrentLimit(currentLimit); + DEBUG_MSG("Current limit set to %f\n", currentLimit); + DEBUG_MSG("Current limit set result %d\n", state); + // configure settings not accessible by API state = config(); RADIOLIB_ASSERT(state); diff --git a/src/mesh/RadioLibRF95.h b/src/mesh/RadioLibRF95.h index bfe805f42..d6aeb541a 100644 --- a/src/mesh/RadioLibRF95.h +++ b/src/mesh/RadioLibRF95.h @@ -62,6 +62,11 @@ class RadioLibRF95: public SX1278 { /// For debugging uint8_t readReg(uint8_t addr); + protected: + // since default current limit for SX126x/127x in updated RadioLib is 60mA + // use the previous value + float currentLimit = 100; + #ifndef RADIOLIB_GODMODE private: #endif diff --git a/src/mesh/SX1262Interface.cpp b/src/mesh/SX1262Interface.cpp index 0d27bb0b2..76d44625f 100644 --- a/src/mesh/SX1262Interface.cpp +++ b/src/mesh/SX1262Interface.cpp @@ -53,6 +53,12 @@ bool SX1262Interface::init() int res = lora.begin(freq, bw, sf, cr, syncWord, power, preambleLength, tcxoVoltage, useRegulatorLDO); DEBUG_MSG("SX1262 init result %d\n", res); + // current limit was removed from module' ctor + // override default value (60 mA) + res = lora.setCurrentLimit(currentLimit); + DEBUG_MSG("Current limit set to %f\n", currentLimit); + DEBUG_MSG("Current limit set result %d\n", res); + #ifdef SX1262_TXEN // lora.begin sets Dio2 as RF switch control, which is not true if we are manually controlling RX and TX if (res == ERR_NONE) From be9d637c7cff47aff4ea7cbe14fbb06f2e15651b Mon Sep 17 00:00:00 2001 From: Kevin Hester Date: Wed, 8 Sep 2021 14:08:02 -0700 Subject: [PATCH 5/5] update platformio.ini to pull in latest RadioLib (with portduino fixes) --- platformio.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platformio.ini b/platformio.ini index c979d8473..f43323452 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,14 +9,14 @@ ; https://docs.platformio.org/page/projectconf.html [platformio] -;default_envs = tbeam +default_envs = tbeam ;default_envs = tbeam0.7 ;default_envs = heltec-v2.0 ;default_envs = tlora-v1 ;default_envs = tlora_v1_3 ;default_envs = tlora-v2 ;default_envs = lora-relay-v1 # nrf board -default_envs = t-echo +;default_envs = t-echo ;default_envs = nrf52840dk-geeksville ;default_envs = native # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here ;default_envs = rak4631 @@ -72,7 +72,7 @@ lib_deps = 1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib https://github.com/meshtastic/arduino-fsm.git https://github.com/meshtastic/SparkFun_Ublox_Arduino_Library.git#31015a55e630a2df77d9d714669c621a5bf355ad - https://github.com/meshtastic/RadioLib.git#d82e9e6cf5d014a600981885fff98f56896659e9 + https://github.com/meshtastic/RadioLib.git#5582ac30578ff3f53f20630a00b2a8a4b8f92c74 https://github.com/meshtastic/TinyGPSPlus.git#f0f47067ef2f67c856475933188251c1ef615e79 https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460 Wire ; explicitly needed here because the AXP202 library forgets to add it