You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update CLAUDE.local.md with Issue #3 resolution and current status.
BLE connections now working on STM32WB55 with both peripheral and
central roles successfully delivering IRQ events.
Signed-off-by: Andrew Leech <[email protected]>
- No advertising reports received during scan (no devices detected)
307
-
- Scan STOP command (LE_SET_SCAN_ENABLE disable) times out waiting for HCI response
308
-
- Command sent: `>HCI_CMD(01:0c:20:02:00:00)`
309
-
- No response received from controller
310
-
- Causes 10s timeout in `bt_hci_cmd_send_sync()` → fatal error
311
-
- Likely issue: HCI event routing or STM32WB RF core not delivering events properly
306
+
### Issue #3: BLE Connection IRQ Events Not Delivered (FIXED)
307
+
**Problem**: Multi-test `ble_gap_connect.py` failed - STM32WB55 peripheral never received `_IRQ_CENTRAL_CONNECT` or `_IRQ_CENTRAL_DISCONNECT` events, though Pyboard-D central successfully connected.
308
+
309
+
**Root Cause**:
310
+
- Zephyr's `le_set_event_mask()` function (`lib/zephyr/subsys/bluetooth/host/hci_core.c:3529-3542`) conditionally enables different LE connection event types based on `CONFIG_BT_SMP`:
311
+
- When `CONFIG_BT_SMP=1`: Enables **LE Enhanced Connection Complete** events (HCI event mask bit 9)
312
+
- When `CONFIG_BT_SMP=0`: Enables **LE Connection Complete** events (HCI event mask bit 0 - legacy BLE 4.x)
**Note**: Disabling CONFIG_BT_SMP also disables Security Manager Protocol features (pairing, bonding, encryption). This is acceptable for initial bring-up and basic connection testing. Future work may need to support enhanced connection events or implement SMP differently.
312
337
313
338
## Next Steps
314
339
315
-
1. **URGENT**: Investigate why scan STOP command times out
316
-
- Check HCI event processing in work queue
317
-
- Verify STM32WB RF core event delivery
318
-
- May need to check IPCC interrupt handling
319
-
2. Debug why no advertising reports are received
320
-
- Verify HCI event routing for LE_ADVERTISING_REPORT events
321
-
- Check if events are making it from RF core to host stack
322
-
3. Once scanning works, test advertising functionality
323
-
4. Test BLE connections (central and peripheral roles)
324
-
5. Test on RP2 Pico 2 W with both fixes applied
340
+
1. Disable debug logging and verify multi-tests pass cleanly
341
+
2. Test additional BLE functionality (GATT, notifications, etc.)
342
+
3. Test on RP2 Pico 2 W with all three fixes applied
343
+
4. Consider long-term solution for SMP support with enhanced connection events
325
344
326
345
Use arm-none-eabi-gdb proactively to diagnose issues. The probe-rs agent or `~/.claude/agents/probe-rs-flash.md` has specific usage details.
0 commit comments