Using Beacons with Smartphone Apps

Bluetooth beacons are a powerful tool for creating personalised experiences through mobile apps. They work by transmitting signals that can be detected by all smartphones. When a user comes within range, the app detects the beacon’s signal and identifies the user’s proximity to a specific location.

This enables the delivery of contextually relevant content, such as detailed information or reviews when a customer approaches a product in a retail store. It also allows for personalised recommendations based on a user’s location and past behaviour, offering tailored suggestions that match their interests.

Interactive experiences are another feature made possible by Bluetooth beacons. They can trigger app-specific actions based on user location, such as providing wait times and virtual queuing options in an amusement park. Additionally, they assist in wayfinding and navigation within large venues by providing directions and highlighting points of interest.

Utilising Bluetooth beacons for personalised experiences benefits businesses in numerous ways. They enable enhanced engagement with customers by delivering timely content, fostering a stronger connection and loyalty. They improve customer satisfaction by providing tailored information and recommendations, making customers feel more valued. Sales and conversion rates are also boosted by offering targeted promotions when customers are near specific products.

Bluetooth beacons gather valuable data that provides insights into customer preferences and behaviour, helping businesses optimise operations and make data-driven decisions to enhance their offerings and marketing strategies.

Android and iOS use included operating system APIs to detect Bluetooth beacons. When an Android application detects a beacon, it gets a callback to a function including the signal level (RSSI), where developers can specify the app’s operation. On iOS the framework includes classes to represent beacons and beacon regions, enabling monitoring and ranging, i.e., determining the approximate distance to a beacon. When an app registers to monitor a specific beacon region, iOS notifies the app if the device enters or exits that region. This happens even if the app isn’t running at the time. Furthermore, if the app is currently in use, it can continually receive updates about nearby beacons and their relative distance.

In both Android and iOS, the apps don’t connect with the beacons. Instead, they detect the Bluetooth signals that the beacons broadcast. Also, both systems require the user’s permission for the app to access Bluetooth and location services.

Which Beacons Transmit a MAC Address?

A MAC (Media Access Control) address is a hardware identification number that uniquely identifies each device. In the context of Bluetooth, a MAC address is used to identify a specific Bluetooth device, such as a smartphone, headset or a Bluetooth beacon. All beacons transmit a Bluetooth MAC Address which is a 48-bit address usually represented in hexadecimal format like this: 0123456789AB.

All devices such as smartphones can see the incoming MAC addresses that are sent as part of the device discovery stage rather than the main Bluetooth LE advertising payload. iOS is a bit strange and non-standard because it hides detected Bluetooth MAC address from apps, and hence from users, when detecting beacons and other Bluetooth devices.

No such restriction happens on Android or any other device. The rationale is probably that Apple wants you to use their ids, the iBeacon UUID, major and minor or the Peripheral Id rather than the MAC address. Apple also probably think they are protecting privacy in some way. A few beacons and other devices such as sensors and fitness trackers additionally put the MAC address into the advertising payload which circumvents Apple’s restrictions and allows reading of the MAC address by apps.

Can I Use My Phone as Bluetooth Beacon?

A question that often arises is, “Can I use my phone as a Bluetooth beacon?” The answer is ‘yes’.

Before we get into the details, it’s essential to understand what a Bluetooth beacon is. In simple terms, a Bluetooth beacon is a small wireless device that transmits a periodic signal to other Bluetooth-enabled devices within its range. This technology is often used for indoor positioning, sensing and other location-based services.

Technically, yes, a smartphone can function as a Bluetooth beacon. Both Android and iOS platforms offer apps to turn your phone into a beacon transmitter. However, there are some caveats.

Using your phone as a Bluetooth beacon can be a significant drain on your battery. Beacons are designed to be low-energy devices that can run for years on a single battery. Your phone, on the other hand, has many other functions that consume power, so using it as a beacon will lead to the need for frequent charging.

The range of a dedicated Bluetooth beacon can be up to 100 metres, depending on the model and settings. A smartphone’s Bluetooth range is generally much shorter, limiting its effectiveness as a beacon.

While there are apps such as Locate Beacon, Beacon Simulator (for iOS), Beacon Simulator, nRFConnect (for Android) that can turn your phone into a beacon, these are often not as reliable or feature-rich as dedicated beacon hardware. You won’t be able to change all the settings such as power, advertising period and advertising type as you would with a dedicated hardware beacon. Additionally, running such an app in the background may interfere with other phone functions and some phones eventually close long running services.

Despite these limitations, there are scenarios where using your phone as a Bluetooth beacon could be useful. If you’re a developer or a business looking to experiment with beacon technology, using a phone can be a cost-effective way to test your ideas before investing in dedicated devices.

While it’s possible to use your phone as a Bluetooth beacon, it’s generally not the most efficient or reliable method for most applications. However, for personal use or small-scale use, it can serve as a convenient alternative. If you’re considering implementing beacon technology on a larger scale, investing in inexpensive dedicated hardware is usually the better option.

View Bluetooth beacons

Processing on Bluetooth Device or Smartphone?

There’s often a dilemma when creating Bluetooth systems whether to place the processing on the smartphone or on the Bluetooth device.

The efficient and accurate prediction of an individual’s heart rate using wearable devices is crucial for various personal care applications. A new study Energy-efficient Wearable-to-Mobile Offload of Machine Learning Inference for Photoplethysmogram-based Heart-Rate Estimation (pdf) from the Universita di Bologna, Italy, looks into the trade-offs between carrying out heart rate tracking on the device itself or delegating the work to a mobile device.

The research introduces CHRIS, an inference system that uses the interconnectedness between a smartwatch and a smartphone. This system assesses the balance between energy consumption and heart rate tracking error. Depending on the connection status, a user-specified error, energy constraints and an estimate of the input difficulty, CHRIS employs two heart rate prediction algorithms. These are executed on either the smartwatch or the phone.

CHRIS showed the potential to achieve up to 2.03 times energy reduction on the smartwatch by deferring processing off the smartwatch, without a reduction on the tracking accuracy.

The Advantage of iBeacon over Eddystone and AltBeacon

iBeacon, Eddystone and AltBeacon are the three main beacon technologies. All of them use the standard Bluetooth Low Energy (LE) advertising format. Bluetooth LE is designed for short bursts of radio that uses little power and is therefore suitable for battery operation. Each of the advertising variants uses a unique advertising packet format that defines what kind of data the beacon transmits.

iBeacon, launched by Apple in 2013, was the first to adopt this technology and created a new wave in proximity services. It uses a simple advertising format, which consists of a UUID (universally unique identifier), Major, and Minor identifiers.

Eddystone, introduced by Google in 2015, offers a more complex advertising packet format with four different frame types: Eddystone-UID (similar to iBeacon’s UUID), Eddystone-URL (broadcasting web address), Eddystone-TLM (telemetry information about the beacon itself), and Eddystone-EID (an encrypted version of Eddystone-UID for secure applications).

Altbeacon, an open-source specification introduced by Radius Networks, provides a simpler format similar to iBeacon.

The functionality of beacon technologies are different on iOS and Android due to differences in the operating systems themselves. Apple’s strict app guidelines and strong emphasis on user privacy limit the ability of apps to perform tasks in the background. For instance, iOS only allows apps to scan for iBeacon formatted advertisements in the background using the CoreLocation library, not CoreLocation. Eddystone or AltBeacon can only be read in background using CoreLocation. Android offers more flexibility for background tasks and can work with iBeacon, Eddystone and Altbeacon.

Although Eddystone and Altbeacon have their merits, iBeacon is the advertising of choice for most scenarios involving smartphone apps due to the integration with iOS.

How to See Bluetooth LE Advertising on Android and iOS

To see Bluetooth LE advertising on smartphones, you can use a Bluetooth scanner app. These apps are available from the App Store and Google Play Store and can be downloaded and installed on your smartphone.

To use a Bluetooth scanner app, follow these steps:

  1. Open the App Store Google Play Store on your device and search for “Bluetooth scanner” or “Bluetooth advertising”.
  2. Select a Bluetooth scanner app that you want to use and install it on your device. nRFConnect is a well-known scanner, provided by Nordic Semiconductor, the manufacturer of the Bluetooth System-on-chip in most beacons.
  3. Once the app is installed, open it and enable Bluetooth on your device, if it is not already enabled.
  4. The app will scan for nearby Bluetooth devices that are broadcasting advertising packets. It will display a list of the devices it finds, along with their names and other information.
  5. You can tap on a device in the list to see more details about it, such as its Bluetooth address (only on Android), signal strength, and any advertising data that it is broadcasting.

In summary, using a Bluetooth scanner app is a simple and effective way to see Bluetooth advertising on an smartphones. These apps allow you to see the devices that are broadcasting advertising packets, as well as the data that they are transmitting.

Beacons and Driving

We are seeing more and more customers using beacons in driving-related scenarios. Most are using beacons to trigger when the user gets into or out of a vehicle. For example, driversnote tracks your trips ready for your mileage claim. However, apps such as this are for personal use and there’s a larger market and opportunity in company/fleet management. For example, mileagecount has an automated mileage capture system based on beacons.

The key thing here is that beacons are being used to trigger something, mileage capture in this case. It’s automated, unobtrusive and doesn’t necessarily produce app notifications. There’s a very large number of similar usecases in other industries waiting to be explored.

Troubleshooting Beacon Problems

Some people come to us, having set up their beacons, saying “It doesn’t work”. Most scenarios involve a beacon, an app and a phone. Solving most problems involves breaking the problem down by swapping out each of the beacon, app and phone until it works.

If you have more than one beacon, you can swap out the beacon. Having said this, it’s rare for beacons to fail and if the problem is with the beacon, it’s more likely to be the beacon settings that are incorrect.

While you can’t swap out the manufacturer configuration app, you can use another app such as Nordic’s nRF Connect (on iOS and Android) to scan for a beacon, see if it’s advertising and if so, what type of advertising it is sending.

It’s common for individual phones to have have problems. First, make sure you have Location and Bluetooth on. Anyone working with beacons will usually need to have both Android and iOS devices to diagnose problems. Run the app (and nRF Connect) on multiple phones of different platform type (iOS/Android) to help narrow down problems.

If you still can’t get it working, send us a support ticket. Please don’t just say “It doesn’t work” and instead describe what you have done and at what stage it doesn’t work with any error messages.

Also read

Why Doesn’t the Manufacturer’s Configuration App Connect?

Testing if a Beacon is Working

Proof of Concept for Beacon Projects

It’s easy to buy into an idea and commit significant resources only to find very late on that a project is overly difficult or impossible to implement. We see too many companies only come to us after they have gone a long way down a particular road only to discover they made a big mistake early on. It might be, for example, they have heavily committed to the wrong beacon, wrong platform or have assumed something on one of the mobile platforms. They didn’t do their research. Often we can help them get on the right track but sometimes not.

We always recommend organisations research upfront. Test risky areas. Create a low cost proof of concept exercising risky areas. A proof of concept is the implementation of a small subset of the whole system to prove implementing the whole thing is possible. Good candidates for functionality for proof of concepts are specific usecases, scenarios or user stories. Choose specific usecases to exercise what you think might be the most difficult or unknown parts of the system.

Proof of concepts provide a feel for the development effort that will be required to develop the complete system thus giving an indication of the project’s cost and the financial viability of the project.

It’s also possible to create proof of concepts that include business goals. Think ‘proof of value’ rather than ‘proof of concept’. Proving a project has value to stakeholders can help unlock realistic funding for development of the complete project.

Read about consultancy

Read about feasibility studies

Is it Possible to Continuously Scan for Bluetooth Devices on iOS and Android?

We sometimes get asked if it’s possible to use a smartphone as a gateway to scan for Bluetooth devices. The thinking is usually that workers or users already have devices so why not make use of them?

While it is possible, there are many reasons why you might not want to do this:

  • On iOS, Apple hide Bluetooth MAC addresses and for some APIs hide the iBeacon ids making unique identification more difficult.
  • You will find it very difficult to get a continuously scanning app through Apple app store review. You will need strong justifications.
  • Scanning continuously uses lots of battery power, even when advertising with periodic ‘off’ and ‘on’ periods.
  • Capabilities of devices vary meaning you will almost certainly get some end user devices where your implementation won’t work. For example, some manufacturers stop long running processes.
  • Some users will play with their phones and end up purposely or inadvertently disabling your application.

The best scenarios are those where you can dictate the phone type, it can be mains (PSU) powered and the phone isn’t owned by a user (i.e. it’s just used as a gateway). It’s almost always better to use a dedicated gateway.