
After launching the revolutionary Bluetooth 5.0 specification, the Bluetooth SIG releases a new Bluetooth Core specification v5.1 with new features and enhancements. Some of these are really interesting, so let’s get to looking at the features:
Random Advertising Channel Indexing
The Bluetooth 5.0 specification defined advertising channels to use channels 37, 38, and 39 in that exact order. This could cause issues sometimes between devices that are advertising at the same time. To make it more flexible and reduce chances of packet collision, the 5.1 specification allows the order to be randomized which improves performance.
Angle of Arrival (AoA) and Angle of Departure (AoD)
Location services are some of the critical end applications envisioned for small location sensors. Many companies have tried (and ultimately failed) to use RSSI as a way to perform tracking and location because RSSI is incredibly susceptible to all kinds of effects. To improve this, the Bluetooth SIG has added the ability to measure the Angle of Arrival and Angle of Departure of a signal.
This mechanism uses multiple antennas to measure these angles, and when multiple devices are used, devices can be located in the space. This is a relatively innovative approach but whether it will work well remains to be seen. Supporting multiple antennas can be a challenge from a design perspective, and multi-path may interfere with results.
GATT Caching Enhancements
Anyone who’s developed a Bluetooth device knows that after connecting there is a service discovery to discovery the attribute table from a device’s database. This database has services, characteristics and descriptors that describe the GATT structure of a device, with every attribute having a corresponding handle.
Doing a discovery of a device is time and energy consuming, so any mechanism to reduce doing an unnecessary discovery is welcome. That was one of the roles of the Service Changed characteristic that was optionally present in the Generic Attribute Service.
The downside of the Service Changed characteristic was that it required the GATT service to keep track of every client that connected to it. And for devices without any relationship, they would need to perform a discovery every single time.
Now, with GATT Caching Enhancements there are two new characteristics in a Generic Attribute Service:
- Database Hash – Enables the client to ask the server if anything has changed, instead of the server using the Service Changed indication. The Database Hash is read by the client on connecting, and it can then check the hash on every connection to see whether the database has changed. if it hasn’t it does not need to perform a discovery again. This can even extend to other devices from the same manufacturer that a client has interacted with, which means avoiding discovery even to new devices that are similar.
- Client Supported Features – another characteristic that helps support the Database Hash feature
Periodic Advertising Sync Transfer
Bluetooth 5.0 added Advertising Extension with a feature to perform periodic advertising that is deterministic. In some cases, the synchronization that is needed for this periodic advertising can’t be done by some devices because of the power consumption or duty cycle/scan time limitations.
Periodic Advertising Sync Transfer (PAST) enables another device to do the heavy lifting of the synchronization and pass on the data.