BLE Advertisement Data Parser

Parse and decode BLE advertisement data into individual AD structures. Paste raw hex bytes from a packet capture or scanner.

Examples:

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.