Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BLE Multi-Role Multi-Link intervals for reliable connections

I am using the latest SDK 15.2

I am trying to build a network of "nodes" these nodes both scan and advertise and will connect with each other.

i currently have 7 NRF dev boards connecting to each other and every 5 seconds will send a 100 byte packet to all connected devices.

in the most part this is working.. but devices will disconnect and eventually get into a stuck state.I think it is due to the fact that their radio is too busy

Are there any recommendations for

  • Advertising Interval
  • scanning interval / window
  • connection Intervals

When running multi link and multi role with larger than normal payload?

Ideally i want to be able to connect up to 15 devices together (so 7 Central Links and 7 Peripheral Links) with the Largest payload possible (preferably no smaller than 100 bytes)

Any help would be greatly appreciated.

Regards,

David Hutchinson

  • Hello David,

    I believe that the first thing you should check is the disconnect reason in your disconnected events. Check on both sides of the connection, peripheral and the central.

    You are closing in on the limit of possible connections when you have 15 connections. Is there a reason for why 7 are central and 7 peripheral? Do want all devices to be connected to all other devices?

    100 bytes every 5 seconds is not a lot of payload data, but depending on the connection, you must either use a long MTU and enable Data Length Extension (DLE), or you can split the 100 byte packets into 5 20 byte packets.

    If you want a lot of connections, in the range of 15, I would suggest that you start with using 100ms connection interval. If everything is OK, and you for some reason want a shorter interval, you can try to decrease it.

    If you don't want to reduce the packet payload to below 100bytes, I suggest you use an even larger connection interval. A longer payload takes longer time on air, and increases the chances for event collisions.

    Best regards,

    Edvin

  • Edvin,

    I have set the following parameters:

    • Advertising Interval to 5000
    • Scan interval to 160 
    • Scan Window to 80
    • Min Connection interval to 100
    • Max Connection interval to 200
    • MTU is set to 100


    and it seems to be working quite well with 7 devices connected.
    i am going to add another 7 devices and see how it behaves

    I realized i had a memory leak which was causing the application to get stuck.
    Thank you for your help Slight smile

    Regards,

    David Hutchinson

Related