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

BLE transmission concurrency

Hello! When two devices, Peripheral/Server and Central/Client, try to send Notifications and Write Commands, respectively, to each other at the maximum capable rate, who will transmit when? Consider an nRF5188 and an Android device that support 4 packets per connection interval, and both want to use the four available packet slots. Who transmits in what slot?

Parents
  • All BTLE communications are Central TX, Peripheral TX ... etc, that's the basic communications protocol. So there's no room for doubt, the central will send its first packet in its first transmission, then the peripheral will send its first packet and so on. They'll continue sending packets for as long as the connection window is open, marking them appropriately with the 'more data' flag, dealing with any retransmissions, and then continue where they left off at the next connection interval. If at any point one side 'runs out' of packets to send but the other side is still indicating it has more data, it will send empty packets in its slot and the comms will continue.

  • So in a 4 packets for connection interval communication, the Central always sends 2 packets, and the same applies to the Peripheral, even if the packets are empty. Is that it? Where is this mentioned on the specification?

Reply Children
No Data
Related