Let me begin by saying that I know broadcasting ranges are not exact, and are subject to fluctuations due to external factors, but what I’m observing seems too extreme to be explained by that.
I’ve set the transmit power on my beacon to -20 dBm, which has a stated maximum range of ~3.5m/12ft. However, while monitoring, I’m receiving didEnterRegion calls around 30ft away (and maybe further, read on about glass door). How can this be? It occurs on both Android and iOS. It’s not a case of every level of power being extended, either, because when I set it to -30 dBm I can barely get a signal standing right next to it. I would really like for this broadcasting range to actually be ~12ft…
My two hypotheses are that my updates to the transit power are somehow not being properly propagated to the beacon (although I have changed it using the iOS app, Android app, and the cloud service, as well as tried with several different beacons), or the cause is constructive interference.
Below is an image I’ve created of the layout of the room I’ve been testing in, in case that will help:
It’s 30ft long, and the beacon is placed 7ft high on the right wall. In line with this on the left wall is a glass door, which I think must causing some form of interference (as soon as I walk through the door I get the didEnterRegion call). But I can’t imagine it would effectively double the signal. Any ideas?
EDIT: Propped open the glass door on the left wall and did some more testing. I can get a signal up to about 34ft. The real sweet spot though seems to be around 22ft (I have each foot taped off on the floor), this is where I get the didEnterRegion call most often. Interestingly enough, the next transmit power level up, -16 dBm, has a max range of ~7m/22ft. Hmm. Seems like what is most likely going on here is that the transmit power actually being saved is -16 dBm whenever I try to save it to -20 dBm. Possible bug? I’d love if someone on the Estimote team could look into this.
Thank you so much for such detailed description!
What you’re observing definitely sounds odd. Can you replicate this with other beacons, or is it only this one acting out? What does setting the transmit power to -16 yield?
It’s highly unlikely that a wrong value would be saved to the beacon. To my eye, more likely you might just happened to stumble across a beacon with some abnormal antenna characteristics, in which case we’ll go ahead and send you a new one.
Okay, I did some more testing on all six of my beacons. I can receive a signal from each of them at at least 34ft away. Yanking the power up to -16 dBm, I get get the signal up to ~60ft away. Strange!! I have tested this using my own app and the Estimote app to verify.
I also moved to another location, where I could get even further away from the beacon. I’m not sure exactly how far away I am in the photo below, but I could get a signal just fine at -20 dBm (beacon is circled in red).
Thanks again, super helpful! (:
Just a quick note about how beacon monitoring works on iOS: Apple doesn’t share much information about it, but we did some experiments and established that a beacon needs to be detected with an RSSI over -88 dBm for an enter to trigger. So the fact that you’re sometimes getting the enter events at longer distances, but most consistently at ~22 ft away, can be explained by RSSI fluctuations—it’s enough to catch one short spike to over -88 for an enter to trigger. (So it’s good to think of the tx power in terms of probability with which the beacon can be detected at a given range.)
But anyway, why the “sweet spot” is at ~22 ft, i.e., 83% over our estimation of 12 ft, that’s still a mystery.
Can you post a closeup picture of the beacon? What material is the surface to which the beacon is stuck made of? Another hypothesis: is the wall on which the beacon is placed reinforced with steel? It could actually be acting as an external antenna, explaining the discrepancy. Fun fact: we’ve had a customer who placed beacons on a steel-reinforced concrete column, and with the transmit power set to max (which is usually about 50 – 70 m range), they were actually getting ~ 150 m range (;