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

Max throughput with S132 v3.0 connected to cell phone

Using the Data Length Extension (DLE) feature in BLE v4.2, two nRF52 dev boards can achieve a maximum throughput of almost 800 kbps. I tested DLE with an iPhone 6 and the payload switched to 182 bytes, but the throughput was only 48 kbps. So I tested with a BLE v4.1 Android phone (Oneplus One) and the payload stayed at 20 bytes (as expected) but the throughput was 56 kbps, faster than the iPhone 6 with DLE.

There is this question that explains throughput calculations for BLE v4.1; however, the parameters seem to be different for v4.2.

What speeds should we expect when using the nRF52 with phones that are BLE v4.2 capable and how would we estimate the max throughput?

  • A couple of things to be aware of:

    1. Fastest connection interval on Android 6+ is 11.25ms while on iPhone it is only 20ms

    2. Android phones tend to allow more packets per interval than an iPhone does, especially iOS 8.3+

    3. iOS will always choose the max connection interval in the update request, so if you are doing 20ms min 30ms max, it will be 30ms

    So for the one plus numbers, we can assume 1000ms /11.25ms = ~89 intervals per second, 4 packets per interval with 160 bits per packet

    89 * 4 * 160 = 56,960 bps

    Now with the iPhone and DLE, it could be that it only allows 1 packet per interval (this is best guess).

    1000ms / 30ms = ~33 packets per second

    33 * 182 * 8 = 48,048 bps

    If you don't follow Apple's BLE conn interval spec exactly, then it will deny your update request. Check what yours is.

    Google "Bluetooth Accessory Design Guidelines for Apple Products" for specifics

Related