We've been working on a number of projects that use iBeacons to provide context about nearby places (and things) to apps. As we move beyond experimentation towards more 'real-world' applications we're noticing that there are a lot of things that make a difference to how well iBeacons work for a given app.
One of the things we've noticed is that the radio signals that we detect vary greatly. There's probably a number of reasons for this: different beacons have different characteristics, the radio signals do different things in different environments, and even do different things in the same environment over time (depending on how many people are in a room for example). To better understand the source of the variation we've noticed, we thought we'd test all of our beacons in as controlled an environment as possible to determine how much of the variation is down to the beacon itself and how much is down to other factors.
We wanted to test two things:
- how strong is the signal from a given beacon at a set distance
- how much does the signal strength vary for a given beacon at a set distance over time
These two things are related. For many of the apps we're working on we want to be able to detect a beacon as soon as possible when you approach it (so a stronger signal is better in this regard as we'll be able to detect it from further away). At the same time we've found that sometimes it can be a poor experience if the signal fluctuates too much. If you show or hide some content based on proximity to a given beacon for example then the user interface can feel jumpy and unpredictable if the signal you receive from that beacon fluctuates a lot.
Given that we're about to install some beacons for a client, we thought we'd compare some of the different models that are available to see whether there's a meaningful difference when it comes to the strength and stability of their signals.
The beacons we tested
We ordered beacons from a number of manufacturers. Some were even nice enough to send us some samples to test. All up we tested the following beacons:
Enso Locate
Qualcomm Gimbal (Series 10)
Nomi
Bluecat
Radius RadBeacon
Our approach to testing
We tested all of the beacons under the same conditions. We placed each beacon next to a wall in a large empty room (one at a time). We took reasonable steps to minimise radio interference by only testing one beacon at a time and by disabling wifi and bluetooth on all other devices in the room (though I'm sure there were still some nearby wifi and bluetooth signals - not to mention terrestrial radio and TV broadcasts etc).
We then placed an iPhone running a simple test app at a position in the centre of the room and measured the received signal strength from the test beacon for 30 seconds. We repeated the test for each of our beacons: testing all the beacons from each manufacturer as we wanted to be sure that any difference we noticed was a difference between the brand of beacon and not simply a difference from one beacon from a given manufacturer to the next beacon from the same manufacturer.
Our results
I'm really glad we performed these tests, because there is a huge difference in the strength and stability of the radio signals broadcast by the beacons we tested. The chart below shows the results we observed.
Whilst the Enso Locate beacons (red) had the strongest signal, they also had one of the most variable signals: jumping from -72 dBm to -59 dBm. The Qualcomm Gimbals (yellow) were the clear winners with a strong and very stable signal, consistently staying in the -72 dBm to -69 dBm range. The Nomi beacons were more stable than the Enso beacons though their signal was not quite as strong and they still suffered from quite a bit of variability. The Bluecats (green) were the clear laggards having both a very weak and very variable signal.
There are many more factors to consider when choosing which beacons to use and I'll explore more of these in future posts but from our early testing it looks like we'll be recommending Qualcomm Gimbals if you need stable signals.