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

Connection priority

We are running an application in dual mode (central + peripheral) where we relay the data from the peripherals up to the top central. Is it possible to control the priorities of the BLE connections?

E.g. if one of the peripheral connections starts streaming more data I would like to prioritize retrieving the data from that connection instead of the connection to the top central device. 

I suspect that the how much traffic is allowed for each connection is mostly controlled by the connection parameters but is there some priority configuration which can temporarily give more throughput to a specific device type?

Parents
  • It's not possible to control connection priorities directly. The Softdevice is responsible for scheduling the links as efficient as possible and avoid collisions. But as you said,  you can control the throughput by selecting appropriate connection parameters such as connection intervals, MTU length, and data length. These parameters can be configured individually for each link (can be negotiated dynamically with GATT and connection param modules). See the "Suggested intervals and windows" chapter of the Softdevice specification for general recommendations.

  • Ok thank you. But what does as 'efficient as possible' mean? Is the algorithm used by the SoftDevice documented somewhere?

    What if we use event length extension and multiple peripherals start transmitting more data at the same time? Does the SoftDevice try to balance it so that all the peripherals get the same event length?

Reply Children
Related