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

What are the limitations when using the S132 central with 20 peripherals connected?

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?).

  • I would reduce the scan interval (and window), and/or give more headroom for scanning. The way this is scheduled is that after the first scan event the full "series" of consecutive scan events will follow regularly, back to back, fixed in the frequency given by the scan interval. Any of them colliding with active connections gets discarded. By using shorter intervals+windows more of that "free time" left after all the connection events will be utilized.

    In the end you should do some testing on a full 20 peripheral setup, in order to verify that it works as intended. Most likely you will have to do some tweaking of the settings based on the real world testing.

  • I may have found a bug in the stack.  When I increase NRF_SDH_BLE_CENTRAL_LINK_COUNT above 15, I start getting errors.  The error I am seeing is:


    implicit declaration of function 'MACRO_REPEAT_FOR_16'

    I found that the macro list stops at 15.  Is this a bug or am I doing something wrong?

  • Even after fixing all the macros, I now get an error NRF_ERROR_INTERNAL when calling nrf_sdh_ble_enable.  Has Nordic verified that 20 central connections works with the latest stack?  It's pretty easy to test by just adjusting the sdk_config in the ble central multilink example.

  • I take that back, looks like the error is actually NRF_ERROR_NO_MEM.  I still question if 20 centrals have been tested.

  • I increased the memory for the softdevice and added all the macros to get the system to build with 20 peripherals connected to a central.  It sometimes works, but usually what happens is the system connects to the 20 peripherals, but constantly tries a connection request to the same mac instead of cycling between all of them.  If I back the system down to 8 peripherals, everything seems ok.  Has anyone tried using more than 8 peripherals connected to a central?

Related