The new Bluetooth 5 specification promises twice the speed and 4 times the range. Doubling the speed is achieved by increasing the on-air datarate to 2Mbps, while quadrupling the range is achieved by lowering the bitrate to increase the sensitivity of the receiver. We at Nordic have made a demo showing these features with our newest SoftDevice(s) and specifically our newest chip, the nRF52840. It was showcased at CES 2017 in January.
Here is a more in depth description of the demo.
The demo is based on the ATT_MTU throughput example in SDK 13.0.0-1.alpha, which allows you to configure various Bluetooth low energy (BLE) parameters to test out the impact on throughput and range. This demo adds some configurations and can be used either with a display or a terminal program on the computer.
If you flashed the firmware correctly and connected the terminal program or the display shield to one of the boards, you should see a screen telling you to press button 1 on that kit (from now on called the master) and button 2 on the other kit (from now on called the slave). During the transfer the master will set the configurations for the link, connect to the slave and send data to it using notifications.
There are many parameters that can be adjusted before running the test. Here is a description of the different settings and what they do:
The throughput measured may vary depending on the environment, but the maximum throughput should be around 1365 Kbps for BLE 5 High Speed, 775 Kbps for BLE 4.2, 128 Kbps for BLE 4.1 and 21.3 Kbps for BLE 5 Long Range. Be aware that there may be some inaccuracies in the measurements.
How to enable DLE? I have nrf52840 and SDK: 16.0.0 Soft Device: S140
when I run this example from SDK 14.2.0 on two nRF52840 DKs with (att_mtu: 23, conn_interval: 7.5, dle: on, phy: 1M) I am getting a throughput of nearly 86 kbps. My calculated throughput is (1000ms/7.5ms) * 20bytes * 8bits/byte = 21,3 kbps and assuming a number of 4 transferred packets per connection interval this gets very close to the measured value with 85.3kbps. Now one question: Why should I assume 4 and not 6 transferred packets?
The theoretical throughput could also be calculated by taking the empty and full loaded packet transmission time + the interframe spacing T_IFS into account and then calculating the maximum amount of packet that could be transmitted in one connection interval. This will be higher than 6, which is stated in the SoftDevice specifications. Is this a result of the Connection Length Extension?
As the Data Length Extension was set to "on", the on-air packet size will be set to ATT_MTU size + header size (= 27 bytes), but why is the throughput increased (250 kbps) when turning DLE "off" and keeping all other parameters the same?
Thanks and regards,
That is correct.
You can use the ble_app_att_mtu_throughput example to test the throughput between two Nordic kits:
There is similar sample application in SDK 14.
I can also try it to test throughput, right?
What actually is the data being sent? And how would I go about setting my own custom data with this service?
Thanks for your help,