This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Maximum data throughput.

I wanted to know what's the maximum data throughput if one device has both roles (Client/Server) working at the same time. I already saw the tables for the different SoftDevices (s110, s120 and s130) but not sure if the maximums they display are for one way only or for the two. I want to use this so I'm able to full duplex audio transfer over BLE, but want to know what's the maximum data I can send/receive on both sides (Central/Peripheral). thanks in advance for your answers

  • FormerMember
    0 FormerMember

    S130 and S132 v.2.0 supports up to 6 packets per connection interval per connection, no matter if the device is central or peripheral. However, the minimum connection interval depends on the number of connected links.

    For one connected link, central or peripheral, the minimum connection interval is 7.5 ms.

    For two links, the minimum connection interval is 15 ms if you want to be able to transmit 6 packets per connection interval per link.

    As you understand, if you want to be able to transmit 6 packets per connection interval, the connection interval has to be at least total number of connected links * 7.5 ms. The reason is that it requires some time to transmit packets over the air, and more packets to transmit, more links, require more time.

  • sorry if I understood incorrectly, but from what you explained the S130 can send/receive : 6(packets)*20B(packet_size)*1/0.0075(connection interval)=16kB/s=128kbps Is this correct? this is for one link only.

    What I want to know is if in this link I can change the peripheral from client to server or when I change it if I need to connect on a new link? If so I would have the 64 instead of the 128kbps, right?

    Sorry if I'm not being clear in what I want to do, and thank you for the help

  • FormerMember
    0 FormerMember in reply to FormerMember

    Yes, your understanding is correct.

    If the peripheral change from client to server, a new link is not needed. As long as there is only one link, i.e. one central and one peripheral the throughput will still be the same.

  • Thank you for the answer, that was all I wanted to know!

  • I'm testing S130 v2.0 throughput and don't seem to be able to get anywhere near 128kb/s? My application rapidly sends 12 20-byte notifications and its taking an average of 37ms, which comes out to less than 60kb/s (assuming 23 bytes/pkt). I'm using nRF51s with the new stack on both Central and Peripheral devices. And I"m using 7.5ms connection interval.

    By the way, is the best way to tell if you are getting 6 packets per connection event is to see a tx_complete count of 6 in the BLE_EVT_TX_COMPLETE event? I'm only seeing a count of 1.

Related