Immediate Disconnection with NUS - Error Code 23 (Collision) When Using Python/Rust as Central

Hello everyone,

I'm currently transitioning a project from traditional BLE communication to the Nordic UART Service (NUS). The previous setup worked fine, but after replacing it with NUS, I've run into an issue.

Setup:
Peripheral: Custom hardware running Zephyr (3.7) with NUS.
Centrals: Python (using Bleak) and Rust.
Issue:
The NUS implementation works perfectly with the nRF Connect app. However, when I try to connect using my Python or Rust code as the central, the connection initializes successfully but then immediately disconnects. I'm receiving an error code 23, which I understand signifies a collision.

Details:
The peripheral code is nearly identical to the NUS example provided by Zephyr (docs.zephyrproject.org/.../README.html), with the addition of connected and disconnected callbacks.
The disconnection happens almost instantly after the connection is established.

Additional Information:
My Python and Rust centrals worked with the BMD-380 board for NUS and the custom hardware using the other BLE protocol.

Has anyone experienced a similar issue or have any insights on why this might be happening? Any suggestions for troubleshooting or resolving this collision error would be greatly appreciated!

Thanks in advance for your help!

Related