diff --git a/src/main.cpp b/src/main.cpp index 76833d5d..090bcb9a 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 3744c8ac..bd24dec7 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 de2e9541..66dadf1b 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;