How do I calculate throughput for a BLE link?

How can I calculate the maximum throughput for an application running on the nRF51822 and the S110, when connecting to different kind of Central devices?

  • Your question doesn't quite make sense. Do you want to calculate throughput (i.e. bytes per second), or do you want to know the time it takes to transmit a certain amount of data (i.e. seconds per x bytes)?

    This question has to do with the former, but it's basic math going between them, if you know the throughput. Also, did you actually read the first reply here? The number of packets per interval is dependent on the devices you use, and there is hence no general answer to it, you simply have to test the devices you're interested in knowing the throughput between. As for the TI chip you're apparently using, I unfortunately don't know.

    1000 packets also doesn't say anything about what amounts of data you need to transfer, so I'm not quite sure how you'd suggest using this number for anything.

    I really think that you should take some time to make sure you understand the basics of BLE, what a connection interval is, what happens in a connection event, and how data transfer is ongoing. The previously linked questions may be useful, as well as nAN-36: https://www.nordicsemi.com/eng/content/download/34055/573345/file/nAN-36.zip

    Finally, I must say I find it rather interesting that you have to visit a Nordic Q&A site to get answers on how to use your TI chip, as both the name of your defines and this questions suggests: http://e2e.ti.com/support/low_power_rf/f/538/t/322198.aspx

  • hi, thanks again.

    yes i have a TI device but is not important for this case, my question is a teorical question ...a question about a best way to calculate throughput.

    Only the number of packets per interval are relevant and different in devices.

    My question still the same...i want send 1000packets from peripheral to central, each packet in 400ms.

    At the end (1000 packets receive), in central device, i want calculate throughput like this:

    1packet ----> 40ms 1000packets ---> X

    X = 40seconds

    R = (20Bytes*1000 packets)/40s seconds

    That is correct if the number of packets per interval is 1 ?

    I post this question in this forum because advised me about quality of this forum. sorry if I was rude. Regards

  • You don't answer any of the questions I ask you, so you don't make it very easy or tempting to help you much further. What do you actually want to know? If you wonder how long it will take to send 1000 packets, assuming you send one every 40 ms, you could do like this: 1000 packets * 40 ms/packet = 40 seconds.

    If you transfer more packets per interval, you could do for example like this: (1000 packets / 2 packets/interval) * 40 ms/interval = 20 seconds.

  • Hi Morten, thanks for reply.

    I was confused, my goal is to calculate goodput and not throughput ;)

    Send one notification (20bytes) each every 40ms until 1000 packets, measure total time and calculate the amout of bits per second.

    Thanks again

  • This application on GitHub shows a full example demonstrating max throughput: https://github.com/NordicSemiconductor/nrf51-ble-app-lbs/tree/throughput-test-5.1.0

Related