Central sometimes not receiving notifications

Hello there!

I am working on a central-peripheral connection, where sometimes the central is not receiving notification(s) from the peripheral. The central then asks for a retransmission, and the peripheral sends the notifications that didn't go through as well as the newest one.

The slave latency is set to 0 conn interval is 50ms, and I am using the radio notification callback and it's sample project, the only thing that differs is that the central subscribes to the peripheral, and the peripheral notifies the central at every radio notification callback. When I'm logging on the peripheral (ATT, GATT logging) I see that the notification is sent at every connection interval.

The BLE Sniffer is not catching the packet(s) either, maybe interference is the cause, or something else on the stack? If the notification doesn't go through I don't need the old data in the next connection event, only the new ones. Is there a way to disable the retransmission of these packets (either peripheral or central side)? 


Thanks for your help in advance!

Parents
  • Hi,

    Reading what you write, it seems like you are describing a normal Bleutooth LE connection, with retransmissions if a packet is not acknowledged. The packet will be retransmitted until it is ancknowledged (or supervision timeout occurs).

    Is there a way to disable the retransmission of these packets (either peripheral or central side)? 

    For normal BLE connections, no, retransmissions is always happenign and it is non-configurable. However, the newer LE Isochronous Channels allows configuring a fixed number of retransmissions (or non at all). This is not supported by all devices yet, though. (The primary use case for this is LE Audio, which is also a use case where old data serves no purpose). For an example, you can rerfer to Bluetooth: ISO combined BIS and CIS.

Reply
  • Hi,

    Reading what you write, it seems like you are describing a normal Bleutooth LE connection, with retransmissions if a packet is not acknowledged. The packet will be retransmitted until it is ancknowledged (or supervision timeout occurs).

    Is there a way to disable the retransmission of these packets (either peripheral or central side)? 

    For normal BLE connections, no, retransmissions is always happenign and it is non-configurable. However, the newer LE Isochronous Channels allows configuring a fixed number of retransmissions (or non at all). This is not supported by all devices yet, though. (The primary use case for this is LE Audio, which is also a use case where old data serves no purpose). For an example, you can rerfer to Bluetooth: ISO combined BIS and CIS.

Children
No Data
Related