bt_gatt_notify_cb callback delayed by one connection interval. Faster alternative?


I'm developing an application where data is streamed from a BLE peripheral using notifications. I'm currently using bt_gatt_notify_cb to send each packet and wait until the completion callback is invoked before sending the next packet. I've noticed that the completion callback is consistently delayed by about one connection interval. I'm assuming this is related to how the BLE stack handles packet ACKing, as mentioned in this thread the.

Since I'm interested in minimizing latency, I wonder: Is there some other notification mechanism that I could use that does not suffer from this delay, like some lower level SoftDevice or BLE stack events?

I'm using nRF Connect SDK 2.5 and SoftDevice.


  • Maybe I'm missing something, but that example seems to show how to get events at each connection interval (which I'm already doing in my application using the MPSL radio notifications API). Looking at the sample code and sdc_hci_vs.h it's not obvious to me how it relates to receiving events on completed transmission of notifications. Is it possible to do this using the SoftDevice Controller Vendor Specific HCI Interface? If so, any pointers would be much appreciated.

  • Hello,

    My last reply was a suggestion to your question: "Getting the callback before the next connection event would be good enough for my use case. Is there perhaps a way of achieving that?"

    I don't really have any other suggestion than what you are already are aware of.