The Bluetooth SIG released Bluetooth v5.0 in December 2016. This version introduced features that doubled the transmission rate, and stretched the transmission range by as much as a factor of four. It also introduced the extended advertising feature. This feature increased the advertising data payload by an astounding factor of eight.
In earlier Bluetooth versions, legacy advertising limited devices to broadcasting advertising data of up to 31 bytes. This space typically sufficed for the device name and key flags, such as LE-Only support and general discoverability. If a device needed to advertise additional information, a scan response packet came to the rescue, offering an additional 31 bytes.
But what if an LE device wants to advertise even more data or needs to send out various advertising sets simultaneously, each with distinct data or parameters? Or, further yet, desires to broadcast changing data periodically? In such instances, legacy advertising falls short, and extended advertising is used.
This article explores the Bluetooth LE extended advertising feature, detailing its functions, advantages, and the wide range of use-cases it caters to.
What Is Extended Advertising?
Bluetooth LE operates in the 2.4GHz ISM band, which is then divided into 40 channels. In Bluetooth v4.0, v4.1 and v4.2, legacy advertising events occur on just three of these channels (37, 38, and 39), while the remaining 37 channels are designated for bidirectional data transmission between connected devices.
Extended advertising, as its name suggests, expands the advertising process beyond the three primary channels to also include the 37 general purpose channels. When used for this purpose, these 37 general purpose channels are referred to as secondary advertising channels.
How Extended Advertising Works
Extended advertising works by transmitting the extended advertising indication packet and its auxiliary packet(s). The extended advertising indication packet is the ADV_EXT_IND packet, transmitted on the primary channels (CH37, CH38, and CH39).
The ADV_EXT_IND packet is a short packet that only contains the header information, including an auxiliary pointer (AuxPtr). The AuxPtr provides the channel index for the secondary channel where the auxiliary packet will be transmitted and the offset to the start time of the auxiliary packet.
The auxiliary packet is the AUX_ADV_IND packet. It contains the actual advertising data and is transmitted on one of the secondary channels.
Besides the AUX_ADV_EXT packet, extended advertising has other auxiliary packets based on the advertising mode. For scannable advertising, the packets are AUX_SCAN_REQ and AUX_SCAN_RSP, and for connectable advertising, they are AUX_CONNECT_REQ and AUX_CONNECT_RSP.
These four packet types are sent after the AUX_ADV_IND packet and use the same secondary channel as this initial packet for their transmission.
For instance, during scannable advertising, after each AUX_ADV_IND PDU is sent, the advertiser listens for an AUX_SCAN_REQ PDU from the scanner on the same secondary advertising channel index used for the transmission of the AUX_ADV_IND packet. If detected, the advertiser then responds with an AUX_SCAN_RSP PDU on that same secondary channel index.
Configuring Extended Advertising via HCI Commands
To set up a device for extended advertising, the Host first sets the extended advertising parameters using the HCI LE_Set_Extended_Advertising_Parameters command. Then, it sets up the extended advertising data with the HCI LE_Set_Extended_Advertising_Data command and finally enables extended advertising with the HCI LE_Set_Extended_Advertising_Enable command.
After the Host has configured the Link Layerusing the relevant HCI commands, the Link Layer transitions to Advertising State, and uses the LE advertising physical channel.
LE Advertising Physical Channel
The specification (version 5.4 | Vol 1, Part A, section 3.3.2), describes the LE advertising physical channel as follows:
The LE advertising physical channel is made of a number of RF frequencies and is used for broadcasting advertisements to LE devices. These advertisements can be used to discover, connect, or send user data to scanner or initiator devices.
Furthermore, (version 5.4 | Vol 1, Part A, section 3.3.2.2.1) elaborates:
An LE advertising physical channel is used to set up connections between two devices or to communicate broadcast information between unconnected devices.
In the context of extended advertising, the LE advertising physical channel is bifurcated into the primary advertising physical channel and the secondary advertising physical channel.
The primary advertising physical channel consists of three PHY channels (CH37, CH38, CH39). However, an advertising device can limit this set of three PHY channels to one or two to reduce interference, though this increases discoverability time.
The primary advertising physical channel is reserved for legacy advertising packets and the extended advertising indication packet (ADV_EXT_IND). Moreover, it can operate using either the LE 1M or LE Coded PHY.
Conversely, the secondary advertising physical channel comprises the remaining 37 PHY channels. Unlike its primary counterpart, it can use any PHY variant (LE 1M, LE 2M, or LE Coded PHY). This channel is meant for transmitting extended advertising auxiliary packets.
The LE advertising physical channel is also divided into advertising events and extended advertising events.
Extended Advertising Events
Devices that support Bluetooth v5.x can start an advertising event by sending out legacy advertising packets. At nearly the same time, they can also start an extended advertising event by sending extended advertising indication packets. Both of these actions take place on the primary advertising channel. This means that Bluetooth 5-compatible scanner devices can look for both legacy and extended advertising messages at the same time.
Legacy advertising events only use the primary advertising channel. However, extended advertising events go beyond that. They continue by sending auxiliary packets on the secondary advertising channel.
Primary and Secondary Physical Channel Options
Extended advertising packets have different features on the primary and secondary physical channels, especially in terms of timing and PHY options.
Refer to Fig. 3 for a visual representation. On the primary channel, where the extended advertising indication packet is transmitted, there are variable advertising intervals. For undirected and low duty cycle advertising, the interval can range from 20 ms to 10,485.759375 s. However, when dealing with high duty cycle directed connectable advertising, the interval is 3.75 ms or less. Additionally, a random delay of 0 to 10 ms is added to these intervals.
In contrast, extended advertising on the secondary channel for the auxiliary packets has its timing set by parameters like the minimum AUX frame space and the space between frames.
The specification (Version 5.4 | Vol 6, Part B) defines the minimum AUX frame space as
The minimum time interval between a packet containing an AuxPtr and the auxiliary packet it indicates is called the Minimum AUX Frame Space. It is defined as the minimum time from the end of the last bit of the packet containing the AuxPtr to the start of the auxiliary packet. The Minimum AUX Frame Space is designated “T_MAFS” and shall be 300 µs.
And it defines the inter frame space as
The time interval between two consecutive packets on the same channel index is called the Inter Frame Space. It is defined as the time from the end of the last bit of the previous packet to the start of the first bit of the subsequent packet. The Inter Frame Space is designated “T_IFS” and shall be 150 µs.
Moreover, the primary channel’s extended advertising event is limited to the LE 1M and Coded PHY variants. In contrast, the secondary channel’s event can accommodate any of the three PHY variants. However, there’s a stipulation: all auxiliary packets within a single extended advertising event must use the same PHY.
Duration of Extended Advertising
To set the duration for extended advertising of a specific advertising set, the HCI LE_Extended_Advertising_Enable command is used. This command includes a duration[i] parameter for specifying the desired duration.
If duration[i] is zero, then there’s no set advertising time. Advertising continues until the Host turns it off by setting HCI LE_Extended_Advertising_Enable to “disable” or giving it a value of 0x00.
The allowed duration is between 10 ms and 655,350 ms. Once this time is up, extended advertising stops. But if it’s in high duty cycle connectable directed mode, the Duration[i] shouldn’t be more than 1.28 seconds.
Another key component of the HCI LE_Extended_Advertising_Enable command is Max_Extended_Advertising_Events[i].This component sets the maximum number of extended advertising events the Controller should try before ending the advertising. If the number of events goes above this limit, advertising stops.
AuxPtr Data Field and Associated Timing Information
The AuxPtr data field provides details about the auxiliary packet, including its radio PHY, timing, and transmission channel.
The AuxPtr data field contains five subfields, with the ‘Offset Units’ and ‘AUX Offset’ specifically related to timing. The ‘Offset Units’ subfield acts as a timing multiplier, setting the time unit for the auxiliary packet’s start delay. A zero value indicates a 30 µs time unit, and a one value indicates a 300 µs time unit.
The ‘AUX Offset’ subfield shows the time difference between the start of the packet with the AuxPtr datafield (the reference packet) and the start of the auxiliary packet. The actual time difference (offset) is found by multiplying the AUX Offset value by the time unit from the Offset Units.
There’s a built-in safety time gap called T_MAFS, set at 300 µs. After the reference packet finishes, there needs to be a pause at least as long as T_MAFS before the auxiliary packet begins. This prevents the packets from overlapping. The specification requires that the timing difference between the reference packet and the auxiliary packet be at least the time to send the whole reference packet plus T_MAFS.
It’s important that if the Aux Offset value (before we multiply it by the time unit) is less than 245,700 µs, the Offset Units field should be zero. That means we use the smaller 30 µs time unit for smaller offsets and 300 µs for larger ones.
Finally, the auxiliary packet’s actual start time must not be earlier than the Aux Offset time, and not later than Aux Offset plus one time unit (either 30 µs or 300 µs, based on the Offset Units field). This rule sets a specific time window for starting the auxiliary packet.
Benefits of Extended Advertising
The Bluetooth LE feature is used in diverse applications, from beacons in smart retail environments and museums to LE Audio devices. Here are some advantages of integrating this feature into your upcoming LE product:
1. Provides an Eightfold Boost in Advertising Data Payload
Extended advertising lets you broadcast bigger advertising messages, up from 31 bytes to 254 bytes. That’s about eight times more space.
The reason it can do this is that it sends only the advertising header information on primary channels and the payload data on secondary channels. The secondary channels can hold more data.
This extended advertising capability is great for Bluetooth LE audio applications and beacon-based services, as they need to broadcast a richer set of information than legacy Bluetooth LE advertisements can handle.
2. Reduces Data Load and Congestion on the Primary Advertising Channel
In every legacy advertising event, the complete advertising packet is repeatedly sent over the primary advertising channels.
In contrast, extended advertising only broadcasts the short extended advertising indication packet on the primary advertising channel, leaving out the advertising data. This approach drastically reduces the data load and prevents congestion on these primary channels.
Such a system is essential for long-range connectionless communication applications that use the LE Coded PHY. In the LE Coded PHY with an s=8 configuration, one bit is represented by eight symbols. This means the payload data length is eight times its usual size.
If this large amount of data were sent using legacy advertising, it would cause heavy data traffic on the primary channels. The result would be significant primary channel contention and an increased duty cycle on the primary channels, reducing efficiency.
But extended advertising can manage these large messages without overloading the primary advertising channel.
3. Packet Chaining
Packet chaining allows the transmission of data that exceeds the maximum size of a single advertising packet, which in this case is 254 bytes. This happens by splitting the information into multiple packets and then transmitting these in a sequence, forming a chain.
In a chained advertising sequence, each packet (except the last one) points to the next packet. This is achieved by including an auxiliary pointer (AuxPtr) in the header that directs the Scanner to the next packet’s location and timing on the secondary channel.
Consequently, the Scanner device follows these pointers from one packet to the next, reassembling the complete data set from the chain of packets.
The extended advertising packet chaining capability provides a way to distribute larger amounts of data of up to 1650 bytes to Scanners without the need for connections.
4. Versatile Broadcasting
Extended Advertising empowers devices to divide advertising data into specific groups, known as ‘advertising sets.’ Each set can possess its own unique content and configuration, allowing a device to broadcast as many as 16 distinct advertising sets at the same time.
With this arrangement, an advertiser can simultaneously transmit different data to multiple Scanner devices. Parameters like advertising intervals, PHY radio type, and the option for connectable or non-connectable events can differ across these sets.
For example, an advertiser could broadcast a non-connectable packet carrying sensor data and simultaneously send a connectable packet inviting a connection from another device.
Scannerscan distinguish between these sets using the Advertising Set ID (SID) and Advertising Data ID (DID). The SID uniquely identifies the advertising sets, while the DID informs Scanners if the current Advdata is potentially a repeat of a previous packet. Both IDs are present in each extended advertising packet within the AdvDataInfo field.
To manage these sets, advertisers can use the HCI_LE_Remove_Advertising_Set command to remove specific sets or the HCI_LE_Clear_Advertising_Sets command to clear all sets.
5. Periodic Advertising
Extended advertising enables what’s known as periodic advertising, a feature where an advertiser transmits packets at fixed, predictable intervals. Instead of continuous scanning, the Scanner synchronizes with this periodic advertising schedule and activates only at the expected times to receive the packets. This method significantly conserves energy, as the Scanner device can remain in sleep mode when there are no advertisements, thereby reducing power consumption.
How Extended Advertising Compares to Legacy Advertising
Property | Legacy Advertising | Extended Advertising |
Channel Usage | Uses only 3 primary channels (CH37, CH38, CH39) for advertising. | Uses both primary and secondary advertising channels (CH0-CH39). |
Payload Size | Limited payload size – up to 31 bytes. | Much larger payload size – up to 254 bytes in a single packet. |
Data Transmission | The complete advertising payload is repeatedly transmitted on the primary advertising channels. | Only header data is transmitted on the primary advertising channels, reducing both the data load and contention on these channels. |
Advertising Sets | Single advertising set at a time. | Supports up to 16 different advertising sets simultaneously. |
Packet Chaining | No packet chaining capability. | Supports packet chaining for transmitting very large data sets of up to 1650 bytes. |
Synchronous Communication | No support for periodic (synchronous) advertising. | Supports synchronous communication via periodic advertising. |
PHY support | Limited to LE 1M PHY. | Supports LE 1M PHY, 2M PHY, and Coded PHY (both S=2 and S=8). |
Mobile Support | All Android and iOS versions. | Supported by Android 8.0 and above, and iOS13 and above. |
Applications | Ideal for simpler use cases. | Use-cases that need to broadcast complex data like Bluetooth LE Audio applications and beacon-based services. |
Conclusion
Extended advertising offers a revolutionary approach to Bluetooth connectionless
communication, characterized by its exceptional features: hefty message sizes, versatile advertising support, packet chaining, and periodic advertising.
These capabilities enable broadcasting a richer set of advertising data, making it essential for applications like location-based services and LE Audio. The next article in this series will delve into periodic advertising.
References & Additional Resources
- “Bluetooth® Core Specification Version 5.0 Feature Overview”
Bluetooth.com, www.bluetooth.com/bluetooth-resources/bluetooth-5-go-faster-go-further/ Accessed 27 Oct. - “Core Specification 5.4” Bluetooth.com,
www.bluetooth.com/specifications/specs/core-specification-5-4/. Accessed 27 Oct. 2023. - “Discovering Auracast™ – The Public Broadcast Profile”, Cloud2GND.com, Accessed