Welcome!

Agile Computing Authors: Jonathan Fries, Elizabeth White, Liz McMillan, Craig Lowell, Pat Romanski

Related Topics: @ThingsExpo, Java IoT, Mobile IoT, Linux Containers, Agile Computing, @BigDataExpo

@ThingsExpo: Article

How iBeacons Work for Indoor Location Based Services

Technical Guide and Recommendations

My colleague Peter Rogers is long suffering and obviously in need of sunshine.  He sacrificed his weekend to answer questions I presented him last week on the subject of iBeacons and how they work. I want to thank Peter for the following:

There is a lot of excitement about Apple's new iBeacon technology but most people still don't realise what it is or how to use it.

iBeacon is actually used in two contexts:

  1. It is primarily a Bluetooth Low Energy (BLE) Profile that enables a device to broadcast its relative position
  2. It is any hardware device that uses the iBeacon BLE Profile

The following paragraph illustrates this terminology effectively. A third-party beacon can use the iBeacon BLE profile to advertise its relative location and therefore be classed itself as an iBeacon. An iPhone can also use the iBeacon BLE profile itself to act as a Virtual iBeacon. In this case the power levels are generally higher and so you may get a more accurate result. There is nothing to stop an Android 4.3 device being able to use the iBeacon BLE profile to advertise itself as a Virtual iBeacon too. In fact any device that supports BLE can communicate using the iBeacon BLE Profile. The core difference that iOS 7 offers is that is normalises the results from the iBeacon (in order to avoid fluctuations) and it offers the new iOS 7 CLBeacon class within the CoreLocation framework.

Here are some interesting fun facts:

  • Apple does not produce iBeacon hardware
  • iBeacon is not the only BLE profile for beacons, there are others that predated it (S-beacon, Gimbal, GeLo)
  • Most beacons allow over the air (OTA) software updates which can be used to load the iBeacon profile
  • The beacons from different vendors often behave quite differently
  • iBeacons CANNOT reliably be used to pinpoint a precise indoor position - more on that later

The iBeacon BLE Profile does not have any payload. Instead it just sends three pieces of information:

  1. UUID - beacon manufacturer's unique identifier
  2. Major - a value that can identify a group of beacons (can be used for general region)
  3. Minor - a value that can identify an individual  beacon with a group (can be used for a specific location within that region)

The CLBeacon class offers three different properties for determining the distance from the beacon:

  1. Accuracy - the accuracy of the proximity value allegedly in meters - in practice this doesn't map directly to meters in most cases
  2. Proximity - the vague definition of proximity - immediate, near, far and unknown
  3. RSSI - the received signal strength of the beacon in decibels

The CLBeaconRegion class enables notifications when the iPhone detects that the range of an iBeacon has changed and this can be used to launch your App even if it was not running. The class also enables the construction of a Virtual Beacon whereby the iPhone itself uses the iBeacon BLE Profile to behave like an iBeacon.

This means that we can detect proximity to an iBeacon quite easily by using the Proximity property. In practice this means using the CLBeaconRegion class to set up notifications when we get a proximity of "immediate" to certain strategically positions iBeacons. The accuracy of the beacons can be increased by more power and changing the frequency of updates (the default varies per vendor). Increasing these two parameters obviously decreases the battery life. The simplest option is to look for cases where ‘the device is close to a beacon and the accuracy confidence is high' which translates into immediate zone. If you were however to put your hand in front of the device and the iBeacon, this can provide enough interference to push it back to the ‘near zone' although neither the device or beacon has actually moved.

Immediate Zone (0-20 cm) (0-8")
When a device is held up close to a beacon
Accuracy confidence is high

Near Zone (20 cm - 2 m) (8"- 6.5')
Within a couple of meters to the beacon
Accuracy is fairly certain

Far Zone (2 - 70 m) (6.5 - 230')
More than a few meters away
Accuracy is low or the signal strength is weak
[https://community.estimote.com/hc/en-us/articles/201029223-RSSI-Range-Zones-and-Distance-Accuracy]

A simple strategy is to have a Cloud hosted data set that determines the positions of the beacons for an App to dynamically load and refer to. If you try and hardcode the iBeacon positions or have a non-updateable configuration file then you would have to go through the Apple App Store review process every time you want to physically add a new iBeacon. You could also host other information such as broadcast messages, regions and what the major and minor versions actually represent. It would certainly be interesting to have Location Data Stores that can describe multiple indoor positioning systems and that you can look up based on UUID, major and minor. That could be perceived as a security risk in certain situations though.

There are definite differences between the beacon vendors, and things you should be looking into are as follows:

  • Secure firmware update over the air
  • Cloud management platform
  • iBeacon profile support
  • Configurable properties: radio output power; RSSI; iBeacon advertising interval; UUID, major; and minor
  • Developer SDK with documentation

If you buy beacons without the iBeacon profile pre-installed and they are not firmware updateable over the air then you are limited to older profiles. Likewise if the UUID is not configurable and not communicated in the documentation then you are locked into the vendor SDK. If the iBeacon advertising interval is very slow by default and not configurable then your beacons will be less accurate. Finally not being able to configure the power and RSSI means the beacons cannot be configured to be more accurate. http://localz.co/blog/ibeacon-ble-hardware-commercial-comparison/

There are also differences in the accuracy of iBeacons and associated SDKs as followed:

  • Drop-out rate
  • Consistency of beacon results amongst the same vendor
  • Correct implementation of measured power (he value of measured RSSI at a distance of one meter)
  • Change in accuracy due to rotation
  • Beacon interference with each other (not something that should have an effect)

http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/

The challenge comes when you want to try and use triangulation with the RSSI or accuracy properties in order to find out a precise location rather than ‘immediate', ‘near' or ‘far'. Using the accuracy property is best summed up by the following statement in the iOS 7 API documentation, "Accuracy indicates the one sigma horizontal accuracy in meters. Use this property to differentiate between beacons with the same proximity value. Do not use it to identify a precise location for the beacon. Accuracy values may fluctuate due to RF interference. A negative value in this property signifies that the actual accuracy could not be determined."

The distance estimate provided by iOS is based on the ratio of the iBeacon signal strength (RSSI) over the calibrated transmitter power (txPower). The txPower is the known measured signal strength in RSSI at 1 meter away. iOS also normalises the values to negate the fluctuations.

"At first glance it would appear that accuracy does seem to resemble distance. However at 0.5 meters, the accuracy underestimated distance, and by 1.5 meters, accuracy was an overestimation of distance. I decided to extend the distance out to 8 meters to see if the accuracy continued increasing with distance, however over the course of 80 seconds the accuracy of the beacon only reported an accuracy of 3.87m - some 4.13 meters shy of 8 meters. This was less than convincing that accuracy was representing distance. In certain ranges with this beacon there does appear to be some correlation between accuracy and distance. I turned the power up to 100% (+4bBm) and measured the accuracy at the same varying distances. This time I was seeing a very close relationship between accuracy and distance between 1 and 5 meters, though it did start to slip at greater distances (however at 15 meters there were desks and computers obscuring the path, so perhaps this is expected)." http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/

One equation that sums up the way to calculate distance is as follows:
P(d)[dBm] = P(do)[dBm] - 10n log (d / d0) - Z

  • d             The distance we want to know
  • d0           A measure of distance for a known power output
  • n             The way the signal power degrades over distance
  • Z              The environmental effect (which is quite large).

http://www.codepilots.com/2014/03/ibeacons-accuracy/

To provide the algorithm for Android or to create your own custom version for iOS then you would need to do something like the following:

1.     Normalise the RSSI and txPower values

2.     Calibrate each IBeacon with the txPower value to allow accurate distance estimates.

3.     Measured a bunch of RSSI measurements at known distances, then do a best fit curve to match the data points

4.     Convert the best fit curve into an algorithm

protected static double calculateAccuracy(int txPower, double rssi) {
if (rssi == 0) {
return -1.0; // if we cannot determine accuracy, return -1.
}

double ratio = rssi*1.0/txPower;
if (ratio < 1.0) {
return Math.pow(ratio,10);
}
else {
double accuracy =  (0.89976)*Math.pow(ratio,7.7095) + 0.111;
return accuracy;
}
}
http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing/20434019#20434019

There are mainly five issues with the approach of triangulation for more accurate positioning:

1.     In non-controlled environments, where you can find metals, and other objects that affect the signal, the received signal strength of the beacons changes so often that it seems impossible to get an error range below 5 meters.

2.     Other devices using 2.4 GHz frequency might be interfering with the Beacons' signal.

3.     Depending on the way that the user is handling the receiver device, the readings can change a lot as well. If the user puts his/her hand over the bluetooth antenna, then the algorithm will have low signals as input, and thus the beacons will supposed to be very far from the device.

4.     The directionality of the beacons and the receiver affects the readings.

5.     The beacons and their SDKs all have a different effect on the accuracy of the results

http://stackoverflow.com/questions/20332856/triangulate-example-for-ibeacons

"Having completed these experiments, I've been able to conclude that achieving accurate distance measurements with a single beacon is potentially possible, provided you have the right beacon and the right brand. Out of eight beacons, I only found one that was consistently achieving accurate distances. Given that there is so much inconsistency between the beacons and there is no guarantee you will even receive a beacon in an order that does provide accurate results, it seems the only way to achieve accuracy is by using many beacons and averaging the results."
http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/

Recommendations

1.     Ceiling mounting of beacons reduces variance and the user blocking the path

2.     Signal transmission and reception are dependent on the orientation of both the transmitter and receiver

3.     Radio absorption by the user is significant in determining distance

4.     Other radio interference does not seem significant

5.     Clustering of beacons does not seem to have an impact

6.     The measured power does not decrease uniformly as we move away from the receiver, this is the biggest limiting factor in using this technology for accurate positioning

7.     Increasing the power to the beacons using the vendor SDK increases the relationship between accuracy and distance (on correctly configured beacons)

8.     One mooted solution is to try to set up a beacon every X meters (X being the maximum error tolerated in the system) so we can track on this beacons grid the position of a given device by calculating which beacon on the grid is the closest to the device and assuming that the device is on the same position

9.     Choose the beacon vendor carefully based on online reports because functionality does vary a lot

10. Use lots of beacons and take an average due to drop out rates and inconsistency amongst beacons in the same place

I leave you some other reading material and the general advice that using relative proximity is probably a far lot simpler than trying to implement precise location. That means designing your solution architecture and physical deployment appropriately. I can see the ability to track a user through a shopping centre of airport, but the ability to pinpoint out a product in a retail store will be challenging unless beacons with very high power levels are used and ceiling mounted.

Additional Resources:

************************************************************************

Kevin Benedict

Writer, Speaker, Editor

Senior Analyst, Digital Transformation, EBA, Center for the Future of Work Cognizant

View my profile on LinkedIn

Learn about mobile strategies at MobileEnterpriseStrategies.com

Follow me on Twitter @krbenedict

Browse the Mobile Solution Directory

Join the Linkedin Group Strategic Enterprise Mobility

Join the Google+ Community Mobile Enterprise Strategies

Recommended Strategy Book Code Halos

Recommended iPad App Code Halos for iPads

 

***Full Disclosure: These are my personal opinions. No company is silly enough to claim them. I am a mobility and digital transformation analyst, consultant and writer. I work with and have worked with many of the companies mentioned in my articles.

More Stories By Kevin Benedict

Kevin Benedict is an opinionated Senior Analyst at Cognizant's Center for the Future of Work, SAP Mentor Alumnus, speaker, writer, and mobile and digital strategies expert. He is a popular keynote speaker, and in the past three years he has shared his insights into mobile and digital strategies with companies in 17 different countries. He has over 30 years of experience working with enterprise applications, and he is a veteran mobile industry executive. He wrote the Forward to SAP Press' bestselling book on enterprise mobility titled Mobilizing Your Enterprise with SAP, and he has written over 3,000 articles.

@ThingsExpo Stories
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at 20th Cloud Expo, Ed Featherston, director/senior enterprise architect at Collaborative Consulting, will discuss the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
In addition to all the benefits, IoT is also bringing new kind of customer experience challenges - cars that unlock themselves, thermostats turning houses into saunas and baby video monitors broadcasting over the internet. This list can only increase because while IoT services should be intuitive and simple to use, the delivery ecosystem is a myriad of potential problems as IoT explodes complexity. So finding a performance issue is like finding the proverbial needle in the haystack.
According to Forrester Research, every business will become either a digital predator or digital prey by 2020. To avoid demise, organizations must rapidly create new sources of value in their end-to-end customer experiences. True digital predators also must break down information and process silos and extend digital transformation initiatives to empower employees with the digital resources needed to win, serve, and retain customers.
"Once customers get a year into their IoT deployments, they start to realize that they may have been shortsighted in the ways they built out their deployment and the key thing I see a lot of people looking at is - how can I take equipment data, pull it back in an IoT solution and show it in a dashboard," stated Dave McCarthy, Director of Products at Bsquare Corporation, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
Fact is, enterprises have significant legacy voice infrastructure that’s costly to replace with pure IP solutions. How can we bring this analog infrastructure into our shiny new cloud applications? There are proven methods to bind both legacy voice applications and traditional PSTN audio into cloud-based applications and services at a carrier scale. Some of the most successful implementations leverage WebRTC, WebSockets, SIP and other open source technologies. In his session at @ThingsExpo, Da...
@GonzalezCarmen has been ranked the Number One Influencer and @ThingsExpo has been named the Number One Brand in the “M2M 2016: Top 100 Influencers and Brands” by Onalytica. Onalytica analyzed tweets over the last 6 months mentioning the keywords M2M OR “Machine to Machine.” They then identified the top 100 most influential brands and individuals leading the discussion on Twitter.
Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more business becomes digital the more stakeholders are interested in this data including how it relates to business. Some of these people have never used a monitoring tool before. They have a question on their mind like “How is my application doing” but no id...
As data explodes in quantity, importance and from new sources, the need for managing and protecting data residing across physical, virtual, and cloud environments grow with it. Managing data includes protecting it, indexing and classifying it for true, long-term management, compliance and E-Discovery. Commvault can ensure this with a single pane of glass solution – whether in a private cloud, a Service Provider delivered public cloud or a hybrid cloud environment – across the heterogeneous enter...
"IoT is going to be a huge industry with a lot of value for end users, for industries, for consumers, for manufacturers. How can we use cloud to effectively manage IoT applications," stated Ian Khan, Innovation & Marketing Manager at Solgeniakhela, in this SYS-CON.tv interview at @ThingsExpo, held November 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA.
"We're a cybersecurity firm that specializes in engineering security solutions both at the software and hardware level. Security cannot be an after-the-fact afterthought, which is what it's become," stated Richard Blech, Chief Executive Officer at Secure Channels, in this SYS-CON.tv interview at @ThingsExpo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
Information technology is an industry that has always experienced change, and the dramatic change sweeping across the industry today could not be truthfully described as the first time we've seen such widespread change impacting customer investments. However, the rate of the change, and the potential outcomes from today's digital transformation has the distinct potential to separate the industry into two camps: Organizations that see the change coming, embrace it, and successful leverage it; and...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, discussed the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
We are always online. We access our data, our finances, work, and various services on the Internet. But we live in a congested world of information in which the roads were built two decades ago. The quest for better, faster Internet routing has been around for a decade, but nobody solved this problem. We’ve seen band-aid approaches like CDNs that attack a niche's slice of static content part of the Internet, but that’s it. It does not address the dynamic services-based Internet of today. It does...
Internet of @ThingsExpo, taking place June 6-8, 2017 at the Javits Center in New York City, New York, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. @ThingsExpo New York Call for Papers is now open.
What happens when the different parts of a vehicle become smarter than the vehicle itself? As we move toward the era of smart everything, hundreds of entities in a vehicle that communicate with each other, the vehicle and external systems create a need for identity orchestration so that all entities work as a conglomerate. Much like an orchestra without a conductor, without the ability to secure, control, and connect the link between a vehicle’s head unit, devices, and systems and to manage the ...
20th Cloud Expo, taking place June 6-8, 2017, at the Javits Center in New York City, NY, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy.
Everyone knows that truly innovative companies learn as they go along, pushing boundaries in response to market changes and demands. What's more of a mystery is how to balance innovation on a fresh platform built from scratch with the legacy tech stack, product suite and customers that continue to serve as the business' foundation. In his General Session at 19th Cloud Expo, Michael Chambliss, Head of Engineering at ReadyTalk, discussed why and how ReadyTalk diverted from healthy revenue and mor...
The 20th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held June 6-8, 2017, at the Javits Center in New York City, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Containers, Microservices and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportunity. Submit your speaking proposal ...
You have great SaaS business app ideas. You want to turn your idea quickly into a functional and engaging proof of concept. You need to be able to modify it to meet customers' needs, and you need to deliver a complete and secure SaaS application. How could you achieve all the above and yet avoid unforeseen IT requirements that add unnecessary cost and complexity? You also want your app to be responsive in any device at any time. In his session at 19th Cloud Expo, Mark Allen, General Manager of...