BLE Advertising Packet Decoder
Decode Bluetooth Low Energy legacy advertising-channel PDUs or standalone Advertising Data bytes. Inspect the advertising PDU type, advertiser address, header flags, packet length, local device name, service UUIDs, TX power, manufacturer data and other AD structures.
0x8E89BED6, CRC, PHY metadata or RSSI bytes are
present unless you explicitly include them as packet data.
| # | Offset | AD Type | Length | Raw Data | Decoded Value |
|---|
—
What Is a BLE Advertising Packet Decoder?
A BLE Advertising Packet Decoder converts raw Bluetooth Low Energy advertising hex bytes into human-readable packet fields. Depending on the input, the tool can decode the advertising-channel PDU header, device addresses and the variable Advertising Data structures contained inside advertising or scan response packets.
This is useful when inspecting Bluetooth sniffer captures, embedded BLE logs, raw controller packets and beacon or sensor advertisements.
Legacy BLE Advertising PDU Structure
Advertising PDU
+----------------+--------------------+
| 2-byte Header | PDU Payload |
+----------------+--------------------+
Header Byte 0:
PDU Type
RFU
ChSel
TxAdd
RxAdd
Header Byte 1:
Payload LengthThe exact contents of the PDU payload depend on the selected advertising PDU type.
Common BLE Advertising PDU Types
| Code | PDU Type | Typical Payload |
|---|---|---|
| 0x0 | ADV_IND | AdvA + AdvData |
| 0x1 | ADV_DIRECT_IND | AdvA + TargetA |
| 0x2 | ADV_NONCONN_IND | AdvA + AdvData |
| 0x3 | SCAN_REQ | ScanA + AdvA |
| 0x4 | SCAN_RSP | AdvA + ScanRspData |
| 0x5 | CONNECT_IND | InitA + AdvA + LLData |
| 0x6 | ADV_SCAN_IND | AdvA + AdvData |
Advertising Data Structure
BLE Advertising Data is made from a sequence of length-prefixed AD structures.
Length | AD Type | AD Data
Example:
02 01 06
02
= 2 bytes follow
01
= Flags AD Type
06
= Flags valueThe length byte counts the AD Type byte plus the AD Data bytes but does not include the length byte itself.
BLE Advertising Flags
Advertising Data type 0x01 contains the Bluetooth LE advertising
flags.
Flag bit 0:
LE Limited Discoverable Mode
Flag bit 1:
LE General Discoverable Mode
Flag bit 2:
BR/EDR Not Supported
Flag bit 3:
Simultaneous LE + BR/EDR Controller
Flag bit 4:
Simultaneous LE + BR/EDR Host
A commonly encountered value is 0x06, indicating LE General
Discoverable Mode and BR/EDR Not Supported.
Complete and Shortened Local Name
Advertising Data type 0x09 contains a Complete Local Name, while
type 0x08 contains a Shortened Local Name.
07 09 42 69 6E 61 72 79
Length:
7
Type:
09 — Complete Local Name
UTF-8 / ASCII:
Binary16-Bit Service UUIDs
BLE advertisements can include lists of 16-bit service UUIDs. Each UUID is stored least-significant byte first inside the Advertising Data field.
Advertising bytes:
0D 18
Decoded 16-bit UUID:
0x180D
For example, UUID 0x180D is commonly associated with the Bluetooth
Heart Rate service, but the calculator reports the numeric UUID without
requiring an external service-name database.
BLE TX Power Advertising Data
Advertising Data type 0x0A carries the TX Power Level as a signed
8-bit value in dBm.
02 0A FC
Length:
2
AD Type:
0A
Value:
FC hexadecimal
= -4 signed 8-bit
TX Power:
-4 dBmManufacturer Specific Data
Advertising Data type 0xFF is reserved for Manufacturer Specific
Data. The first two data octets contain the Bluetooth Company Identifier in
little-endian order.
FF payload:
4C 00 01 02 03 04
Company Identifier:
0x004C
Manufacturer Payload:
01 02 03 04The tool reports the company identifier numerically rather than guessing the company name from an incomplete or outdated lookup table.
Service Data
AD type 0x16 contains Service Data associated with a 16-bit UUID.
The first two data bytes form the UUID in little-endian order and the remaining
bytes belong to that service’s application format.
AD Type:
0x16
Data:
0D 18 AA BB
UUID:
0x180D
Service-specific bytes:
AA BBBLE Device Address Byte Order
BLE device addresses are transmitted least-significant octet first. Packet capture tools may therefore show address bytes in the reverse order from the usual human-readable Bluetooth address.
Packet bytes:
66 55 44 33 22 11
Standard displayed address:
11:22:33:44:55:66This calculator provides both standard display order and raw packet-byte order.
Public vs Random Advertising Address
The TxAdd bit in the advertising PDU header identifies the advertiser address type for legacy advertising PDUs.
TxAdd = 0
Public Device Address
TxAdd = 1
Random Device AddressFurther classification of a random address can depend on its upper address bits and privacy behavior.
BLE Advertising Packet Length
The legacy advertising-channel PDU header contains a payload-length field. The decoder compares that field with the number of supplied bytes and reports a length mismatch instead of silently reading beyond the declared PDU.
Advertising Data Only Mode
Some APIs do not expose the BLE link-layer PDU header and instead provide only the Advertising Data bytes. In that case select Advertising Data Only and paste the sequence beginning directly with the first AD structure length byte.
02 01 06
03 03 0D 18
05 09 54 65 73 74
02 0A FCBLE Advertising Packet Decoder FAQs
What input can this BLE decoder read?
Does the input include the BLE preamble?
Does it expect the advertising access address?
What does AD type 0x01 mean?
What does AD type 0x09 mean?
What does AD type 0x08 mean?
What does AD type 0x0A mean?
What does AD type 0xFF mean?
Why is the Bluetooth device address reversed?
Can this tool decode SCAN_RSP packets?
Can it decode ADV_DIRECT_IND?
Can it decode manufacturer-specific beacon formats?
Does this decode extended BLE advertising?
Decode BLE Advertising Hex Bytes
Inspect legacy Bluetooth LE advertising PDUs and Advertising Data structures, including packet type, addresses, flags, names, UUIDs, TX power, service data and manufacturer-specific payloads.