Reverse Engineering iBeacon and Eddystone Bluetooth GATT Services

For some of our beacons such the manufacturers haven’t documented their Bluetooth Service Characteristics. This means that while they are ok for scanning/proximity type applications, you can’t write your own app to, for example, change programmatically the UUID, major and minor, transmit power, advertising period and must rely on the manufacturer’s configuration app. While this of no consequence for the majority of uses that set and forget settings, more ambitious scenarios might want directly access the Bluetooth GATT services to change settings.

Uri Shaked has a great article on Medium on how to Reverse Engineer a Bluetooth Lightbulb. His method uses the developer logging in Android 4.4 and later to allow inspection of the Bluetooth packets and hence the Bluetooth Services and Characteristics that are being used. This method can equally be used with iBeacon and Eddystone beacons to reverse engineer the Bluetooth GATT information.

Another method is to use a Bluetooth sniffer. This listens in on the Bluetooth communication between two devices. One way of doing this is with Nordic Semiconductor’s Sniffer software on a dongle. There’s a tutorial on JimmyIoT.

It’s usually ill-advised to reverse engineer interfaces to discover undocumented features because the manufacturer can change the implementation thus breaking your solution. However, it’s very rare that firmware is ever updated in beacons and when it is, it’s usually only to fix bugs rather than change the implementation.

Sensoro Beacons No Longer Manufactured

We have been informed by Sensoro that the SmartBeaconAA and SmartBeaconAA Pro are no longer being manufactured. We have just sold out of our stock so these beacons are no longer available.

SmartBeacon AA Pro

The SensoroAA Pro was a great, robust, waterproof beacon with a great battery life. If you you are now looking for something similar from an alternative manufacturer we suggest you consider the Minew i3.

Beacon Battery Use Testing

One of the issues with using Bluetooth beacons is that it’s not easy to predict how long batteries are going to last. Battery life depends not just on the battery capacity but also the transmitted power, advertising interval, beacon processor chip type and whether the beacon has timed transmission. Also, beacons vary from model to model, sometimes even between revisions of the same model. In some scenarios it’s essential to know which beacon models are the most power efficient and how long batteries will last.

Over the years we have spent a considerable amount of time investigating actual battery use. It’s not as simple as you might think. You can’t use an ammeter because it can’t see the short pulses in peak power. The majority of the power is expended in very short, few millisecond (ms) transmit pulses, in between which the beacon goes into low power sleep.

nordicadvertising

Nordic Bluetooth Advertising Power Use

Testing needs to integrate the current used over multiple advertising periods. The test equipment needs to capture this data at sub 1ms precision in order to catch the pulses. The testing also needs to be flexible enough to work for advertising periods from 100ms to 10 sec.

We have custom in-house designed test equipment capable of real-time battery current testing. This enables us to compare different manufacturers’ beacons having the same configured settings and provide our consultancy clients with beacon battery use data based on their exact configuration settings.

beaconpoweranalyser

As an example, an interesting test we did was was to compare the Sensoro AA transmitting just iBeacon vs iBeacon at the same time as the 3x Eddystone advertising packets. With only ibeacon @ 760ms, 0dBm advertising, 4 typical alkaline batteries would last 7.7 years. Transmitting all 4 iBeacon and Eddystone frames reduces the battery life to 2.9 years.

Another interesting observation has been that the beacons that have the strongest signals aren’t necessarily the ones using the most battery power. Design of aspects, such as the antenna, contribute to power efficiency.

We also offer ad-hoc beacon battery use testing.

What are Beacon OTA Updates?

Beacons are small computers that run software, more specifically firmware. Beacon manufacturers write the firmware that uses Bluetooth software libraries to send out iBeacon, Eddystone and/or sensor data advertising.

When a beacon supports over-the-air (OTA) update, it allows that firmware to be updated without physically connecting to the beacon with wires. A smartphone app, such as the manufacturers’ app or the generic Nordic nRF Toolbox is used to connect to the beacon via Bluetooth and update the firmware.

In practice, manufacturers never update their firmware so whether a beacon supports OTA update or not isn’t usually an issue.

A further use of OTA is the facilitation of custom firmware when the standard firmware needs to be updated to provide for specially required functionality. This is non-trivial and ideally needs to be performed by the original manufacturer because they have the original source code. We have arranged this for a few customers but it tends to only be financially viable for large orders.

Programming jig

It’s also possible to completely replace the software in some beacons, something we provide via custom solutions and used in our social distancing and mesh solutions. In these cases, OTA tends to be too slow so wired programming jigs are sometimes used instead.

What’s the Best iBeacon?

We often get asked what’s the best iBeacon? Unfortunately, there is no one best beacon for all scenarios. It depends on your particular project and business requirements. Having said this we have some favourites based on specific characteristics:

Best for Price: FSC-BP103 – Inexpensive beacon that transmits up to 10 channels simultaneously:

Best for Features: M52-SA Plus – Large easy replaceable battery, long range, temperature, humidity, accelerometer:

iBeacon

Best for Battery Life: SmartBeacon-AA Pro (no longer available) – Allows use of 4x AA batteries. Use lithium AA batteries for 7+ year battery life (also depends on settings).

Best for Setup App: Minew range – Minew’s latest BeaconPlus range (those supporting both iBeacon and Eddystone) provides the best in class app.

View our complete range.