Starting Android iBeacon App Development

Here are some pointers how to go about Android beacon development:

  • The Android documentation is excellent.
  • Read the posts tagged Android on this blog.
  • Avoid the libraries produced by the beacon manufacturers. They tend to add little value, are usually poorly documented and aren’t changed when there are updates to underlying Android libraries. You can achieve everything with the Android APIs. The only exception is connecting via GATT to Sensoro beacons where the Service/Characteristic information isn’t publicly available and hence you have to use their SDK.
  • The TI SensorTag library has some great examples of how to connect via GATT.
  • Nordic Semiconductor, the manufacturer of the System on a Chip (SoC) in most beacons, has useful libraries for scanning and connecting via GATT.
  • Take a look at the Bluetooth LE Wiki for links to more resources.

If you need more help we provide beacon app development services.

Bluetooth 5 Support

We are starting to see the first beacons and gateways that truly support Bluetooth 5 even though the standard was released in 2016. Up to recently, some have claimed to support Bluetooth 5 in that the internal hardware and software (SDK) was Bluetooth 5 capable but most, if not all, of the Bluetooth 5 features weren’t available.

Compatibility is dependent on smartphones supporting Bluetooth 5 that has also only come to fruition with recent phone models. Most Android smartphones manufactured in the last few years use Android 10 or Android 11 that has Bluetooth 5 software support. However, the Bluetooth chip inside the smartphone also needs to support Bluetooth 5. On iOS, all including and after iPhone 8/8 Plus/iPhone X support Bluetooth 5.

Furthermore, there’s also the complication that Smartphones claim to be Bluetooth 5 capable but might not support many of the optional features. One way to test which features are supported is to use the Nordic Semiconductor nRF Connect app. Here’s an example from the ‘Device Information’ section of the app running on a Pixel 3a XL:

Download the Bluetooth Core Specification Version 5.0 Feature Overview for explanation of these features.

Using Bluetooth Beacons to Measure Gait Speed

There’s recent research into using Bluetooth beacons to measure human gait speed. The ability to walk can be used as a core indicator of health in aging and disease. For example, it can enable early detection of cognitive diseases such as dementia or Alzheimer’s disease.

Researchers at Universitat Jaume I and University of Extremadura, Spain, have created a new dataset. In their paper BLE-GSpeed: A New BLE-Based Dataset to Estimate User Gait Speed (pdf) they describe how they collected the data.

The database is freely available and includes:

  • mac: The MAC address of the detected beacon.
  • rssi: The RSSI value obtained for the beacon.
  • device: A four-character descriptor for the smartwatch that performed the scan.
  • timestamp: The time stamp at which the scan was received.
  • user: The id of the user that was performing the experiment.
  • direction: A number (0 or 1) indicating the direction of the walk.
  • walk_id: A number that identifies each walk.
  • speed: The actual speed of the user, in $m/s$.

It database contains RSSI measurements from different wearable devices and different BLE beacons, corresponding to 382 walks performed by 13 actors. The open source code used is available on GitHub.

Flutter Beacon Plugin

Flutter is a UI software development platform created by Google used to develop cross platform applications for Android and iOS.

There’s a recent plugin flutter_beacon that scans for beacons and can also act as a transmitter. It supports Android API 18+ and iOS 8+. Features include permission management, iBeacon ranging, iBeacon monitoring and transmitting as iBeacon. This plugin is open source on Github.

Beacon Coin Cell Battery Orientation

When inserting or replacing coin cell batteries it’s necessary to know which way round to place the battery. This is especially so for some of our beacons where the battery is separate or not included.

The following image shows the orientation of the battery. The -ve ‘button’ side of the battery fits against the printed circuit board. The side that faces away from the beacon circuit board is +ve. This is common to just about all beacons. Note that this is different to commonly used batteries, such as AA batteries, where the ‘button’ end is +ve.

batterybutton

Here’s another example showing a commonly used metal battery holder:

Metal holder is +ve

If you put the battery in the other way around then you might damage the beacon or, more likely, short circuit the battery as most battery holders are metal wrap around types.

Nordic Semiconductor Wireless Q Magazine Out Now

Nordic Semiconductor, the manufacturer of the System on a Chip (SoC) used in many beacons, has published the latest online issue of Wireless Quarter Magazine. It showcases the many uses of Nordic SoCs.

The pandemic has increased the use of Nordic Semiconductor chips in health oriented devices such as the Warmie continuous infection monitoring device, the AppSens 7 Smart Heart Sensor and the Ellume COVID-19 home testing kit.

Asset tracking market will double from $17 billion in 2020 to $34 billion by 2026

Research&Markets quote in Wireless Quarter Magazine

Tracking highlights include:

  • Tracking elephants with collars
  • IOSEA’s proprietary AoA/AoD direction finding platform
  • How asset trackers are moving beyond location monitoring to sensing

The Power of the AirTag

Apple announced AirTag this week. Many commentators are asking what’s different or better than Tile and other Bluetooth trackers. Some are even asking why Apple is such an innovative company.

While the accuracy of finding is better for the relatively few Apple iPhones that have the Ultra Wideband (UWB) U1 chip, this isn’t likely to be the main advantage and will in any case be lost on most potential buyers. Similarly, Apple’s claim that it’s private and secure is unlikely to be important or seem significant in most scenarios.

Instead, the power of the AirTag will not come from the technical aspects of the physical AirTag but from being part of the Apple ecosystem. The problem with Tile and other trackers is that the range is only local, typically about 50m. When tags are lost away from the vicinity the system relies on other users to detect your tag. This previously hasn’t worked because there haven’t been enough users. The power of the AirTag will be the reach of the Apple device network that no other tag manufacturer will be able to match.

This isn’t to say AirTags will replace iBeacon and Eddystone beacons. AirTags are only for tracking and are more for finding personal things rather than say assets in a warehouse or factory. AirTags only identify and don’t sense like sensor beacons. While they can be seen by Bluetooth gateways, the privacy and security features will thwart identification and use in real time locating systems. AirTags are only a very small, proprietary and closed part of the tracking and sensing ecosystem.

Should I Use the Manufacturer iBeacon SDKs?

Some manufacturers offer SDKs to allow programmatic access to their beacons from iOS and Android.

Most SDKs tend to be poorly implemented/documented, tie your code into using that particular beacon and rarely get updated to use newer mobile platform APIs. They also tend to be thin abstractions over the Android and iOS Bluetooth APIs.

If you rely on a beacon manufacturer that doesn’t update their SDK, it’s eventually the case that the underlying Android and/or iOS API changes such that your solution becomes non-optimal and, in the worse case, breaks.

Instead, when you can, we recommend you use the iOS and Android Bluetooth APIs directly to make your code independent of the beacon type. In this way you don’t end up depending on intermediate code and this has the benefit that you can more easily change beacon providers.

Alternatively, use an independent 3rd party library such as Radius Network’s iOS SDK or one of the many Android Bluetooth libraries.

However, there are some cases where you must use the manufacturer library. This is usually in cases where there the app needs to connect with the beacon (as opposed to only view advertising scans) to perform beacon specific things. The Sensoro SDK is an example where their private protocol (to prevent squatters) and sensor information can only be obtained via their SDK.

New Meeblue Platform

Meeblue has a new platform for users of the W1 Bluetooth WiFi gateway. It’s designed to work with Meeblue sensor beacons to easily capture and view sensor data.

The platform is free to use and is publicly available. However, devices need be registered with the platform in advance. Requests can be made no more than once per second and you must use https.

Steps to set up the W1 gateway with the Meeblue platform

The API allows you to GET a gateway’s status, POST data from a gateway, GET a sensor device status, POST a sensor’s status, POST and GET sensor storage data.

View All Gateways