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

What is the max data throughput with S132 v3?

The absolute max throughput for the nRF52 using S132 v2 was 128 kbps.

The new S132 v3 was recently released and boasts throughput increases by 400%. Has anyone tested this and found the actual max throughput rather than an estimate? Is there example code for testing this?

  • HI Ulrich,

    I wonder whether you have tested throughput in a case whereby there are multiple slaves, let's say maximum 7. We have an application where multiple sensors transmit data packets (30+ bytes long, 50~100Hz) to a gateway. Previously we used nrf24l01 as the radio, now we are considering BLE 4.2; so we want to know the BLE 4.2 performance in 1-many case.

  • When the number of peers increase, you generally want to use shorter connection intervals if latency is important. This puts a hard limit on the amount of data you are able to send each connection interval, because the central must end the connection event in order to process the next. There are throughput numbers in the Softdevice Specification for these scenarios, and those should be relevant in that case. However, there is a special case, where latency is not important, but sending bursts of data to each slave in order is good enough. In that case, you can live with a longer connection interval and send as much as possible to each device when possible. In short, with many devices, throughput is limited in order to serve all the peripherals. You can tweak the connection parameters (with event ext. on) to balance throughput, power efficiency and latency to your needs.

  • Hi Ulrich. I've been playing with the MTU, DLE and Connection Interval parameters but I haven't been able to reach the high throughputs that you mention. In your post you suggest MTU=247, DLE=251, a notification p_len of 244, and a long connection interval. How long should this connection interval be? By the way, I have an app_timer running in parallel that I use to calculate the throughput every 2 seconds. Could this timer be the reason why I cant pass a throughput of 496 kbps? Thanks.

  • Have you also enabled event extension on both sides? And is the peer pulling the events as fast as you are sending them? With event extensions enabled, the connection interval should be as high as possible during data transfer. This lets the SoftDevice continue to send data without closing the connection event.

    Unfortunately, the length extended packets are more prone to noise due increased radio time, so this can be a factor in your lower throughput. If you are able to put the devices closer, or shield them from other 2.4GHz sources, does this help?

Related