Are there any limitations when the central is connected to 20 peripherals at the same time? Is there a minimum connection interval (ie, can I set them all to 7.5ms?).
Are there any limitations when the central is connected to 20 peripherals at the same time? Is there a minimum connection interval (ie, can I set them all to 7.5ms?).
Hi,
Shortest possible connection interval for n connections mainly depends on the event lengths of those connections, which is configurable in 1.25 ms units. For s132 v5 the minimum event length setting is 2.5 ms (2 units) and the default setting is 3.75 ms (3 units). (See sd_ble_cfg_set(), and the setting structure ble_cfg_t --> ble_conn_cfg_t --> ble_gap_conn_cfg_t for setting the event length.)
How connections are scheduled is described at length in the Scheduling chapter of the SoftDevice specification. Sections "Suggested intervals and windows" and "Connection timing as a Central" should be of particular interest.
In short, for the minimum event length of 2.5 ms the theoretical minimum connection interval is 20 * 2.5 ms = 50 ms. (Provided that there has been large enough timing windows for setting up the connections prior to that.)
Regards
Terje
Thanks, this was very helpful.
I read through the documentation and still have some questions. I changed the event length on the central to 2 (2.5ms). I also see that there is a setting for min/max connection intervals in the central side. In the multi-link example, they are set to 9.375 and 37.5ms. That project uses a max of 8 connections. Since my project has a max of 20, should I set these both to 50ms on the central side? Same on the peripheral side?
Also, let's say the system connects to only 19 peripherals and continues to scan for the 20th. Does that scanning process interfere with the timing of the already established connections to the other 19 peripherals? It it does, would increasing the connection interval help with this? I would assume it would based on the documentation, but not sure how to set this up.
I now see the section on the Scanner timing as well in the documentation. It's still a bit unclear to me how this would work. I see that the scan window occurs after all the connections. So if my interval is 50ms, that would only leave 2.5ms at the end for scanning when 19 peripherals are connected. I think it makes sense to increase the interval. Is this correct?
I now see the section on the Scanner timing as well in the documentation. It's still a bit unclear to me how this would work. I see that the scan window occurs after all the connections. So if my interval is 50ms, that would only leave 2.5ms at the end for scanning when 19 peripherals are connected. I think it makes sense to increase the interval. Is this correct?