From 31c2c8a7a3bc8b91d2e5d093f32532530b049063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Mon, 17 Oct 2022 10:00:00 +0200 Subject: [PATCH] only allow wide BW settings when the right chip is detected --- src/main.cpp | 3 +++ src/main.h | 1 + src/mesh/RadioInterface.cpp | 15 ++++++++------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 76833d5d4..090bcb9a7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -81,6 +81,8 @@ uint8_t kb_model; // The I2C address of the RTC Module (if found) uint8_t rtc_found; +bool rIf_wide_lora = false; + // Keystore Chips uint8_t keystore_found; #ifndef ARCH_PORTDUINO @@ -374,6 +376,7 @@ void setup() rIf = NULL; } else { DEBUG_MSG("SX1281 Radio init succeeded, using SX1281 radio\n"); + rIf_wide_lora = true; } } #endif diff --git a/src/main.h b/src/main.h index 3744c8acd..bd24dec76 100644 --- a/src/main.h +++ b/src/main.h @@ -17,6 +17,7 @@ extern uint8_t kb_model; extern uint8_t rtc_found; extern uint8_t keystore_found; +extern bool rIf_wide_lora; extern bool eink_found; extern bool pmu_found; extern bool isCharging; diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp index de2e95410..66dadf1b7 100644 --- a/src/mesh/RadioInterface.cpp +++ b/src/mesh/RadioInterface.cpp @@ -6,6 +6,7 @@ #include "Router.h" #include "assert.h" #include "configuration.h" +#include "main.h" #include "sleep.h" #include #include @@ -364,37 +365,37 @@ void RadioInterface::applyModemConfig() switch (loraConfig.modem_preset) { case Config_LoRaConfig_ModemPreset_SHORT_FAST: - bw = myRegion->wideLora ? 800 : 250; + bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250; cr = 8; sf = 7; break; case Config_LoRaConfig_ModemPreset_SHORT_SLOW: - bw = myRegion->wideLora ? 800 : 250; + bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250; cr = 8; sf = 8; break; case Config_LoRaConfig_ModemPreset_MEDIUM_FAST: - bw = myRegion->wideLora ? 800 : 250; + bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250; cr = 8; sf = 9; break; case Config_LoRaConfig_ModemPreset_MEDIUM_SLOW: - bw = myRegion->wideLora ? 800 : 250; + bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250; cr = 8; sf = 10; break; case Config_LoRaConfig_ModemPreset_LONG_FAST: - bw = myRegion->wideLora ? 800 : 250; + bw = (myRegion->wideLora && rIf_wide_lora) ? 800 : 250; cr = 8; sf = 11; break; case Config_LoRaConfig_ModemPreset_LONG_SLOW: - bw = myRegion->wideLora ? 400 : 125; + bw = (myRegion->wideLora && rIf_wide_lora) ? 400 : 125; cr = 8; sf = 12; break; case Config_LoRaConfig_ModemPreset_VERY_LONG_SLOW: - bw = myRegion->wideLora ? 200 : 31.25; + bw = (myRegion->wideLora && rIf_wide_lora) ? 200 : 31.25; cr = 8; sf = 12; break;