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

Throughput issue in multirole application

I have an application where I need to be connected as peripheral in 1 connection and as central in up to say 10 connections simultaneously. I posted regarding connection event length before https://devzone.nordicsemi.com/f/nordic-q-a/34022/optimizing-throughput-with-multiple-central-links-and-1-peripheral-link but I have made some tests now and I don't get the results that I excpected.

Scenario 1: My peripheral connection has a throughput req. of about 20kB/s so I need to guarantee that connection an event length which is sufficient. But when I test my setup I first connect my peripheral connection only. I get a throughput of ~110kB/s. Connection interval 100ms, event length 25*1.25ms and 2mpbs phy. 

Scenario 2: same as above but add 1 central connection to low bandwidth mock sensor. Connection interval 200ms and data is sent every 1s. Throughput is only ~40kB/s when I stream data in my peripheral connection. 

SDK 15.0.0 is used with sd 6.0.0

I thought that the central connection I add in scenario 2 would have minimal effect on my peripheral connection? 

And is the parameter NRF_SDH_BLE_GAP_EVENT_LENGTH shared between all connections made with the softdevice? If not, how can I set it individually?

Parents
  • I get a throughput of ~110kB/s. Connection interval 100ms,
    mock sensor. Connection interval 200ms

    So your thougput is roughly halved, which is excacly what I would have expected in that scenario. Half of the connection intervals are now used for the central and are thus unavailable in peripherial.

    Note that your throughput figures (if they are KByte/sec) are really high, and would be better suited to bluetooth classic IMHO.

    You might want to play with your connection interval timings a bit - e.g. slow down the central connection further.

Reply
  • I get a throughput of ~110kB/s. Connection interval 100ms,
    mock sensor. Connection interval 200ms

    So your thougput is roughly halved, which is excacly what I would have expected in that scenario. Half of the connection intervals are now used for the central and are thus unavailable in peripherial.

    Note that your throughput figures (if they are KByte/sec) are really high, and would be better suited to bluetooth classic IMHO.

    You might want to play with your connection interval timings a bit - e.g. slow down the central connection further.

Children
No Data
Related