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

Recommended configuration for data length extension + multiple connections

Hi

The concept of setting the event_length (the time set aside per connection) was introduced post softdevice v3.0.0. To my understanding, with softdevice v3.0.0, the softdevice dynamically sets the time allocated per connection depending on the number of connections. My questions are:-

  1. Is it possible to replicate this behavior for the current version (v5.0.0) of the softdevice?
  2. What is the relation (if any) between 'event_length' and 'connection interval'?
  3. What is the recommended configuration for achieving both data length extension and 8+ connections?

To give some context, we are currently trying to write an app which is capable of both: data length extension and 8 simultaneous connections+pairings. We are therefore setting our event_length to 320 (i.e. 400ms for data length extension and high throughput) and our conn_count to 8 when enabling the softdevice. Everything works fine and we don't get any errors when enabling the softdevice. However, when we try to pair with the connected devices, the pairing process fails. This looks to be a timing issue because successful pairing is performed over several connection intervals. When we change our event_length to BLE_GAP_EVENT_LENGTH_DEFAULT (3), the process succeeds without an issue. Also, the same process succeeds on v3.0.0 of the softdevice.

We are using softdevice S132 v5.0.0 on an nrf52832 chip.

Thanks

    1. Not really dynamically with v3.0.0. The amount of time allocated depended on the bandwidth configuration. And then you had connection event extension that kicked in if there was more time.

    2. The event length specifies the length reserved for a connection event, the connection interval specifies the maximum event length.

    3. Have you seen this? With 8 central connections with a connection interval of 400 ms on each, and even distribution of "throughput". I would set the event length to around 50 ms, but this has to be tuned. 400 ms event length and 400 ms connection interval should only be used if you have 1 connection, because then you are giving all radio time to one connection.

  • Thanks for the link. So without taking connection event extension into consideration, what was the exact allocation in softdevice v3.0.0 (For low, medium, and high bandwidth configuration) in terms of event length?

  • It should be around the values for tEEO in Table 25 in S132 SDS .

  • Unfortunately this is still fuzzy to me. What I understood from the links and documentation is that for sd3.0.0, the low, mid, and high BW were 1, 3, and 6 (and this is equivalent to the number of 27-byte packets that could be sent). This means for HIGH BW we could get 6 packets through. However, changing the packet length to 251 still meant that 6 packets could be sent through, given that the connection interval was increased. This isn't the case for the current version of the softdevice.

  • More importantly, reverting to the scenario of having 1 connection only, and with event length extension disabled, what should I set the event length to in order to replicate the LOW, MID, and HIGH BW in sd v3.0.0? I tried 1, 3, and 6 (respectively) - which also happens to be the equivalent to tEEO values - but the throughput values were well below what we were seeing with sdv3.0.0. It's as if for packet lengths of 251, the LOW, MID, and HIGH values are different than for packet lengths of 27 bytes. Any thoughts?

Related