Differentiating between range and precision is one of the challenges of understanding how to build effective use cases with iBeacon, Estimote beacons and other other types of Bluetooth LE devices.
I had an interesting back-and-forth with someone on Twitter last night asking about the range of beacons. The conversation reminded me of my own confusion related to beacons and Bluetooth LE and the mental leap I had to make in understanding range, signal strength, accuracy and precision.
My understanding was further confused by the fact that while Apple iOS doesn’t let you “view” the actual advertising packet data in a beacon that isn’t your own, Android DOES.
This fact is FURTHER confused by the fact that there can be (although usually there isn’t) a difference in whether a beacon transmits in public or requires pairing. I covered a lot of this in a previous post (where I recommend you also read the comments), but here’s how I understand things today:
A beacon sends the following data:
- ADV-PDU – or what we call UUID
- TX Power Level
- Local Name
The UUID can be static or, if the beacon requires “pairing” it can be a randomly changing number. Almost all of the current beacons that you can get have a static UUID and are “public”. For Estimote, the UUID is B9407F30-F5F8-466E-AFF9-25556B57FE6D If you don’t know this number, there’s no way in iOS7 to “see” it because Apple closes off the packet for beacons you haven’t specified (Estimote does the specification for you in its API, but you might want to create a custom app that goes ‘straight’ to the beacon).
If a beacon requires pairing, it’s not that its data can’t be “seen” by an Android device, it’s that it would be hard to “fix” the beacon in a database because you’d have no unique identifier to build a profile around. Again, almost ALL beacons are currently using static IDs.
Estimote indicates that when they launch their cloud services you’ll be able to choose between static/random and set other factors in the beacon itself. Right now, however, Estimote does NOT have its cloud-based services launched and has not indicated a timing for when they will. (As a side note, they’re hinting that their cloud services will also include CMS and other features).
Range and Precision
There’s a difference between range and precision. I’m not sure why I found this confusing but it’s a fairly profound difference between beacons and, say, GPS.
Because we’re so used to the idea of GPS location-detection, I think it’s hard to break our mental models and understand what beacons actually DO.
Now, I’m a bit slower than most people when it comes to technology, but here’s my recommendation:
Do NOT think of beacons as location detectors. They are PROXIMITY detectors.
GPS had me thinking about location – “I’m at the corner of Main and First”. Sure, if you triangulate a bunch of beacons, you can get to location, but beacons are first and foremost about proximity.
The closer you are, the more accurate the detection of proximity becomes.
The main drivers of this precision (or accuracy) are radio interference and signal strength. Signal strength is dependable over time. Interference is NOT. Interference can change with time of day, the building you put them in, or the street corner you post them at.
So, while you can generally depend on signal strength to give you a general ability to identify that you’ve come in range of a beacon, the measurement of proximity will be variable.
Have you run a test with Estimote or other beacons? Maybe we can share some info on our tests?
Range varies, but is roughly 40m out of the box for an indoor setting.
We’ve run tests with Estimote and see a precision that ranges from 10% to 20% depending on how far you are from the beacon with this number fluctuating depending on whether I put it in a store with lots of metal shelves or a large mostly empty room.
If you’re practically touching your phone to the beacon (50 cm or less) the precision is +/- 5 cm or +/- 10%. When you get to 10+ meters, the precision decreases with up to 20% variance the further you get.
And these numbers aren’t ‘fixed’. Stand still with your phone and you’ll see rapid fluctuations.
Apple iOS ‘groups’ proximity into near/far and immediate. You’ll see rapid toggling between these zones even if you’re standing still, and then the API makes corrections and seems to average out the detection to allow your app to make intelligent decisions.
What Has Been Your Experience?
Can other people validate the above? We’d love to hear whether others are having similar results. Maybe us Canadians have more interference in the air! Let us know in the comments below or e-mail me and I’ll try to keep this data up-to-date.
Be the Beacon!