🎉 25% off Pre-Sale! Bluetooth LE course with real hardware included - no SDK required
Bluetooth Low Energy · · 15 min read

PAwR: Bidirectional Bluetooth LE Advertising

Discover how PAwR (Periodic Advertising with Responses) brings bidirectional communication to Bluetooth LE advertising, enabling large-scale deployments with over 10,000 nodes. Includes a PAwR + Coded PHY demo.

Periodic Advertising with Responses (PAwR) in Bluetooth LE
PAwR: Bidirectional Bluetooth LE Advertising

Sponsored by Silicon Labs

If you've wondered whether advertising in Bluetooth Low Energy can be bidirectional, then this post is for you. If you've recently come across the term PAwR and you've wondered what it means, then this article is also for you.

But first, a bit of background information...

Introduction

Since the introduction of Bluetooth Low Energy in 2010 (in version 4.0 of the Bluetooth Core Specification), the advertising feature has proven to be a game-changing new topology for the standard. It’s specifically great for broadcasting data in one-to-many applications (e.g., beacons).

However, it’s always been unidirectional, which means it was very limiting and not feasible for many use cases. In these cases, developers have had to resort to designing systems that rely on connections between Bluetooth LE devices.

Unfortunately, one of the most significant downsides of connections is that only a limited number can be established from one device. This is primarily due to the following:

Due to these limitations, connections are not suitable for large-scale network deployments.

One solution to the large-scale/many-devices communication dilemma is to use Bluetooth mesh, which enables many-to-many communication. However, mesh does not serve well for centralized applications (think a star topology. E.g., thousands of nodes monitored/controlled by a single access point), nor is it well suited for low-power applications in battery-operated devices.

🎥 See a live PAwR + Coded PHY demo using Silicon Labs development kits at the end of this post.

Periodic Advertising with Responses (PAwR)

That was the case until January 2023, when a new version of the Bluetooth Core Specification was released, version 5.4, and an exciting new feature called Periodic Advertising with Responses (PAwR) was introduced.

PAwR builds upon a couple of relatively new features of Bluetooth LE: Extended Advertising and Periodic Advertising (both introduced in version 5.0). It solves a significant problem that couldn’t be solved with Bluetooth advertising or connections before:

Achieving large-scale communication (not possible with connections) that's also bidirectional (not possible with advertising). So, it’s, in fact, the best of both worlds!

In this article, we will:

PAwR vs. Bluetooth mesh

While Bluetooth mesh can serve as a solution for large-scale bidirectional communication, it’s suitable for different applications than PAwR. Let’s take a look at the differences between PAwR and Bluetooth mesh systems:

Protocol ➡
Aspect ⬇
PAwRBluetooth mesh
TopologyCentralized (star), 1-to-manyDecentralized (mesh), many-to-many
Collision MitigationResponse slots assignment for nodes to eliminate collisionsNo collision mitigation available
RangeLong-range via Coded PHYLong-range via relay nodes
SecurityOptional security via Encrypted Advertising Data (EAD)Security is mandatory
Power ConsumptionLow-power by designA limited number of low-power nodes
ScalabilitySupport for over 10,000 nodes1,000s of nodes
ComplexitySimpler to implementMore complex to implement

A table comparing PAwR to Bluetooth mesh

Let’s break it down based on the most crucial aspects:

As you can see, the two types of systems have quite a few differences. PAwR fills a noticeable gap where Bluetooth mesh was sometimes chosen as a viable solution, only due to the lack of options and not because it was the best fit.

How does PAwR work?

To understand how PAwR works, we have to revisit a few important concepts in Bluetooth Low Energy: Advertising, Extended Advertising, and Periodic Advertising. Let’s briefly revisit each of these before getting into the details of PAwR.

💡 Also refer to my previous blog posts on Bluetooth Low Energy Advertising:
How Bluetooth Low Energy Works: Advertisements (Part 1)
How Bluetooth Low Energy Works: Advertisements (Part 2)

Bluetooth LE Advertising

Advertising is a crucial part of any Bluetooth-connected system. It’s the way by which Bluetooth LE (peripheral/broadcaster) devices get discovered. This works by sending packets on all (or a subset) of the three primary advertising channels (labeled 37, 38, and 39).

Bluetooth LE RF Channels and Spectrum
Bluetooth LE RF Channels and Spectrum

A few important notes on advertising packets (referred to as advertising PDUs):

Bluetooth LE Extended Advertising

In Bluetooth version 5.0, a new feature called Extended Advertising was introduced. The goal was to offset as much of the advertising data to less congested channels and allow the sending of more data than what can fit into a single primary advertising packet (up to 254 bytes in a single packet or up to 1650 bytes via packet chaining).

This is how it works:

1. The advertising device sends packets (ADV_EXT_IND) on the three primary advertising channels (or a subset of them)

2. These packets do not contain any advertising data. Rather, they contain what’s called an auxiliary packet pointer (AuxPtr).

3. This pointer includes the following information: channel index, clock accuracy, offset units, auxiliary offset, and auxiliary PHY

AuxPtr field in the Common Extended Advertising Packet Format
AuxPtr field within the Common Extended Advertising Packet

4. This information helps a scanner locate where the upcoming extended advertising packet is sent on the secondary advertising channels (0-36)

5. The advertising packet sent on the secondary advertising channels (AUX_ADV_IND) is the one that contains the actual advertising data

6. Extended Advertising packets sent on the secondary advertising channels can contain up to 254 bytes of advertising data

7. Chained Extended Advertising allows sending multiple consecutive Extended Advertising packets that can total up to 1,650 bytes of advertising data

Here’s a diagram showing an example of one scenario:

Extended Advertising Example Diagram. Needed for PAwR.
Extended Advertising Packets on primary and secondary advertising channels

Bluetooth LE Periodic Advertising

Now that we’ve learned about Extended Advertising let’s cover another essential feature of Bluetooth LE: Periodic Advertising.

Periodic Advertising takes advertising to a whole new level. It provides a way for scanning devices to synchronize to a “train” of advertising packets that are used to send out advertising data (that’s usually changing). A good example of this might be a system comprised of multiple temperature sensors, each sending out its latest temperature readings along with timestamps at regular intervals.

The two main advantages of Periodic Advertising are:

Periodic Advertising does require the use of Extended Advertising in order for the scanner to discover and synchronize with the Periodic Advertising train. So, that is a minor downside since the scanner will have to go through the following sequence at least once:

Here’s a diagram showing what this looks like:

Periodic Advertising Example Diagram. Needed for PAwR.
Periodic Advertising in Bluetooth Low Energy

Bluetooth LE Periodic Advertising with Responses (PAwR)

Now that we’ve covered all the background information on advertising and how periodic advertising trains are synchronized to, we are ready to tackle Periodic Advertising with Responses (PAwR).

PAwR takes Periodic Advertising to the next level. It was introduced primarily for the application of Electronic Shelf Labels (ESLs). Accompanying its release in the 5.4 specification, a new ESL Profile specification was also released. It specifies exactly how the PAwR feature is used for ESL applications and introduces it as a Bluetooth LE standardized profile.

However, PAwR can be used in many other applications outside of ESL. Some examples include:

The Technical Aspects

Ok, now let’s go over how the PAwR feature works. We’ll use the following diagram to explain it.

PAwR Timing Parameters
Detailed view of the timing parameters of a PAwR system

Let’s break down the different elements:

PAwR System Design

The most crucial part of designing a PAwR system is going to be defining the timing parameters for the system (Periodic Advertising Interval, Number of Subevents, Subevent Interval, Number of Response Slots, Response Slot Delay, Response Slot Spacing).

Why is this crucial?

Because each packet requires a specific amount of time to be transmitted, we need to consider the time required to send the maximum-size packet and ensure it fits within the timing periods defined in the PAwR system.

PAwR Timing Parameters

This is what the design thought process could look like for such a system:

As you can see, defining the PAwR timing parameters is pretty involved and not entirely straightforward. So, the system architect should probably spend enough time designing these parameters and even prototyping and testing them out on a real system to validate the design.

Security and Encryption of Advertising Data

In some use cases, devices in a PAwR system transmit sensitive data, or they simply don't want the data to be exposed to other devices in the area. Sounds like a great candidate for encryption and security, right?

Traditionally, encryption of (and securing) advertising data was not defined in the Bluetooth specification and was left to implementation at the application level. Fortunately, along with the introduction of PAwR in version 5.4, a new feature called Encrypted Advertising Data (EAD) was introduced. This feature solves the issue at the protocol level, which means it's standardized and can be used across devices from different vendors.

The one caveat for utilizing this feature is that it requires two Bluetooth LE devices to connect and pair (at least once) in order to exchange the information necessary for the decryption of the advertising data by the scanner device.

Here’s a high-level overview of how it works:

Without implementing the new EAD feature, you will have to either handle the encryption of your device’s advertising data at the application level. In highly sensitive use cases, you may still want to add app-level encryption to achieve higher levels of data security.

In the near future, we'll cover this feature in more detail including a walkthrough of implementing it.

Important Design Aspects

Here are some important aspects to keep in mind when designing a PAwR-based system:

Going the Distance!

In contrast to Bluetooth mesh, PAwR does not operate in a way where nodes can relay messages to increase the coverage of the network. Instead, it is exactly like a traditional Bluetooth LE system, where devices are mainly communicating directly with each other.

So, to increase the coverage area and distance for communication, we would need to utilize Bluetooth's Coded PHY (long-range) feature instead. I won't be going into a lot of detail on Coded PHY since I've already covered it in a previous blog post:

📖 Blog Post: Coded PHY: Bluetooth's Long-Range Feature

The main aspect (yet again!) of designing a PAwR system is defining the timing parameters. This is further emphasized when utilizing Coded PHY.

Ok, you may be wondering: why?

This is due to the fact that a Coded PHY packet is larger than a traditional (1M PHY) Bluetooth LE packet, which means it requires a longer time to transmit.

By how much? Good question! Let's dig into this.

For the 1M PHY, here's what the packet transmission timing looks like:

Uncoded 1M PHY Advertising Packet Format and Duration
Total Packet Transmission Time Required > 80 µs Uncoded 1M PHY Advertising Packet Format and Duration

In contrast, here's what the transmission timing for a Coded PHY packet looks like:

Coded PHY Advertising Packet Format and Duration
Total Packet Transmission Time Required > 462 µs, for S=2 Total Packet Transmission Time Required > 720 µs, for S=8 Coded PHY Advertising Packet Format and Duration

LE Coded PHY vs. LE 1M PHY Packet Transmission Duration

As you can see, in the case of Coded PHY, the timing varies depending on the Coding scheme used (S=2 vs. S=8), but in either case, it is much longer than when using the 1M PHY.

So, the important point is to ensure that when designing a PAwR system that uses the LE Coded PHY, you want to pay close attention to the packet duration and design the system timing parameters accordingly.

To recap and make things easier to calculate, here's a list of equations (rough timing estimation) that can be used as a guideline for defining the timing parameters of a PAwR system:

PAwR + Coded PHY (S=8) Demo

To showcase the potential of using Coded PHY in combination with PAwR to achieve longer-range communication, I've built a demo using a few Silicon Labs development kits and based on an existing example provided by Silicon Labs.

The example is called "Bluetooth - PAwR Thermometer".  It does not utilize Coded PHY (instead, it uses the standard 1M PHY), so changes had to be made to support that in addition to re-designing the PAwR timing parameters of the system.

You can find the example on Silicon Labs' GitHub repo here.

Bluetooth PAwR Thermometer Example from Silicon Labs
Bluetooth - PAwR Thermometer Example (Silicon Labs)

Ok, onto the video. Enjoy!

Summary & Recap

In this article, we covered a lot of ground (no pun intended!):

💡Insider Tip: Ready to start building with PAwR, Extended Advertising, and Coded PHY? The Bluetooth Developer Academy offers hands-on courses that walk you through implementation from start to finish.

Read next