Scan Response
The Scan response packet contains basic information about a Beacon.
Once a connectable advertising packet (ADV
) has been received by a scanning device (such as mobile phones), further information can be requested. The Beacon responds with the Scan response packet. After sending the scan response packet (this is sent just once) the Beacon will continue broadcasting advertising packets.
Scan response packets play an important role on nRF51- and DA14580-based beacons, where they contain identifiable information needed to efficiently manage beacons, like:
- Device name
- Transmission power level
- Unique ID
- Firmware version
- Battery level
On newer, nRF52-based devices, scan response is kept only for compatibility reasons and consists of just the Bluetooth name of a beacon. On these devices the role of providing identifiable information is played by the Kontakt.io Secure Profile packet.
Classic Scan Response Packet structure
Byte offset | Default/sample value | Description |
---|---|---|
0 | 0x08 |
Data length – 8 bytes (varies depending on name's length, max. 16 bytes - 1 for data type and 15 for the actual name) |
1 | 0x09 |
Data type – complete local name |
2 | 0x4B |
Local name (K) |
3 | 0x6F |
Local name (o) |
4 | 0x6E |
Local name (n) |
5 | 0x74 |
Local name (t) |
6 | 0x61 |
Local name (a) |
7 | 0x6B |
Local name (k) |
8 | 0x74 |
Local name (t) |
9 | 0x02 |
Data length – 2 bytes |
10 | 0x0a |
Data type – Tx power level |
11 | 0xF4 |
Tx Power value |
12 | 0x0A |
Data length – 10 bytes |
13 | 0x16 |
Data type – service data |
14 | 0x0D |
Service UUID |
15 | 0xD0 |
Service UUID |
16 | 0x61 |
Unique ID 1st byte |
17 | 0x62 |
Unique ID 2nd byte |
18 | 0x63 |
Unique ID 3rd byte |
19 | 0x64 |
Unique ID 4th byte |
20 | 0x04 |
Firmware version (major) |
21 | 0x02 |
Firmware version (minor) |
22 | xx | Battery level |
Scan Response Packet structure from nRF52-based devices
Byte offset | Default/sample value | Description |
---|---|---|
0 | 0x08 |
Data length – 8 bytes (varies depending on name's length) |
1 | 0x09 |
Data type – complete local name |
2 | 0x4B |
Local name (K) |
3 | 0x6F |
Local name (o) |
4 | 0x6E |
Local name (n) |
5 | 0x74 |
Local name (t) |
6 | 0x61 |
Local name (a) |
7 | 0x6B |
Local name (k) |
8 | 0x74 |
Local name (t) |