BLE Advertisement Data Parser
Parse and decode BLE advertisement data into individual AD structures. Paste raw hex bytes from a packet capture or scanner.
How to Use
Paste a BLE advertisement payload as hex bytes into the input field. The parser auto-detects Length-Type-Value (LTV) structures and decodes each one:
- Flags (0x01): decoded into individual flag bits (e.g., LE General Discoverable, BR/EDR Not Supported)
- Local Name (0x08, 0x09): decoded as a UTF-8 string
- Manufacturer Data (0xFF): company ID (little-endian) with the remaining payload in hex
- Service UUIDs (0x02-0x07): listed as 16-bit or 128-bit UUIDs
- TX Power Level (0x0A): shown in dBm
- Service Data (0x16): 16-bit UUID with associated data payload
Use the example buttons to load sample payloads for iBeacon, a simple device, or Eddystone-URL.
BLE Advertisement Format
BLE advertisement packets contain a sequence of AD structures, each encoded as Length-Type-Value (LTV):
- Length (1 byte): number of bytes that follow (type + data)
- Type (1 byte): AD type code defined by the Bluetooth SIG (e.g., 0x01 for Flags, 0xFF for Manufacturer Specific Data)
- Value (Length - 1 bytes): the actual data for this AD type
For example, the hex 02 01 06 represents: length 2 (1 byte type + 1 byte data), type 0x01 (Flags), value 0x06 (LE General Discoverable + BR/EDR Not Supported).
A BLE advertisement can contain multiple AD structures back-to-back, up to a maximum of 31 bytes (or 255 bytes with Extended Advertising in BLE 5.0+). The parser processes each structure sequentially until the data is exhausted or a zero-length field is encountered.