2026-02-02 12:37 AM
Hello everyone,
I am facing severe stability issues with a Nucleo-WB55RG project generated via STM32CubeMX (FW Package V1.24.0).
The Core Problem: The device advertises and connects, but suffers from random "Silent" Disconnections (no event generated) - connection loops and eventually complete silent (advertisement doesnt start after disconnection). This happens in multiple scenarios, including simple idle connections and bonding attempts.
Detailed Scenarios:
1. Scenario A: Idle Connection (Without Bonding)
I connect using the ST BLE Toolbox app and leave it idle.
Behavior: After a random period (non-uniform time), the device automatically disconnects, reconnects, and enters a loop.
Observation: Even without initiating bonding, the link is unstable.
2. Scenario B: Pairing via Android Bluetooth Settings
I go to Android Settings > Bluetooth and tap the device to Pair.
Behavior: The phone displays "Pairing..." indefinitely.
Observation: The UART logs show "BLE Connected", but the handshake never completes. After a short while, the device silently disconnects and restarts the advertisement loop.
3. Scenario C: Bonding via ST BLE Toolbox
I connect and click the "Bond" button in the app.
Behavior: The app shows a Bonding, followed by the same silent disconnection.
Key Technical Observations:
Silent Failure: When these automatic disconnects happen (in any scenario above), my application DOES NOT receive the HCI_DISCONNECTION_COMPLETE_EVT.
Manual Disconnect Works: If I manually disconnect from the App before the crash, the Event IS received correctly.
Data Transfer: I haven't been able to verify data transfer reliability because the connection drops too frequently.
Setup Details:
Board: Nucleo-WB55RG
FW: V1.24.0 (Binaries updated via CubeProgrammer).
Security: Just Works (NoInputNoOutput), Bonding Enabled.
Clock: Default CubeMX configuration (LSE: 32.768kHz).
Questions:
Why does the M0+ stack drop the link without triggering a Disconnection Event to the M4 core?
Could this random instability be related to LSE Clock accuracy/configuration?
Has anyone successfully used "Just Works" bonding on FW 1.24 without these hangs?
I have attached IOC file for reference, also, i am currently using generated code only, not even started application logic.
Any insights would be helpful.