Bluetooth: iBeacon


This simple application demonstrates the BLE Broadcaster role functionality by advertising an Apple iBeacon. The calibrated RSSI @ 1 meter distance can be set using an IBEACON_RSSI build variable (e.g. IBEACON_RSSI=0xb8 for -72 dBm RSSI @ 1 meter), or by manually editing the default value in the main.c file.

Because of the hard-coded values of iBeacon UUID, major, and minor, the application is not suitable for production use, but is quite convenient for quick demonstrations of iBeacon functionality.


  • A board with Bluetooth LE support, or
  • QEMU with BlueZ running on the host

Building and Running

This sample can be found under samples/bluetooth/ibeacon in the Zephyr tree.

See bluetooth setup section for details on how to run the sample inside QEMU.

For other boards, build and flash the application as follows:

# On Linux/macOS
cd $ZEPHYR_BASE/samples/bluetooth/ibeacon
mkdir build && cd build
# On Windows
cd %ZEPHYR_BASE%\samples\bluetooth\ibeacon
mkdir build & cd build
cmake -GNinja -DBOARD=<board> ..
ninja flash

Refer to your board’s documentation for alternative flash instructions if your board doesn’t support the flash target.