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

Hello,

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!

Michelle
(Sendrata)

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.)