This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF_ERROR_BUSY from sd_ble_gattc_write

Hello,

I am currently trying to figure out a problem with my mesh. If I stop the event handling of one node, other nodes in the network will fail to send data from this point because the TX buffer is never freed. Here's what I do:

  • Instruct multiple nodes to send data
  • Block one node's event handling from processing the events

If I test with two nodes, and I block one of them, the other one is constantly resending the packet which is kind of what I expect. After I unblock it, the packet is successfully transmitted.

However, if the other node keeps other connections as well, it seems that it does not try to resend the packet and the buffer is never freed.

I have now introduced a command that lets me try to send the packet despite that there are no free buffers. But both sides can't seem to send any more packets. Whenever I try to send something, I get the NRF_ERROR_BUSY. Both nodes are still connected to each other but none of them is trying to send anything over the air.

Thanks, Marius

Related