What's the best approach for reacting on beacons when entering a zone of approximatly 3m or less?


Since a week or 2 we’ve been experimenting with beacons of Estimote because we’d like to develop an Android app with the Android SDK of Estimote. This app must signal a user when the user is in range of a beacon. Here, in range is defined as in a range of approximatly 3 meters or less.

But before we started developing, we first read a lot of sites, documents, blogs, etc. about beacons and we learned that calculations of distance to a beacon is more an approximation, especially indoors. That’s why we have been testing the Rssi values we get from beacon to see the fluctuation of these values with different transmit power and interval settings of beacons, different distances and also with holding a phone vertical or horizontal or something in between.

We’ve seen that the Rssi values fluctuate very much with every setting of a beacon. Because it’s recommended to use the highest transmit power and a interval of 200ms in indoor locations, we’ve tested with these values the most.

We’ve seen that at a distance of 7 meters and holding the phone vertically, the Rssi values fluctuate between -54 and -90 (the constant measured transmit power was -60). At a distince of 3 meters, the Rssi values fluctuate between -56 and -80. When holding a phone horizontally, these values were much more at every distance. So, our conclusion is, that reacting on a beacon when it’s in range of 3 meters or less will be very difficult.

We’ve tried to make an app that should give the user a message (notification) when in range by using ranging. This app is based on an example of Estimote. While testing this, we sometimes got messages when we were much further away from a beacon, but mostly we got a message when we were in range and standing still for a few seconds or we were walking in range and already away from the beacon. So we’ve not managed to get a message when we’re approaching a beacon within a range of approximatly 3 meters.

So our question is: what’s the best solution for our problem?
We only want to send the user a notification when he/she is approaching a beacon and gets in range of approximatly 3 meters.

Should we use ranging or is monitoring better in this case?

Any help is appreciated!

Thanks in advance!


Thanks for a detailed writeup, Michelle!

Distance estimations with beacons are in fact very tricky—and even more so on Android. You already noticed that the RSSI can change depending on how you hold your phone … and different Android handsets also have varying reception characteristics, so e.g., your Nexus 6 might be showing a different value than your Galaxy S6.

I think it all boils down to designing the experience appropriately. For example, only trigger an action/content if the user spends a minute in the vicinity of the beacon, and during that minute you can also gather enough ranging data to more reliably tell what’s an RSSI spike, and what’s the average value. Or if signal overlap is a problem, go towards a more suggestive experience, e.g., “there’s some things nearby you might be interested in,” and let the customer do the final pick.

On a more technical note, I’d also experiment with decreasing the Tx power, and relying more on “in range / out of range.” This might be worse for distance estimations, but could be better for the overall, slightly redesigned experience.

Can you share a little more on what do you want the app to do? Should allow us to advise better. (If you’d rather not share in public, feel free to email me: piotr@estimote.com.)

Thanks for your help!

We’re working on several ideas for apps, trying to find out what is possible and what is not. One of the ideas is an app that can be used in a store. Customers walk through the store and receive messages for more information about products (for sale or that they are interested in) when they walk nearby these products.

Kind regards,

Got it. 3-meter granularity might indeed be tricky achieve, but we have retailers successfully implementing beacons for similar scenarios—they usually combine department-level position info w/ dwell time (am I just passing through toys on my way to electronics, or am I actually lingering in there, browsing the shelves) and personalization info (does my user profile say I’m interested in toys, so that I possibly might want to hear about the current promotion for StarCraft plushies, even though my intent was to rush towards electronics).

Also, this technology is only going to get better with time (we’re working on much better granularity in our Indoor Location project, combining readings from multiple beacons, and phone sensors), so all of this is not to say that one day you won’t be able to reliably say which exact shelf I’m looking at … but then it’s not just beacons that are the challenge, you also need to know what products are on the shelf, and that’s not the information granularity that many stores have at this point, etc. Whole lot of challenges, but I guess that’s what makes this whole process of transforming brick-and-mortar shopping experience fun!