From 9ac6503bffa6ca578f4113c0554537a9a5dc0db6 Mon Sep 17 00:00:00 2001 From: jgromes Date: Fri, 7 May 2021 07:28:01 +0200 Subject: [PATCH] [SX128x] Fixed ranging calibration table indexing (#293) --- src/modules/SX128x/SX1280.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/SX128x/SX1280.cpp b/src/modules/SX128x/SX1280.cpp index eb9b3e0e..4e078280 100644 --- a/src/modules/SX128x/SX1280.cpp +++ b/src/modules/SX128x/SX1280.cpp @@ -85,6 +85,7 @@ int16_t SX1280::startRanging(bool master, uint32_t addr) { RADIOLIB_ASSERT(state); // set calibration values + uint8_t index = (_sf >> 4) - 5; static const uint16_t calTable[3][6] = { { 10299, 10271, 10244, 10242, 10230, 10246 }, { 11486, 11474, 11453, 11426, 11417, 11401 }, @@ -93,13 +94,13 @@ int16_t SX1280::startRanging(bool master, uint32_t addr) { uint16_t val = 0; switch(_bw) { case(SX128X_LORA_BW_406_25): - val = calTable[0][_sf]; + val = calTable[0][index]; break; case(SX128X_LORA_BW_812_50): - val = calTable[1][_sf]; + val = calTable[1][index]; break; case(SX128X_LORA_BW_1625_00): - val = calTable[2][_sf]; + val = calTable[2][index]; break; default: return(ERR_INVALID_BANDWIDTH);