BLE Beacon Simulator is a Flipper Zero application that turns the device into a configurable Bluetooth Low Energy (BLE) beacon for testing BLE scanners, smart-home integrations, and mobile applications.
The app was originally created as a second test sensor for debugging BTHome Logger, an Android application that decodes BTHome v1 and v2 advertisements into human-readable readings. Instead of buying a second physical thermometer, the Flipper Zero can emulate one.
It has since grown into a more general BLE beacon simulator. It is useful for developers, makers, home-automation enthusiasts, firmware testers, and anyone working with BLE sensors, smart-home integrations, or Bluetooth advertising formats.
The application broadcasts unencrypted BLE advertisements from the Flipper Zero. You can switch between several common beacon formats and inspect live Flipper telemetry on the screen.
Supported beacon types:
- BTHome V2
- BTHome V1
- iBeacon
- Eddystone TLM
- ATC1441
- MiBeacon
The device advertises with the local name Flipper` where the selected advertising format has enough space for it.
Testing a BTHome receiver, Android widget, Home Assistant integration, or BLE scanner usually requires a real sensor that continuously broadcasts temperature, humidity, battery, and voltage data.
This app provides a convenient software-based test transmitter:
- Test a BTHome decoder without a second hardware sensor.
- Generate repeatable BLE advertisements for mobile-app debugging.
- Check how a scanner handles different beacon formats.
- Simulate a temperature and humidity sensor for smart-home testing.
- Verify that a widget or logger correctly updates when new advertisements arrive.
- Experiment with BTHome v1, BTHome v2, iBeacon, Eddystone TLM, ATC1441, and MiBeacon formats.
The Flipper Zero provides real battery and power-management telemetry. Some fields required by certain beacon formats are not physically available on the device, so they are clearly simulated.
| Data | Source |
|---|---|
| Battery level | Real Flipper battery percentage |
| Battery voltage | Real Fuel Gauge measurement |
| Battery current | Real Fuel Gauge measurement |
| Battery temperature | Real Fuel Gauge temperature |
| Charger / board temperature | Real charger IC temperature |
| Humidity | Simulated: 42–48% |
| iBeacon UUID | Static test UUID |
| iBeacon major / minor | Static test values |
| iBeacon measured RSSI | Static test value: -59 dBm |
| Advertising counter | Incremented on every update |
| Uptime | Incremented on every update |
The simulated humidity changes slightly between advertising updates, which makes it useful for checking that a receiver updates its UI correctly.
Broadcasts an unencrypted BTHome V2 advertisement using service UUID 0xFCD2.
Included data:
- Battery level
- Battery voltage
- Battery current
- Battery temperature
- Charger temperature
This is the recommended format for testing BTHome Logger and Home Assistant-style BTHome integrations.
Broadcasts an unencrypted BTHome V1 advertisement using service UUID 0x181C.
It contains the same telemetry fields as BTHome V2 and is useful for testing older BTHome receivers and custom parsers.
Broadcasts an Apple iBeacon advertisement with:
- Proximity UUID: e2c56db5-dffb-48d2-b060-d0f5a71096e6
- Major: 1
- Minor: 1
- Measured RSSI at 1 m: -59 dBm
Broadcasts an Eddystone Telemetry frame using the Eddystone service UUID 0xFEAA.
Included data:
- Battery voltage
- Battery temperature
- Advertising count
- Uptime in seconds
Emulates the advertising format used by ATC1441 / PVVX-flashed Xiaomi thermometer sensors.
Included data:
- Temperature
- Simulated humidity
- Battery level
- Battery voltage
- Advertising counter
This format is useful for testing receivers intended for custom Xiaomi thermometer firmware.
Emulates a simplified unencrypted Xiaomi MiBeacon advertisement.
Included data:
- Temperature
- Simulated humidity
- Battery level
The product ID is intended to be replaced with the ID of a real Xiaomi device when full receiver compatibility is required.
The main screen shows the selected beacon type, live telemetry, and the advertising status. When the beacon is active, an ADV indicator and a blinking Bluetooth symbol appear at the top of the screen.
| Button | Action |
|---|---|
| Left | Previous beacon type |
| Right | Next beacon type |
| Up, short press | Select Info |
| Down, short press | Select Help |
| Up, long press | Open the Info screen |
| Down, long press | Open the Help screen |
| OK | Start or stop the beacon; opens Info or Help if selected |
| Back | Open the exit confirmation screen |
The beacon is not started automatically. Press OK to begin advertising.
The Info screen explains which values are simulated and which values come from the Flipper hardware.
It includes:
- Simulated humidity range
- Static iBeacon UUID, major, minor, and RSSI values
- List of real Flipper telemetry values
- BLE local name
Use Up and Down to scroll through the text. Press OK or Back to return to the main screen.
The Help screen contains a short reference for all controls.
Use Up and Down to scroll through the text. Press OK or Back to return to the main screen.
Pressing Back on the main screen opens an exit confirmation dialog. If you select Yes, the app shows a short exit splash screen. After the splash screen, the application stops BLE advertising, releases all resources, and exits cleanly.
- The application uses the Flipper Zero extra BLE beacon API.
- Advertising interval: 1000 ms.
- Advertising channels: 37, 38, and 39.
- Address type: random static address.
- Advertising update interval: 2000 ms.
- All supported advertisements are unencrypted.
- The BLE advertising payload is limited to 31 bytes, which determines which fields and local names fit into each beacon format.
- BTHome Logger for Android — an Android application for receiving and decoding unencrypted BTHome v1 and v2 advertisements.
Siarhei Besarab (steanlab)
LAB-66
- LAB-66: t.me/lab66
- LinkedIn: @steanlab
- Mastodon: @lab66
If this database tool is useful for your academic, educational, laboratory, or hardware projects, you can support its development:
- PayPal
- Revolut
- GitHub Sponsors
- Donorbox
- Crypto Bitcoin (BTC): bc1qe5dmykh247nnycz8tjlfp3te67kftsmc8uxz5k, Ethereum (ETH): 0x3Aa313FA17444db70536A0ec5493F3aaA49C9CBf, Z-CASH (ZEC): t1LrYwjGn84gG4fWRs3ajaHZdaK2VWi5gFk
Thank you for supporting independent science and open-source tools.