This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Maximum data rate (throughput) with BLE

Other Parts Discussed in Thread: CC2540, MANDO, CC2564

Hi all,

I know BLE is not for streaming or data transfer but like everyone here (I think) I like to push the tech to its limits... so I was wondering what would the max. data rate be?

From the CC2540 stack we know the limitation of 4 packets per connection event. So if the max. payload of one data packet is about 20Bytes (read it in other thread from a TI guy) and using the min connection interval of 7.5 ms thats about 133 int/sec * 80 B = 10.6 KBytes/seg or 85 kbps (from a tech of 1 Mbps raw)

I have read of some tests that the max data rate is about less 8 Kbytes/sec leading to use higher connection intervals due to processing and other control messages. 

Now another limitation of the BLE stack right now is the max number of connected devices (3), only 1 packet per connection event and the min connection interval should be 25 ms and a multple for the others. That cuts the data rate to like 800 Bytes/s or 6.4 kbps for each device. 

I'm sorry if this have been discussed on previous Posts, just wondering if the numbers are correct.

Thanks, and keep the good work!

  • Hi Mando,

    For some real-life tests, please have a look at examples 9 and 15 here: http://processors.wiki.ti.com/index.php/Category:BluetoothLE

    We can support up to 3 packets per connection event, so the actual throughput is higher than you say; around 5.9 kB/s in a CC2540-CC2540 test and 1.5 kB/s for CC254x to an iPhone 4S (iOS adds additional restrictions on minimum connection intervals).

    Best regards,

    Karl

  • Hi Karl,

    Is it 3 packets per connection event or 4 packets? In this post it's discussed that the maximum number of packets per connection event is 4. http://e2e.ti.com/support/low_power_rf/f/538/t/194407.aspx

    Also, is there any plans to improve the number of connected devices in the near future? I have read part of the BLE standard and gives no clues on how to manage multiple connections, so I guess it's real challenging for the dev. team. 

    I don't have the time to test it right now, but I'll set up a test to see the max data rate I can get and keep you posted.

    Thank you, and best regards. 

  • Hi Mando,

    Oops, sorry for the typo, the correct number is 4.

    When it comes to the number of connected devices, this is limited by the amount of RAM inside the CC2540/41 (each connection requires a certain amount of memory for keeping track of relevant variables). If you need more connected devices, you may want to have a look at the CC2564 dual-mode device, I believe this supports up to 8 simultaneous connections.

    Best regards,

    Karl

  • Thanks Karl!  I'll check the CC2564. Great support.

  • Hi Karl, thnx for great support!

    I wanted to know how i can measure latency of data transfer between master and slave by modifying simpleBLEperipheral/central) for example notification of 8bytes, is there any example code or material you can refer me  to? I appreciate for your help in advance!

    Libe