From cfe4b0b9a5d60cf3f98b1cea70eb875481236098 Mon Sep 17 00:00:00 2001 From: liamcottle Date: Sat, 18 Apr 2026 14:43:47 +1200 Subject: [PATCH] bleuart service stay registered first to prevent gatt cache issues on android when already paired --- src/helpers/nrf52/SerialBLEInterface.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/helpers/nrf52/SerialBLEInterface.cpp b/src/helpers/nrf52/SerialBLEInterface.cpp index c7c211a3..75a4e3b0 100644 --- a/src/helpers/nrf52/SerialBLEInterface.cpp +++ b/src/helpers/nrf52/SerialBLEInterface.cpp @@ -177,15 +177,17 @@ void SerialBLEInterface::begin(const char* prefix, char* name, uint32_t pin_code Bluefruit.setEventCallback(onBLEEvent); + bleuart.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); + bleuart.begin(); + bleuart.setRxCallback(onBleUartRX); + + + // Register DFU on the main BLE stack so paired clients can discover it // without switching the device into a separate OTA-only BLE mode first. bledfu.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); bledfu.begin(); - bleuart.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); - bleuart.begin(); - bleuart.setRxCallback(onBleUartRX); - Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE); Bluefruit.Advertising.addTxPower(); Bluefruit.Advertising.addService(bleuart);