Bluetooth is one of those pieces of tech that we now take for granted. Ever since its introduction in the mid-1990s it has become an essential wireless technology, not only for smartphones but also for tablets, laptops, desktops, and more.
Bluetooth comes in two flavors: “Classic” and “Low Energy”. The former is the Bluetooth that enables our wireless keyboards and mice, along with wireless headsets and speakers. The latter, Bluetooth Low Energy (BLE) uses a lot less power and is designed for areas like health care, fitness, and beacons. That’s why wearables like the Fitbit Charge 2 use BLE rather than Bluetooth Classic.
Last summer, the Bluetooth Special Interest Group (Bluetooth SIG) announced Bluetooth 5 and shortly after that I made a Gary explains video about Bluetooth 5. Since then the new specification has been officially published and the technology is starting to appear in development boards and consumer gadgets, most notably the Galaxy S8.
Since Bluetooth 5 will likely become the de-facto version of Bluetooth over the next few years, I thought it would be good to test it out now and discover the truth about its range and speed. To do that I got hold of two Bluetooth 5 nRF52840 development boards from Nordic Semiconductor. These two boards come with a Bluetooth 5 protocol stack and a 32-bit ARM Cortex-M4F microcontroller clocked at 64 MHz.
This basically means you can write C programs for the board to test out Bluetooth 5, which is what I did. To save time I started with an example Bluetooth throughput program provided by Nordic and then tweaked it for my particular needs.
These boards support three types of Bluetooth connections: BLE 4.x, Bluetooth 5 2 Mbps and Bluetooth 5 Coded. The first is the connection type used by the current Bluetooth Low Energy specification, i.e. BLE 4.x. It is known as the BLE 1 Mbps connection because that is its approximate speed at the lowest level (layer) before any protocol overheads are added.
The second is the new faster connection that comes with Bluetooth 5. It is rated at 2 Mbps, again at the lowest level. The third is a new special kind of connection that was introduced for Bluetooth 5. Its aim is to provide long distance Bluetooth connections, but with a low bit rate. In other words: range rather than speed.
|BLE 4.2||BLE 5||BLE 5 Long Range (S=2)||BLE 5 Long Range (S=8)|
BLE 4.2:1 Mbps
BLE 5:2 Mbps
BLE 5 Long Range (S=2):1 Mbps
BLE 5 Long Range (S=8):1 Mbps
|Network data rate|
BLE 4.2:1 Mbps
BLE 5:2 Mbps
BLE 5 Long Range (S=2):500 Kbps
BLE 5 Long Range (S=8):125 Kbps
BLE 4.2:800 Kbps
BLE 5:1400 Kbps
BLE 5 Long Range (S=2):380 Kbps
BLE 5 Long Range (S=8):109 Kbps
BLE 5 Long Range (S=2):FEC
BLE 5 Long Range (S=8):FEC
|Bluetooth 5 Requirement|
BLE 5 Long Range (S=2):Optional
BLE 5 Long Range (S=8):Optional
Double the speed
The way Bluetooth 5 doubles the bandwidth is by doubling the speed of transmission. So previously a packet of data (actually 251 bytes worth) was sent in a set time frame (2120 microseconds). Now, with Bluetooth 5 the same data is sent in 1060 microseconds. However you don’t quite get a doubling of the data rate as the inter-frame space – that is, the time interval between two consecutive packets – remains the same as with Bluetooth 4. What this means is that the data is sent faster, but the gap between the packets has not been shortened. When you do the maths that means that Bluetooth 5 is actually about 1.7 times faster than BLE 4.2.
Bluetooth 5 is actually about 1.7 times faster than BLE 4.2.
Coded and Forward Error Correction
Bluetooth 5 offers a special kind of connection which is designed for long distance communications. So this isn’t for Bluetooth speakers or for syncing your smartwatch with your smartphone, this is for the Internet of Things. The power of IoT will be the ability to place cheap modules all over a build (be it residential or industrial) or in an open space (park or farmer’s field) and gather data. This data can be anything from temperature or humidity, to movement detectors or traffic monitors. The possibilities are endless. But the problem is that these sensors need to have a power supply and they need to send their data to a central hub or gateway. If the device is plugged into the mains electricity then power isn’t a problem and maybe the device would use Wi-Fi to communicate. But the requirement for mains power and for Wi-Fi coverage restricts the scope and potential of such devices.
This is where Bluetooth 5 Long Range comes in. First of all, because the device uses Bluetooth it doesn’t necessarily need mains power. Secondly it doesn’t have to incorporate Wi-Fi or even need Wi-Fi coverage. Instead, these sensors could be placed with just a battery to power them and use Bluetooth 5 Long Range to communicate with the gateway.
One way to increase the range without increasing the power usage is to reduce the data rate.
But how can you increase the range without increasing the power usage? One way is to reduce the data rate. What that basically means is that each bit of data sent has more energy for the same level of power. The second trick is to use error correction.
For a connection to be reliable it must ensure that when a number is sent then the same number is received at the other end. If a ‘1’ gets changed into a ‘0’ somewhere along the line then everything can go horribly wrong.
Bluetooth 5 uses a strong error correction system based on Hamming codes, a family of error correcting codes that were invented by Richard Hamming in the 1950s. Known as Forward Error Correction (FEC), it is a system which replaces a single digit ‘1’ or ‘0’ with multiple digits that make up a word.
Let’s take a very simplistic example, one that isn’t actually used in the real-world, but it is a good illustration. Rather than ‘0’ a system could transmit ‘0000’ and rather than ‘1’ it could transmit ‘1111’. This would obviously be slower but it offers some resilience. If the message gets corrupted on the way, say to ‘0001’, then you can be confident that actually it was meant to be ‘0000’.
Likewise if it got changed from ‘1111’ to ‘1011’ then you can still be sure that it was meant to be ‘1’. However if ‘1010’ is received then it is clear that two bits have been changed, but is it ‘0000’ changed to ‘1010’ or is it ‘1111’ changed to ‘1010’? The good news is that there is a whole field of computer science dedicated to working out the best methods for detecting errors in transmission and working out how to correct the errors.
To test Bluetooth 5 in the real world I took my two Nordic Semiconductor development boards and tested the throughput speed in different situations. First I tested the throughput around my house. One board remained connected to my PC while the other was moved further and further away to different rooms. For the second test I took my whole setup to a local shopping mall and tested out the possible distances, especially the working distances using Bluetooth 5 Long Range (i.e. Coded).
Here is a very basic plan of my house:
The blue circle in the bottom left-hand corner represents the sender (connected to my PC) while the blue stars show the different receiver positions around the house and the rough location of the walls. The walls in my house are simple partition walls covered with plasterboard (or drywall). You will find that thicker walls, concrete or brickwork, and walls with ironwork in them, will alter the way the signals propagate.
When the boards where next to each other I was able to get a throughput of 1337 Kbps (that’s 1337 Kilobits per second which is 167 Kilobytes per second) using Bluetooth 5 and 746 Kbps for Bluetooth 4.2. Here is a table of how the bit rate changed as I moved the boards further and further apart:
|Point||Distance||Walls||Bluetooth 5 throughput||Bluetooth 4.2 throughput|
Bluetooth 5 throughput:1215
Bluetooth 4.2 throughput:672
Bluetooth 5 throughput:900
Bluetooth 4.2 throughput:629
Bluetooth 5 throughput:470
Bluetooth 4.2 throughput:386
Bluetooth 5 throughput:584
Bluetooth 4.2 throughput:533
If you look at the data in the table above you will notice a few things. First, Bluetooth 5 is faster than Bluetooth 4 in every case. Hooray! Secondly, for closer distances the speed of Bluetooth 5 is significantly faster than BLE 4.2: 1125 Kbps vs 672 Kbps for point 1 and 900 Kbps vs 629 Kbps for point 2.
As the range increases the benefits of normal Bluetooth 5 diminish compared to BLE 4.2
Thirdly, the throughput drops as the distance increases. This is true for both BLE 4.2 and Bluetooth 5. Lastly, as the range increases the benefits of Bluetooth 5 diminish compared to BLE 4.2 (ignoring the Long Range mode for the moment).
You might have expected the throughput for point 2 and point 4 to be the same, but clearly they aren’t. My guess is that the amount of furniture and the layout of said furniture is different. Certainly signals to point 2 have a less obstructed path than those to point 4.
My next test was less scientific than the home tests above and I really recommend that you watch the video to get a sense of how these tests were carried out. As I was in a shopping mall I wasn’t able to get out my tape measure and start calculating distances, however there are a few important things that I learned:
- Bluetooth works best when there are no obstructions (walls, furniture etc) – In the food court, which is essentially a large open space indoor area with tables and chairs, the performance of Bluetooth was impressive. I had throughputs of over 450 Kbps and 240 Kbps, depending on the distance.
- Metal is evil – When trying a test from inside the shopping mall to outside, although I had line of sight through the large windows, the performance was bad. I attribute this to the large metal frames of the windows and other metal elements including furniture.
- With Bluetooth 5 Long Range (Coded) I managed a connection of over 100m – I feel it could have been better if I tried harder to find the ideal conditions.
With Bluetooth 5 Long Range (Coded), where data transmission rates drop, I managed a connection of over 100m.
From my testing it is clear that Bluetooth 5 has delivered on its promise of higher throughput. Speeds of over 1000 Kbps are possible when two devices are within a few meters of each other, and around the halfway point of the signal coverage Bluetooth 5 remains faster than BLE 4.2. At the very edges of the range then the speed differences decrease significantly and according to some maths calculations I have read, the theoretical range of Bluetooth 5 (using the 2 Mbps connection type) is actually shorter than that of BLE 4.2. However, Bluetooth 5 does introduce the new Long Range (Coded) connection type which offers greater range, but less throughput.
It is interesting to note that support for the 2 Mbps and Coded connections are optional in Bluetooth 5. The only connection that is mandatory is the 1 Mbps connection speed from Bluetooth 4, however even if a Bluetooth 5 setup only supports the 1 Mbps connection speed, it will still need to support the new protocol elements like the bigger broadcasting capacity (which increased from 31 bytes to 255 bytes).
The possibilities for the long range (Coded) connections are intriguing and there will certainly be lots of IoT and home automation applications. My hope is that the Bluetooth 5 stacks that make it into our smartphones will include all the goodness of Bluetooth 5 and not a cut-down version without the 2 Mbps connection type or the Coded connections.
Now that you have seen Bluetooth 5 in action, are you excited to see it in upcoming smartphones? What about in IoT and smart home devices?