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

Connection Interval and Througput

Hi, 

I am a bit confused about the effect the Connection Interval has on BLE throughput. 

SoftDevice documentation :

https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsds_s140%2FSDS%2Fs1xx%2Fmultilink_scheduling%2Fextend_connection_event.html

Claims that higher connection interval increases throughput 

Other have claimed just the opposite 

https://punchthrough.com/maximizing-ble-throughput-on-ios-and-android/

which claims 
" BLE throughput requires context for it to be meaningful and the context starts by determining the connection interval (the smaller generally gets you faster throughput, though there are some interesting exceptions)

my logic is the if device communicate more oftern ( lower connection interval ) we achieve higher throughput. 

So - what is it  ? 

Thanks, 

Ran 

  • Hi 

    In a multilink scenario you essentially need to divide the available RF time between all the running links. 

    In this case I would probably use a longer connection interval, to ensure that each connection gets a longer connection event before the central has to switch to the next link. 

    On the peripheral side there isn't much you can do in this case, it is mainly up to the central to decide the most efficient connection parameters for multiple links. 

    You could try a connection interval of around 400ms for instance, and use a long GAP event length to maximize throughput. 

    Best regards
    Torbjørn

  • so , the ""GAP event length" is the actual time the radio is on, and conn. interval is the interval in which  "GAP event length " correct ? 

    Do I need to change "GAP event length " in the central \ Peripheral \ Both ? 

    Currently - this are set to 50 in both Master and Peripheral, because I was unsure where to set them. Also - what is the effect "gap length" have on softdevice memory ? 

  • Hi 

    wrani said:
    so , the ""GAP event length" is the actual time the radio is on, and conn. interval is the interval in which  "GAP event length " correct ? 

    The GAP event length is the maximum time the stack can spend sending and receiving packets in one connection event, yes. 

    The connection interval is the time between the start of each connection event. 

    wrani said:
    Do I need to change "GAP event length " in the central \ Peripheral \ Both ? 

    You need to change this on both sides, yes. If one device has a lower GAP event length than the other, then the lower value will set the maximum GAP event length for that connection. 

    wrani said:
    Currently - this are set to 50 in both Master and Peripheral, because I was unsure where to set them. Also - what is the effect "gap length" have on softdevice memory ? 

    I don't know if there is a precise relationship between the GAP event length and memory consumption, since this is affected by many factors. The critical point is that you keep logging enabled when changing these parameters, so that you get a warning message in the log if you don't have enough RAM set aside for the SoftDevice. 

    Best regards
    Torbjørn

Related