iBeacon Path Loss and Why Zones Beat Meters
Ada re-derives this chapter’s own numbers step by step, at full precision
ADA · CALCULATION AUDIT
iBeacon Path Loss and Why Zones Beat Meters
A beacon calibrated to -59 dBm at 1 m and read indoors at path-loss exponent n = 2.5 turns an RSSI of -74 dBm into about 3.98 m and a weaker -84 dBm into 10.00 m. But a routine ±8 dB swing from body blockage or multipath scales every estimate by 2.089 each way, spreading that 3.98 m reading from 1.91 m to 8.32 m. This audit works the formula through and asks whether a single reading can honestly claim a precise distance, or only a reliable near-versus-far zone.
Companion to the chapter BLE App Development on ESP32 — every number here comes from that chapter.
Ada: The worked example runs two RSSI readings through d = 10^((TxPower - RSSI) / (10n)). Both distances are exact – but the interesting part is what the same formula does to measurement noise, so let me finish that thought numerically.
With TxPower = -59 dBm (calibrated at 1 m) and indoor n = 2.5:
- At
RSSI = -74 dBm: exponent(-59 - (-74)) / (10 x 2.5) = 15 / 25 = 0.6, sod = 10^0.6 = 3.9811 m, about3.98 m. - At
RSSI = -84 dBm: exponent(-59 - (-84)) / 25 = 25 / 25 = 1.0, sod = 10^1.0 = 10.00 m.
Now the noise. A +/-8 dB swing from body blockage or multipath scales the estimate by 10^(8/25) = 10^0.32 = 2.089:
- The
3.98 mreading legitimately spans3.98 / 2.089 = 1.91 mto3.98 x 2.089 = 8.32 m.
That factor-of-two-each-way spread is the whole argument for zone labels: because distance sits in the exponent, every +/-8 dB of ordinary RSSI wobble becomes a /2.09-to-x2.09 swing in meters, so a single reading cannot honestly claim a precise distance – but it can reliably say “near” versus “far.”
Every number above is taken from the chapter’s own material and re-derived step by step.