Skip to content

BLE Advertising Data — Guide de Référence 📡

Décodage byte-by-byte du payload d'advertisement Bluetooth Low Energy (GAP).


Votre code — décodage byte-by-byte 🔍

Voici un exemple minimal annoté :

adv_data = (
    b'\x02\x01\x06'  # ^^Longueur ^^Type  ^^Données (flags)
    b'\x03\x03\xAA\xFE'  # ^^Longueur ^^Type  ^^UUID 16-bit (little-endian)
)

Bloc 1 — Flags

  • 0x02 = Longueur (2 octets suivent : type + donnée)
  • 0x01 = Type AD « Flags »
  • 0x06 = Données (flags) — à lire bit par bit

Bits de 0x06 (LSB à droite) : 0000 0110 → bit1 = LE General Discoverable, bit2 = BR/EDR Not Supported

Note : 0x06 est l'usage courant pour devices BLE-only visible indéfiniment.

Bloc 2 — Liste de services (UUID 16-bit)

  • 0x03 = Longueur (3 octets suivent : type + 2 octets UUID)
  • 0x03 = Type AD « Complete List of 16-bit Service UUIDs »
  • 0xAA 0xFE = UUID little-endian → valeur réelle 0xFEAA (Google Eddystone)

Structure générale d'un bloc AD 📐

Chaque bloc suit le motif :

[Len][Type][Data (Len-1 octets)]

La somme des blocs forme le payload (max 31 octets pour advertising channels).


Table de référence — Types AD courants 📋

Quelques types fréquemment rencontrés :

  • 0x01 — Flags
  • 0x03 — Complete 16-bit UUIDs
  • 0x09 — Complete Local Name
  • 0x0A — TX Power Level
  • 0x20 — Service Data — 16-bit UUID
  • 0xFF — Manufacturer Specific Data

(Se référer au Bluetooth SIG pour la liste complète.)


Table de référence — Bits des Flags (Type 0x01) 🚩

  • bit0 (0x01) : LE Limited Discoverable
  • bit1 (0x02) : LE General Discoverable
  • bit2 (0x04) : BR/EDR Not Supported
  • bit3 (0x08) : LE + BR/EDR (Controller)
  • bit4 (0x10) : LE + BR/EDR (Host)
  • bits5–7 : réservés

Exemples / Recette MicroPython 🐍

# Flags
flags = b'\x02\x01\x06'
# UUID 16-bit Eddystone
uuid16 = b'\x03\x03\xAA\xFE'
# Nom du périphérique
name = b"MyDevice"
name_block = bytes([len(name)+1, 0x09]) + name
adv_data = flags + uuid16 + name_block
assert len(adv_data) <= 31

Astuce : Toujours encoder les UUID multi-octets en little-endian dans l'advertising payload.


Références & outils

  • Bluetooth Core Specification (AD Types)
  • Outils d'analyse : hcitool/bluetoothctl, Wireshark (décodage BLE)
  • Pour visualiser beacons : nRF Connect, Beacon Scanner