What is iOS Bluetooth Advertising?

When scanning for Bluetooth devices from an app or gateway you will usually pick up lots of iOS devices.

Every Bluetooth LE device, including iOS, has a unique MAC address. MAC address randomization is used on iOS so it’s not possible to track a particular device over time. However, there have been studies that have shown other Bluetooth information can be used to fingerprint devices.

The Bluetooth advertising uses a proprietary protocol and has no use for anyone other than Apple. The advertising is used to provide for what are called continuity messages that allow handoff of tasks, such as writing email, universal clipboard, making calls from a another Apple device, instant hotspot, auto unlock from Apple watch and photo transfer between Apple devices.

An iPhone only advertises if it is associated with an iCloud account to which at least two devices are registered. Advertising can be manually turned off in the Settings Menu. Disabling Bluetooth from the Control Center does not stop the transmission of continuity messages.

It’s surprising iOS devices advertise so often, even when continuity messages aren’t being used, because it uses a lot of battery power. This must be the cost of being able to provide the app handoff messages without the user having to initiate a manual action at both ends. Maybe Apple will be able to overlay the new ‘Find My’ messages in same or similar Bluetooth advertising so as to make best use of the battery.

iBeacons for Learning

There’s new research Exploring Bluetooth Beacon Use Cases in Teaching and Learning: Increasing the Sustainability of Physical Learning Spaces that reviews selected use cases of Bluetooth beacons in educational situations.

The paper covers attendance monitoring, smart campus operation, dissemination of educational content to students and the use of augmented reality (AR) combined with beacons.

App iClassPolyU used for research

Read about Beacons in Education

How Power and Advertising Interval Affect Battery Use

Nordic Semiconductor, the manufacturer of the System on a Chip (SoC) in most beacons has a useful online calculator that helps work out the battery current used when advertising or when connected.

You need to set the SoC chip type (see the specification for the beacon you are using), voltage (3v as it’s usually a coin cell), DCDC (usually off), clock (usually external) and tx payload (set to 31 bytes). You can then vary the role (advertising or connected), power and advertising interval to see the affect on the battery current.

Dividing the battery capacity by the current will gives the approximate battery life. The resultant battery life calculation will be a very rough approximation and will be less if the manufacturer has added extra circuitry such as sensors. The online calculator is best used to get an appreciation of how changing parameters or the SoC type affects battery life rather than being a definitive value. For more accurate battery use it’s necessary to measure the actual battery current.

Completely New nRF Connect for iOS

As we have previously mentioned, nRF Connect is the the best app for detecting if a Bluetooth LE device such as a beacon is working. The Android version has always had more features than the iOS version but that is changing. nRF Connect for iOS has been completely re-written and now has a very pretty UI.

We still recommend using the Android rather than the iOS version because iOS apps can’t see Bluetooth MAC addresses due to some peculiar decisions made by people at Apple. Scanning also can’t see an iBeacon UUID, major and minor in the advertising. It’s more difficult to uniquely identify Bluetooth devices in apps such as nRF Connect on iOS than it is on Android.

The Affect of Power Levels on Wireless Indoor Localisation Accuracy

There’s new research by Umair Mujtaba Qureshi, Zuneera Umair and Gerhard Petrus Hancke of the Department of Computer Science, City University of Hong Kong on Evaluating the Implications of Varying Bluetooth Low Energy (BLE) Transmission Power Levels on Wireless Indoor Localization Accuracy and Precision. The paper takes a deep look into the relationship between transmitted power and signal stability. It also looks at ways of filtering received signal strength (RSSI) data to improve the location accuracy.

The main insight is that along with the expected difference in the RSSI attenuation there is a considerable difference in the BLE signal variation at all transmission power levels with respect to distance. The variation increases and the localisation accuracy decreases from high to low transmission power levels:

Another observation is that outliers in the data tend to affect the localisation accuracy. Applying filters to the data, they achieved a location accuracy of 2.2 meters with a precision of 95%.

One comment we have is that the researchers didn’t try different beacons. As we mentioned in 2016, the RSSI stability also varies across different beacon models.

Need more help? Consider a Feasibility Study.

EgiGeoZone Geofence for Android

EgiGeoZone Geofence is a useful app for Android with over 10,000 users that allows you set up triggering based on location. There’s also a Bluetooth version that allows triggering in the vincinity of iBeacons.

The app is also open source on GitHub. Note that the app doesn’t yet work with the Android 8.0 background changes. The author is hoping someone else will fork the code and keep the app alive.

Bluetooth Mesh for Industrial IoT (IIoT)

There’s an informative video presentation on the Bluetooth SIG web site on Simplifying Multi-Vendor Mesh and Sensor Networks. It provides an introduction to Bluetooth mesh and explains the ways in which it can provide for Industrial IoT (IIoT).

To add to this, Bluetooth Mesh is suitable for use on the factory floor where the environment can be electrically noisy. Standard Bluetooth Mesh uses advertising on several channels rather than (GATT) connections so as to provide for more reliable communication in environments with wireless interference.

Read about Beacons in Industry and the 4th Industrial Revolution (4IR)
Read about Beacons and the Bluetooth Mesh

Bluetooth Positioning Using Separate Bluetooth Channels

While we wait for commercial Bluetooth 5.1 direction finding solutions to become available, people are trying to refine traditional locating methods to gain more accuracy. Baichuan Huang, Jingbin Liu, Wei Sun and Fan Yang have a research paper on A Robust Indoor Positioning Method based on Bluetooth Low Energy with Separate Channel Information.

They have observed that the stability of the received Bluetooth signal strength RSSI depends on which Channel 37, 38 or 39 the signal is being received on. This is because the channels slightly overlap the WiFi channels and there can be other Bluetooth devices also using the same channels.

The method analyses the channels over time and chooses those it thinks has least interference and most stable RSSI. This reduces the positioning error by 0.2m, to 2.2m, at a distance of 3.6m.

Read about Determining Location Using Bluetooth Beacons

iOS 13 Location Permission Complexities

Following on from our post on Using Beacons with iOS 13 and Estimote’s post on Get ready for iOS 13: Bluetooth and location changes explained, TechCrunch has an article on how Developers accuse Apple of anti-competitive behavior with its privacy changes in iOS 13.

The gist of the problem is that the ‘Always’ option for allowing the location-tracking permission has become ‘Allow Once’ with the ‘Always’ option being
buried in iOS Settings. People who use location (and beacon) oriented apps, are likely to select the ‘Allow Once’ option and the app will only work correctly once. This will create extra support, customer confusion and general loss of customers. The anti-competitive part comes through Apple’s own in-built apps (currently) not having to live with these restrictions.

To mitigate against the problem we recommend app authors update their apps and online instructions to explain to users to at least initially select ‘Allow While Using App’ and possibly provide more detailed instructions how to set ‘Always’ in Settings.