- Platform: nRF52832 with nRF Connect SDK (NCS) v3.1.0
- BLE Roles: The device operates simultaneously as:
- A BLE Central (NUS Client), connecting to an external peripheral
- A BLE Peripheral (NUS Server), being connected by an external central
This forms a "dual-role" (central + peripheral) architecture.
- Primary Service: Both connections use the Nordic UART Service (NUS) for data communication.
The device experiences intermittent watchdog resets after running continuously for periods ranging from several minutes to several days. The issue has a low reproduction rate and occurs in production environments, where real-time log capture via UART or RTT is not feasible. As a result, identifying the root cause has been extremely difficult.
We suspect this behavior may be related to the following known issues in V3.1.0:
- NCSDK-31528: Deadlock on the system workqueue in central role caused by
tx_notify - NCSDK-30959: Potential deadlock in the Bluetooth subsystem when
CONFIG_BT_HCI_ACL_FLOW_CONTROLis disabled
- In the absence of real-time logging, are there practical methods to determine whether a watchdog reset was caused by one of these BLE-related deadlocks? (e.g., analyzing reset reason registers, preserving RAM across resets, using watchdog timeout callbacks, or enabling crash dumps?)
- Is the dual-role configuration (Central + Peripheral) with concurrent NUS Client and NUS Server known to have stability issues in NCS v3.1.0?