Everything You Need To Know About Bluetooth LE Advertising: Nordic Tech Webinar
Everything You Need To Know About Bluetooth LE Advertising: Nordic Tech Webinar
Bluetooth LE advertising
Nordic Tech Webinar
Hung Bui / Senior Application Engineer
Håkon Helsing / Senior Application Engineer
September 2020
© Nordic Semiconductor
Practicalities
Duration: 50-60 min
Questions are encouraged!
Please type questions in the top of the right sidebar
All questions are anonymous
Try to keep them relevant to the topic
Today’s hosts
Hung Bui Håkon Helsing
Agenda
Basics
Advertising Extensions
Advertising types
Advertising data format
nRF Connect SDK API and example walk through
Advertisiment analysis with nRF Sniffer for Bluetooth LE
Basics
© Nordic Semiconductor
What is advertising?
A Broadcaster advertises to broadcast data
Data
RSSI
Direction Finding I/Q data
Roles (GAP)
B Broadcaster
O Observer
O
B
P Peripheral
C Central
© Nordic Semiconductor
Roles (GAP)
C B Broadcaster
O Observer
O
B
P Peripheral
C Central
© Nordic Semiconductor
Roles (GAP)
C B Broadcaster
O Observer
O P
B
P Peripheral
C Central
© Nordic Semiconductor
Roles (GAP)
C B Broadcaster
O Observer
O P
B
P Peripheral
C Central
© Nordic Semiconductor
Roles (GAP)
C B Broadcaster
O Observer
O P
B
P Peripheral
C Central
© Nordic Semiconductor
37
38
39
Advertising on channel
20 ms 25 ms 28 ms 22 ms
© Nordic Semiconductor
37
38
39
Advertising on channel
20 ms 25 ms 28 ms 22 ms
© Nordic Semiconductor
O 37 38 39 37 38
20 ms 25 ms 28 ms 22 ms
© Nordic Semiconductor
O 37 38 39 37 38
20 ms 25 ms 28 ms 22 ms
© Nordic Semiconductor
O 37 38 39 37 38
20 ms 25 ms 28 ms 22 ms
© Nordic Semiconductor
O 37 38 39 37 38
20 ms 25 ms 28 ms 22 ms
Advertising types
© Nordic Semiconductor
O RX
B
RX
RX
TX
TX
© Nordic Semiconductor
O RX
B
RX
RX
TX
TX
TX
© Nordic Semiconductor
O RX
TX
Scan request
B
RX
RX
RX
TX
TX
TX
© Nordic Semiconductor
RX
RX
O
TX
Scan response
B
RX
RX
RX
TX
TX
TX
TX
© Nordic Semiconductor
Connection request
ADV_IND and ADV_DIRECT_IND are connectable
C RX
P
RX
RX
TX
TX
TX
© Nordic Semiconductor
Connection request
ADV_IND and ADV_DIRECT_IND are connectable
C RX
TX
Connection request
P
RX
RX
RX
TX
TX
TX
© Nordic Semiconductor
Non-connectable advertising
ADV_NONCONN_IND
Not connectable or scannable
No RX -> Lower power consumption
O RX
B
TX
TX
TX
© Nordic Semiconductor
Advertising interval
ADV_NONCONN_IND, ADV_SCAN_IND, ADV_IND
20 ms to 10.24 seconds, in steps of 0.625 ms
0-10 ms random delay
White list
An advertiser can use a white list to filter out unwanted scan requests and/or connection
requests
The white list contains device addresses and/or Identity Resolving Keys (IRKs) that the
advertiser shall accept scan requests and/or connection requests from, filtering away all
other.
These typically belong to devices it has bonded with
IRKs are shared after bonding, and are used to resolve private resolveable addresses
Advertising PDU
Advertising PDU:
Header Payload
16 bits (1-255 octets)
Header Payload
16 bits (1-255 octets)
Resolvable
© Nordic Semiconductor
Header Payload
16 bits (1-255 octets)
With ADV_IND, ADV_NONCONN_IND and ADV_SCAN_IND the sum of the structures can
be maximum 31 bytes, with overhead
© Nordic Semiconductor
Local Name
Typically included in connectable advertisements so that a human user can select to connect. For
example «Heart rate sensor».
Can be shortened (0x08) or complete (0x09)
© Nordic Semiconductor
Advertising Extensions
2 bytes header
255 bytes payload
254 bytes advertising data
255
Advertising extensions
Header is repeated on the
advertising channels
Payload is only transmitted
once
© Nordic Semiconductor
16320 symbols
© Nordic Semiconductor
Chaining
Advertisements can
be chained together
to extend the
amount of
advertising data 255 255 255
© Nordic Semiconductor
Periodic Advertising
Enables synchronized broadcasting of advertising data
Happens at a deterministic interval allowing true
connectionless broadcasting
© Nordic Semiconductor
Periodic Advertising
Connectionless Direction Finding
nRF Connect SDK
API, example walkthrough and demo
© Nordic Semiconductor
Demo setup
© Nordic Semiconductor
Demo
© Nordic Semiconductor
Demo
© Nordic Semiconductor
Examples
Example 1: scan_adv sample, unmodified from Zephyr Project
Example 2: Static address, name, Company ID
Example 3: Advertising interval, set address
Example 4: Scan response, send more data(128-bit UUID)
Example 1
scan_adv
© Nordic Semiconductor
Example 2
[SES-window]
© Nordic Semiconductor
Example 2 Filtering
Extra packet
information
PACKET DETAILS
BLE packet
Example 3
[SES-window]
© Nordic Semiconductor
Example 3
[Wireshark window]
Example 4
Scan response, send more data(128-bit UUID)
© Nordic Semiconductor
Example 4
[SES-window]
© Nordic Semiconductor
Example 4
[Wireshark window]
Q&A