What's new in Bluetooth v5.4: An overview

What's new in Bluetooth v5.4: An overview

Bluetooth SIG has finally adopted the Bluetooth® v5.4 core specification. This means that a new set of exciting features are available for Bluetooth products along with all the advantages they provide. Two of the major improvements are Periodic Advertising with Responses (PAwR) and Encrypted Advertising Data. Together, they enable connectionless, bidirectional, secure communication with thousands of very low-power end nodes in the star topology. 

One example use-case that is currently very relevant is the Electronic Shelf Label profile (ESL). This is actually the first standardized use-case for PAwR and Encrypted Advertising Data. The specification is currently released as a draft version, but it is expected to be adopted soon. Having this profile in place provides a standard for the ESL use-case, so we expect applications and ecosystems based on Bluetooth to emerge rapidly in the near future.

In general, PAwR and Encrypted Advertising Data are intended for applications that involve a large number of devices transmitting small amounts of data, that accept longer latencies in exchange for extended battery life. For example, massive sensor networks that don't require immediate response or monitoring of non-dynamic systems.

Periodic Advertising with Responses 

Bidirectional communication of application data in connectionless mode has been impossible in Bluetooth LE until now, and PAwR enables that. This is the key benefit of this feature.  

To explain how it works, we will use the broadcaster and observer naming convention. Broadcasting is nothing new, data is sent by the broadcaster and observers scan to receive it. What is new in PAwR is that the broadcasted data is organized in small packets within deterministic time slots that the observers can precisely synchronize with and respond to. Data is sent within PAwR events that consist of PAwR subevents. Each observer can synchronize to one or multiple subevents, and being synchronized, observers actively receive only in these specific timeslots. 

Bidirectional communication is implemented within subevents. The broadcaster transmits the data at the beginning of the subevent, then after a response slot delay, observers can send their responses. Orchestration of the responses is handled on the application level. 

The efficiency of this solution is a result of the observers’ capability for scanning only for specific subevents. Therefore, the end nodes (observers) scan only for a tiny, specific period of time. That is what makes this solution so effective in terms of power consumption. 

One more feature of PAwR is the ability to establish an ACL connection, as the subevent may contain a connection request.  With this feature, devices don't have to follow the legacy connection scheme with additional scanning and advertising.  In fact, it wouldn’t make sense since the devices are already synchronized. A connection may be needed in some cases because only small amounts of data can be transferred over PAwR. To transfer more data, devices may set up an ACL connection. 

Encrypted Advertising Data 

While PAwR is addressing the scalability and ultra-low power requirements, there is a critical requirement that must be in place for all modern IoT systems, namely security. Data exchanges between the ESL access point and the devices must be encrypted to preserve confidentiality, avoid tampering, and secure the network. 

Prior to Bluetooth v5.4, there was no standardized way of encrypting advertisement data. Such definitions only existed for connection-oriented communication. As most of the data exchange for ESL applications flows through PAwR, it became necessary to add an encrypted advertising data feature. This introduces a standardized way of encrypting data in advertising as well as sharing key material, which is required for data encryption. It’s worth noting that encrypting advertising data can be done not just over PAwR but also using other advertising transports. 

This feature allows encrypting the totality or just a sub-set of the payload on a given advertising packet by adding a new AD type called Encrypted Advertising Data (type 0x31) that encapsulates all the AD fields to be encrypted. This means that an advertising packet payload will conceptually look as depicted below. 

Advertisement Data 0 encapsulates AD 1-3, which are encrypted. That is followed by AD 4 and 5, which are unencrypted. This allows for flexibility and keeping some of the non-critical advertising data open for any observer to interpret, for example, AD Type 0x01 (Flags) or 0x09 (Complete Local Name). 

Sharing encrypted data between two devices requires that they have a shared secret with which to encrypt and decrypt the data. To achieve this, a new GATT characteristic called Encrypted Data Key Material can be optionally included as part of the GAP (Generic Access Profile) service. A connected GATT client can read this characteristic over an encrypted and authenticated link, which then allows encrypted data to be exchanged over advertisements. 

Electronic Shelf Label profile 

An Electronic Shelf Label (ESL) is a device that displays pricing information for products on a retail store shelf. The goal is to have remote management over the displayed information about a given product, including its name, barcode, price, etc. ESLs can also be equipped with sensors e.g., battery voltage monitoring or ambient light sensing. This type of system requires versatility and is cost-sensitive, which is why digital labels are usually battery-operated. Power consumption is the critical requirement here since frequent charging or replacing batteries is not an option for this use case. 

The ESL profile implements the means for this specific use case that, with the usage of PAwR, provides the lowest possible power consumption and security with new encrypted advertising. Connection-oriented communication is used for configuration, exchange of the key material for Encrypted Advertising Data, and sending larger chunks of information e.g., images. Then, the connectionless communication based on PAwR is used for regular commands and responses. 

Roles in the ESL profile are defined as Access Point (AP) and Electronic Shelf Label (ESL). AP corresponds to broadcaster in the PAwR context, and ESL corresponds to observer. To manage the network, a simple addressing scheme is introduced. Each ESL has an 8-bit ESL ID. Devices are grouped with 7-bit Group IDs. The Access Point can manage up to 32 640 devices.

For the communication from AP to ESLs, PAwR’s subevents are related directly to the ESL’s Groups. Devices assigned to group #0 synchronize to receive subevent #0 and so on. Data packets transmitted to each group contain the sequence of commands addressed to subsequent ESL IDs. 

As mentioned before, response orchestration is managed at the application level. In the ESL profile, responses are managed dynamically. Each ESL receives all commands addressed to its group. The device must ignore all commands addressed to the others, but it is required to use the response slot corresponding to the order of the received command. For example, ESL ID #1 receives the following message: [ESL ID #0, cmd], [ESL ID #1, cmd], [ESL ID #3, cmd]. It will respond in response slot #1.  

Security for ESL is provided with the Encrypted Advertising Data introduced in Bluetooth v5.4. ESL devices typically require an initial connection to the AP for commissioning, at which time the key material can also be read and assigned to allow the subsequent exchange of encrypted advertising data protected with LE Secure Connection. 

The ESL profile provides a complete description of roles, states, and message sequences, as well as security requirements that describe how Encrypted Advertising Data is used for communication. For a deeper dive, we encourage you to read the specification or the technical guide for the 5.4 release (see the links at the bottom of the page).

With the enhancements of Bluetooth v5.4 introducing very low power, bidirectional, connectionless communication, many new use-cases are made possible, and ESL is the first one. 

Additional features in the Bluetooth v5.4 core specification

Two more features are available in the new core specification, the first being the LE GATT Security Levels Characteristic (SLC). It is intended to limit glitches in user-experience flow caused by security conditions that may delay access to an attribute. With SLC, the client can upfront determine sufficient security mode and level to access all needed GATT attributes. If necessary, the link security can be upgraded to meet the access requirements before attempting to access GATT attributes. 

Advertising Coding Selection is the second one. The S parameter defines the Forward Error Correction (FEC) and takes one of two values, S=2 or S=8. It controls how much error correction data is generated and to what extent the communication range might be increased. With Advertising Coding Selection, the host is enabled to deterministically select the coding scheme that the controller should use for transmitting advertising PDUs. This improves a condition where for instance, a device could receive S8-coded PDUs but would respond in S2 coded, so the peer device might be just out of reach to receive those. In this case, the host can instruct the controller to transmit with S8 as well. 

Summary

Bluetooth v5.4 brought some new interesting features that will for sure expand the range of Bluetooth applications and help to standardize more markets. We are looking forward to seeing ecosystems grow and your new ideas brought to life. Our technical support team is here to help with evaluation and support on your projects. Follow our product news for updates on the availability of these features in nRF Connect SDK. Subscribe here.

Further reading:

Do you want more content like this? Feel free to like this blog post, and leave a comment below to tell us what you would like to use the new Bluetooth LE features for! 

  • When will support for these features (PAwR  & Encrypted Advertising Data) be added to the connecting devices (mobile phones and web browsers (Web Bluetooth API) ? How do you ensure both sides can communicate with the latest standard - sorry for  simple question but I am pretty new to BLE and how the latest versions are rolled out across every architecture. 

  • The implementation of the response scheme is at the application level, which gives developers the freedom to choose how to implement it. It's possible for a synchronized device to send a response in two or more response slots.

  • I want to know can one synchronized device transmit one or more response packets in one or more response slot per subevent

  • I agree that it can be quite confusing the way PAwR establishing a connection, especially when the role of the initiator is changed from the observer to the advertiser. 
    Regarding your question: 

    1. Yes, it becomes the full-blown BLE ACL connection. Data-exchange and connection termination are done in old-fashioned way.
    2. I would suggest to take a look at the pair of sample: periodic_adv_conn periodic_sync_conn. It shows how to send AUX_CONNECT_REQ in a subevent package.
    3.  It’s up to the application to configure how the scanner should response and avoid collision. Can be that the advertiser can tell which scanners should response at a response slot in a subevent (polling each of them for example)

    We are working on a guide to help explain how PAwR work. The plan is to have it published by end of Oct 2023. 

  • The Zephyr sample in the NCS v2.4.2 is quite confusing to me in the way that it connects the observer and broadcaster, it seems to have redundancy in it.

    I'm wondering if there is a cleaner way to send an AUX_CONNECT_REQ during the subevent and establish a short ACL (would it even be a short ACL?).

    Even the official Bluetooth PAwR documentation wasn't clear in my opinion about this. It just briefly mentions AUX_CONNECT_REQ as a part of a subevent packet, that's sent by the broadcaster. and AUX_CONNECT_RSP which is sent from an observer that's "subscribed" to that specific subevent. 

    Now I'm left to wonder:
    1. How does this ACL work, and does it automatically terminate at some point? Or does it become a full-blown BLE ACL connection where they exchange data in an old-fashioned way (services, characteristics)? 
    2. How to use PDU_ADV_TYPE_AUX_CONNECT_REQ in Zephyr? How to set it for a single subevent at wish?
    3. About PAwR in general, multiple observers can subscribe to the same subevent. What if they try to answer during the same response slot? Will there be interference?

    If anyone can clear some of these up, that would be awesome!