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

Connection Interval - Impact on Throughput

I have recently been power optimising my nRF52 based application, which is a datalogger peripheral that periodically connects to a central to transfer logged readings. The central requests the readings of interest by writing to a characteristic and the peripheral sends back the requested data by writing repeatedly to a second characteristic, monitoring the fullness of the soft device TX buffer to ensure there is no overflow.

The data transferred can potentially be several hundred KB.

After experimenting with the BLE config I found that with a 400ms connection interval and slave latency of 4 I could reduce the power profile of the system to around 40uA, which is more than acceptable.

I am comfortable with the potential latency of such a high connection interval as the application is not user driven, but I am concerned it might impact the data transfer rate. While decreasing the connection interval and increasing the slave latency would counter that I am cautious about placing additional strain on the battery of the central as in some circumstances peripheral and central could remain connected for an extended period.

However, what I found during testing is that data is actually transferred very quickly regardless of the connection interval, with the central receiving hundreds of characteristic notifications per second during data transfer events. Obviously this is a welcome surprise!

I am curious what the mechanism in the BLE standard is that allows for this? I am using an iPhone as the central device for testing - can this behaviour be relied upon for all central devices?

Parents
  • how many packets can go out during a connection interval depends a lot on the softdevice you're using and the parameters you set for max TX packets, which you don't state. Latest softdevices allow you to queue more packets up during a connection interval which may still go out (old softdevices only sent out packets which were queued before the interval started). Can't really believe you're seeing 50 however, sniffer trace would confirm that.

    You can't rely on anything much from a central. They all act differently, they all have differing ideas about what connection intervals they will accept and how many packets they can transfer. The older the device firmware, the less data you'll likely get per interval.

Reply
  • how many packets can go out during a connection interval depends a lot on the softdevice you're using and the parameters you set for max TX packets, which you don't state. Latest softdevices allow you to queue more packets up during a connection interval which may still go out (old softdevices only sent out packets which were queued before the interval started). Can't really believe you're seeing 50 however, sniffer trace would confirm that.

    You can't rely on anything much from a central. They all act differently, they all have differing ideas about what connection intervals they will accept and how many packets they can transfer. The older the device firmware, the less data you'll likely get per interval.

Children
No Data
Related