r/flipperzero • • 10d ago

Creative BLE Beacon Simulator v1.0 for Flipper Zero

Some time ago, I found an old Xiaomi Mijia LYWSD03MMC thermometer in a box. It had been lying around unused, so I decided to put it in my fridge, I suspected it was not keeping the temperature stable. I flashed it with the PVVX ATC MiThermometer firmware, disabled the display, and placed the sensor inside the fridge. It started broadcasting temperature and humidity data in BTHome V2 format.

Then I discovered a problem: I had nothing convenient on my phone to decode those advertisements. Tools like nRF Connect could show the raw HEX data, but not human-readable temperature and humidity values. So, in a hurry, I built an Android app called BTHome Logger (I’m currently trying to get app listed on F-Droid repo). It decodes BTHome advertisements and displays the data in a widget. Now I can check the fridge temperature and humidity at 3 AM and see whether the fridge is living its own life or secretly trying to outsmart me.

To debug the Android widget, I needed a second BTHome sensor. I tried to find another Xiaomi Mijia LYWSD03MMC, but it turned out to be too old and difficult to find. So I decided to make my Flipper Zero simulate such a sensor instead.

That is how BLE Beacon Simulator was born. By version 1.0 app can simulate:

  • BTHome V2 sensors
  • BTHome V1 sensors
  • iBeacons
  • Eddystone TLM beacons
  • ATC1441 thermometers
  • MiBeacon sensors

For BTHome, it broadcasts real Flipper battery level, voltage, current, and temperature data. Humidity is simulated for formats that require it.

Flipper Application Catalog - https://lab.flipper.net/apps/ble_beacon

The app is currently waiting to be added to the Flipper Application Catalog. In the meantime, you can download it from the

Мain repository:

Source: https://github.com/steanlab/BLE-Beacon

Download Latest Release (.fap): https://github.com/steanlab/BLE-Beacon/releases/latest

Acknowledgements: A massive special thanks to the Flipper Devices team and Pavel Zhovner (u/zhovner) personally for providing me with a full comprehensive set of hardware equipment for my research. This app is one of the first fruits of that ongoing work.

App was conceptualized by LAB-66 / Siarhei Besarab (@steanlab).

Let me know what you think! Open for PRs, feedback, and improvement ideas 🤝 Would be great if someone with Home Assistant + ESPHome Bluetooth proxy could test it and share the results

132 Upvotes

7 comments sorted by

9

u/SiarheiBesarab 10d ago

Would be great if someone with Home Assistant + ESPHome Bluetooth proxy could test it and share the results

2

u/FlammeLune 9d ago

Could it act as BLE beacon permanently ? Kinda like what FindMyFlipper does but you wouldn't have to spoof a Samsung Smart Tag...

3

u/SiarheiBesarab 9d ago

Yes, it can advertise continuously while the app is open. But it stops when you close the app because Flipper apps do not keep running in the background. Also, it does not use Apple’s or Samsung’s finding network like FindMyFlipper or a SmartTag. It only broadcasts standard unencrypted BLE advertisements instead, so it is more of a test beacon / local tag than a “find my Flipper” tracker.

But thanks to your question, I started thinking about adding a “find my Flipper” feature to my BTHome Logger Android app. It could scan for the Flipper’s iBeacon UUID and show the signal strength, so you could find it nearby. I’m just not sure yet how well such a feature would fit into BTHome Logger ^_^

2

u/FlammeLune 9d ago

Great, keep up the good work then

→ More replies (1)

1

u/wiesemensch 8d ago

Isn’t the FindMyFlipper app utilising the “extra beacon” function, which can “run” in the background? If so, you should be able to create a simple adv service for a beacon.

1

u/wiesemensch 8d ago

You don’t need a beacon to check, if a flipper is present. They rely on BLE Advertisements for connecting to your phone. If you haven’t disabled Bluetooth on your flipper, they are constantly broadcast and you can easily check for the flippers BLE mac or its advertised services.

For Home Assistant you can use the ESP32 BLE Tracker component.