BLE Extended Advertising: Larger Payloads and Multiple Sets
Using BLE 5.0 extended advertising for richer broadcast data
BLE Extended Advertising: Larger Payloads and Multiple Sets
Legacy BLE advertising is constrained to 31 bytes in the primary PDU — sufficient for an iBeacon ATT">UUID but limiting for rich service discovery or long manufacturer data. Bluetooth 5.0 introduced advertising/" class="glossary-term-link" data-term="Extended Advertising" data-definition="BLE 5.0 advertising with up to 255-byte payloads." data-category="GAP & Advertising">Extended Advertising, lifting the payload limit to 254 bytes per PDU with chaining to 1650 bytes total, and enabling simultaneous independent advertising sets with different parameters.
Legacy vs Extended Advertising
| Feature | Legacy (BT 4.x) | Extended (BT 5.0+) |
|---|---|---|
| Primary PDU size | 31 bytes | 31 bytes (primary) + 254 bytes (secondary) |
| Chained payload | No | Yes, up to 1650 bytes |
| PHY | 1M only | 1M/2M primary + 1M/2M/Coded secondary |
| Simultaneous sets | 1 | Up to 16 (host-defined) |
| Periodic Advertising | No | Yes (BT 5.0+) |
| PAwR | No | Yes (BT 5.4+) |
| Max advertising interval | ~10.24 s | ~10485 s |
HCI Command Structure
Extended advertising uses a new set of HCI commands (LE Set Extended Advertising Parameters, LE Set Extended Advertising Data, etc.) with an advertising handle (0x00–0xEF) identifying each set.
LE Set Extended Advertising Parameters (handle=0)
→ Primary PHY: 1M, Secondary PHY: 2M
→ Advertising interval: 100 ms
→ Own address type: random resolvable
LE Set Extended Advertising Data (handle=0)
→ 200 bytes manufacturer specific data
LE Set Extended Advertising Enable (handle=0, enable=true)
Nordic nRF5 SDK: Extended Advertising Example
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
/* Extended advertising parameters */
static struct bt_le_adv_param ext_param = {
.id = BT_ID_DEFAULT,
.sid = 0,
.secondary_max_skip = 0,
.options = BT_LE_ADV_OPT_EXT_ADV,
.interval_min = BT_GAP_ADV_FAST_INT_MIN_2, /* 100 ms */
.interval_max = BT_GAP_ADV_FAST_INT_MAX_2,
.peer = NULL,
};
static uint8_t mfr_data[200]; /* up to 254 bytes */
static struct bt_data ad[] = {
BT_DATA(BT_DATA_MANUFACTURER_DATA, mfr_data, sizeof(mfr_data)),
};
struct bt_le_ext_adv *adv;
bt_le_ext_adv_create(&ext_param, NULL, &adv);
bt_le_ext_adv_set_data(adv, ad, ARRAY_SIZE(ad), NULL, 0);
bt_le_ext_adv_start(adv, BT_LE_EXT_ADV_START_DEFAULT);
Periodic Advertising
Periodic Advertising is an extension of Extended Advertising that syncs a periodic train with a fixed interval. Scanners can sync to the train without a connection, receiving updates at precisely known times — ideal for broadcast sensor data.
Central Peripheral
| |
|<-- SYNC_IND (from AUX_ADV) --|
|-- LE Periodic Advertising |
| Sync Established |
|<-- PA data (no connection) --|
Use cases: fleet telemetry, electronic shelf labels (pre-PAwR), time-synchronized multi-node sensor arrays.
Multiple Advertising Sets
A single BLE controller can run up to 16 advertising sets simultaneously with independent parameters:
| Set | Purpose | Interval | PHY | Payload |
|---|---|---|---|---|
| 0 | Connectable (device discovery) | 100 ms | 1M | Name + services |
| 1 | Rich manufacturer data | 500 ms | 2M | 200-byte sensor payload |
| 2 | Long-range beacon | 1 s | Coded S=8 | 30-byte UUID |
This replaces the legacy pattern of multiplexing data into a single 31-byte packet using scan response PDUs.
Scanner-Side Considerations
Extended advertising requires an active scanning configuration that requests secondary PDUs. Standard BLE 4.x scanners will see only legacy-compatible PDUs; extended payloads are invisible to them unless the advertiser also runs a legacy advertising set.
For backward compatibility, run a legacy set (handle=1) at a longer interval alongside the extended set (handle=0). The Packet Builder can preview extended advertising PDU structures.
RSSI and Link Budget on Extended Advertising
Extended advertising on LE Coded PHY achieves 4× range vs 1M at the cost of 8× slower data rate. For gateway-based deployments where the gateway scans on 1M/2M and the sensor advertises on Coded S=8, the Link Budget improvement is ~12 dB — enabling 300+ m outdoor range with a modest PCB antenna.
Use the Range Calculator to model extended advertising link budgets across PHY options.
Frequently Asked Questions
Yes, our guides range from beginner introductions to advanced topics. Each guide indicates its difficulty level and prerequisites so you can find the right starting point.