Distribution of connection intervals for multiple connections.

Hi all!

I'm trying to figure out how softdevice distributes connection intervals on multiple connections.

The test scheme for connecting devices is as follows: 
Devices 2,3,4 looking for advertising from 1 and connect to it.

For simplicity, I have set the following connection options:

  • NRF_SDH_BLE_GAP_EVENT_LENGTH = 16
  • NRF_SDH_BLE_TOTAL_LINK_COUNT = 5
  • max_conn_interval = 100 ms
  • min_conn_interval = 100 ms
  • slave_latency = 0

All three devices connected with phy coded, DLE=251 bytes, MTU=247 bytes, checked the settings after connection:

  • max_rx_octets = 251
  • max_tx_octets = 251
  • max_rx_time = 2704 us
  • max_tx_time = 2704 us

Currently using NRF SDK 17.1 and s140_nrf52_7.2.0_softdevice.
I would update but don't know how yet as Nordic doesn't update the sdk anymore.

After reading the documentation, I concluded that the connection interval for device number 1 will be distributed evenly, every NRF_SDH_BLE_GAP_EVENT_LENGTH * 1.25 milliseconds.
However, in practice, I get a random distribution of intervals.

On every reboot of devices 2,3,4 I get a random position of connection intervals that are not a multiple of NRF_SDH_BLE_GAP_EVENT_LENGTH * 1.25 ms and sometimes conflict.

This is important to me for three reasons:

  1. I cannot guarantee that I will be able to send N packets per interval.
  2. Because of this, the speed drops and it becomes unpredictable.
  3. Since I will not always be able to transfer the entire packet for the connection interval, the packet transfer delay increases.

So my question is why is this happening?
Can this be managed somehow?
How does it really work?
Does this only work for when the central device has multiple connections?

Parents Reply
  • The next experiment was this scheme:

    It turns out that I have no way to synchronize the connection interval between 1<->2 and 2<->3. It's a pity because I can't fully use the radio channel. 
    Any ideas? For example, in such a topology, we have two connections 1 <-> 2 and 2 <-> 3 that are controlled by the master, it turns out that he must have the authority to manage the connection interval and, in theory, shift as I need it.

Children
Related