diff --git a/src/helpers/CommonCLI.cpp b/src/helpers/CommonCLI.cpp index 4f92e2e4..e9a49c69 100644 --- a/src/helpers/CommonCLI.cpp +++ b/src/helpers/CommonCLI.cpp @@ -88,8 +88,12 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) { file.read((uint8_t *)&_prefs->discovery_mod_timestamp, sizeof(_prefs->discovery_mod_timestamp)); // 162 file.read((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166 file.read((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170 - file.read((uint8_t *)&_prefs->led_status_mode, sizeof(_prefs->led_status_mode)); // 290 - file.read((uint8_t *)&_prefs->led_activity_mode, sizeof(_prefs->led_activity_mode)); // 291 + + // LED prefs added later; older prefs files end at offset 290 + if (file.available() >= 2) { + file.read((uint8_t *)&_prefs->led_status_mode, sizeof(_prefs->led_status_mode)); // 290 + file.read((uint8_t *)&_prefs->led_activity_mode, sizeof(_prefs->led_activity_mode)); // 291 + } // next: 292 // sanitise bad pref values diff --git a/src/helpers/nrf52/SerialBLEInterface.cpp b/src/helpers/nrf52/SerialBLEInterface.cpp index 1d838c8e..7e2958ac 100644 --- a/src/helpers/nrf52/SerialBLEInterface.cpp +++ b/src/helpers/nrf52/SerialBLEInterface.cpp @@ -41,8 +41,8 @@ void SerialBLEInterface::onDisconnect(uint16_t connection_handle, uint8_t reason instance->_conn_handle = BLE_CONN_HANDLE_INVALID; instance->_isDeviceConnected = false; instance->clearBuffers(); - // Advertising auto-restarts on disconnect - if (instance->_ledManager) instance->_ledManager->setActivityState(LED_CONN_ADVERTISING); + // Advertising auto-restarts on disconnect, but only if BLE is still enabled + if (instance->_isEnabled && instance->_ledManager) instance->_ledManager->setActivityState(LED_CONN_ADVERTISING); } } } diff --git a/variants/rak11310/RAK11310Board.cpp b/variants/rak11310/RAK11310Board.cpp index b290960a..f3cdf904 100644 --- a/variants/rak11310/RAK11310Board.cpp +++ b/variants/rak11310/RAK11310Board.cpp @@ -21,7 +21,8 @@ void RAK11310Board::begin() { delay(10); // give sx1262 some time to power up // Start LEDs with defaults; prefs are applied after loadPrefs() - static LEDManager _ledManager(23, 24); + // green led = 23, blue led = P_LORA_TX_LED (24) + static LEDManager _ledManager(23, P_LORA_TX_LED); ledManager = &_ledManager; ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH); } diff --git a/variants/thinknode_m1/ThinkNodeM1Board.cpp b/variants/thinknode_m1/ThinkNodeM1Board.cpp index 9b95dab9..56965803 100644 --- a/variants/thinknode_m1/ThinkNodeM1Board.cpp +++ b/variants/thinknode_m1/ThinkNodeM1Board.cpp @@ -15,8 +15,8 @@ void ThinkNodeM1Board::begin() { delay(10); // give sx1262 some time to power up // Start LEDs with defaults; prefs are applied after loadPrefs() - // LED_GREEN is active-LOW (LED_STATE_ON=LOW), P_LORA_TX_LED(13) is active-HIGH - static LEDManager _ledManager(LED_GREEN, 13, false, true); + // LED_GREEN is active-LOW (LED_STATE_ON=LOW), P_LORA_TX_LED is active-HIGH + static LEDManager _ledManager(LED_GREEN, P_LORA_TX_LED, false, true); ledManager = &_ledManager; ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH); } diff --git a/variants/wio_wm1110/WioWM1110Board.cpp b/variants/wio_wm1110/WioWM1110Board.cpp index c6684bbb..d8f1afd2 100644 --- a/variants/wio_wm1110/WioWM1110Board.cpp +++ b/variants/wio_wm1110/WioWM1110Board.cpp @@ -26,7 +26,6 @@ void WioWM1110Board::begin() { delay(10); // Start LEDs with defaults; prefs are applied after loadPrefs() - // LED_GREEN was previously always on; LED_STATUS_ALWAYS_ON preserves that behavior static LEDManager _ledManager(LED_GREEN, LED_RED); ledManager = &_ledManager; ledManager->begin(LED_STATUS_BOOT_30S, LED_ACTIVITY_BOTH);