contact us at 407-601-7878 or info@ideasorlando.com

Experimenting with iBeacons

Experimenting with iBeacons

Here at IDEAS we like to stay on top of the latest trends, and over the past few months have been experimenting with beacon technology. As a very quick primer in case you are unfamiliar, beacons are (typically) small, battery-powered devices that can be placed indoors or outdoors, which constantly emit a wireless signal identifying themselves. This allows your mobile device to “know” if any beacons are around, and can even give you a rough idea of how far away they are. For example, you could put a beacon on the front door of your home or business, and create an app that will “know” when you are at home or work. Taking it further, you could place a beacon in every single room of your home/business, and then know exactly which room you are currently in. Since beacons are relatively cheap (~$30-$40 each), completely independent from each other, don’t require hard-wiring or installation, and can run for years on a single battery, they will allow businesses of all shapes and sizes to adopt this technology in different ways at a fraction of the cost of other micro-location / indoor-positioning systems out there.

Beacon Vendors

There are many different companies creating beacon hardware, both US-based and international. After doing some research and looking into a handful of them, the main decision came down to Kontakt.io vs Estimote. The differences between the two mainly have to do with the aesthetics and form-factor of the actual beacons. We ultimately decided on Estimote beacons, Since most of the examples, tutorials, and articles we’ve come across used them, and because the Estimote SDK adds some extra features–reading temperature of beacons, detecting if beacons are in motion (via accelerometer) and even beacon orientation (telling whether it’s upside down, on its side, etc.). We will most likely be ordering some Kontakt.io beacons as well in the future, to see how they compare with Estimote.

Here’s an image (source) that illustrates what exactly is inside of each Estimote beacon:

exploded-beacon

Extra Beacon Features, and Scalability

As just mentioned, Estimote beacons offer a few non-standard features that other beacon manufacturers don’t. This opens up some new possibilities for adding interaction to a user experience–however, keeping scalability in mind we also don’t want to focus too much on these vendor-specific features. Beacons use a standard format, and to ensure that our implementation can work with any beacons, it’s probably wise to try to keep everything as general-use as possible. That way if a client wants to order beacons from a different vendor, or if they want to mix and match beacons from different vendors, it won’t be an issue. Plus, as beacon technology develops further more vendors will start adding more features, which is when things will really start to get exciting.

Indoor Accuracy of Beacons

For outdoor applications or indoor locations in open spaces, implementing beacons is fairly easy. However, once you are indoors where beacons can be blocked by walls, computers, people, etc, the signals can get lost amongst all of the obstructions.

Beacons have a few internal settings that can greatly impact how accurate the readings you get from them are. Most important, are the advertising rate, and signal strength. The Estimote helper app makes changing this settings extremely easy. Here are some screenshots to show what this process looks like. The broadcasting power ranges from -30db to +4db, which establishes how far your beacon will be able to transmit the signal (not to mention, the more power in the signal, the better of a chance you have of reading a beacon with a large number of obstructions like walls, people, computers, etc. between you and it). The other main setting is the advertising interval. This is how often the beacon actually transmits a signal out into the world. The more signals a beacon transmits, the more accurate your readings will be.

beacon-settings beacon-strength

So why not just crank all the beacons up to the highest power setting, and to advertise as much as possible? That would certainly be ideal, however as aforementioned these beacons operate on small 3-volt battery used in watches or key-fobs. The higher the power, and the more often the beacon broadcasts, the less time you will have before the battery dies and needs to be replaced (side note: replacing the battery in an Estimote beacon actually requires some surgery, which might be a reason to consider different vendors, depending on how often batteries will need to be replaced, and how hard the process is when scaled). Estimote also provides a chart to estimate how long beacons will last, based on these two main settings (of broadcasting power and advertising interval):

beacon-table

For our initial testing, we decided on 200ms advertising interval and +4db broadcasting power. This gives us an estimated 7-month lifespan for each beacon, before the batteries need to be replaced. 0db might be just as good and extend the battery life, but we discovered (and reported) a bug within the Estimote SDK which prevents the beacons from accepting 0db as a setting. That should be fixed in the near future, so we will test that out as well, and hopefully get closer to 12 months lifespan, which means there would be a single annual update phase to replace batteries/beacons.

Embracing, and Dealing With Beacon Accuracy Issues

At first, when we started testing beacons and noticing accuracy issues, we thought that maybe we were overlooking something. Beacons would pop in and out of range, with wild readings. While standing in place between 2+ beacons, they would fluctuate by ~15-20+ft, which is significant. After lots of research, it seems that this is a very common issue due to the nature of radio waves and interference in general. The Brooklyn Museum had posted a couple of articles (here and here) on these same experiences, which led us to test some of our own accuracy and distancing algorithms. Without boring you with the details, our algorithm essentially keeps a record of each beacon reading over the course of ~6 seconds. If a beacon isn’t detected for over 6 seconds, we assume that it’s out of range. For any beacons that are in range, we take an average based on all of the readings over the past 6 seconds, and decide which one is actually closest. We are also making sure that when a user is near two different beacons (equal distance from each), our app will “lock” into one of them, and won’t let go of it until the user is at least 15 feet closer to a different beacon, for at least 3 seconds. This largely eliminates beacons from popping and and out of focus, and also gives a much smoother user experience.

Beacons Don’t Make the Experience

As with all new forms of technology, once there is a slight buzz going many people assume that this new technology will drive a completely new experience. The reality is that beacon-like technology has been available for a while now (5+ years), but it took Apple to put an “i” in front of it and promote “iBeacons” before it started getting more attention. However, beacons just tell your device things that are nearby, sort of like the GPS on your phone, only on a smaller (and more localized) scale. The obvious uses for beacons are to replace older and clunkier technologies, like QR codes or to replace more expensive solutions that do similar things (beacons cost ~$35 each, compared to indoor positioning systems that can cost six-figures or more).

The other thing to consider is that beacons are just telling the user what is close by, and possibly a general (not completely accurate) position within a defined space. But once the user’s device has that information, we can send that data back to a server, so that now the building knows where ALL visitors are. Want to know what rooms/attractions/exhibits are most popular? Or perhaps you’d like to present a user with a game or interactive experience when they walk into a room. Or better yet, have the interactions and content within a room change, based on the number of people there. Or change based on the type of people in the room. The possibilities are endless, and really only limited by creativity (and time, and budget…)

Next Steps

Our adventures into beacon technology have just begun, and without revealing too much, our next steps are integrating phidgets with real-world interactions to enhance visitor/guest/user experience. Combining beacons with kiosks and electronic devices (lights, fog machines, projectors, etc.) seems to have endless possibilities. Expect to hear more from us about this in the future!

2015-05-12 11.02.22

Thomas Gorence
Thomas or "T" works in Flash, web development, and WordPress and regularly develops custom devices for physical interaction (museum exhibits, RFID readers, etc.)