A shared e-scooter's BLE beacon transmits at a fixed power. As the rider's phone gets closer, the received signal strength (RSSI) rises — but not smoothly, because reflections off the ground, bodies and buildings add random multipath fading. The log-distance path-loss model:
RSSI(d) = A − 10·n·log10(d) + N(0, σ)
A = RSSI at 1 m reference distance (here −45 dBm)
n = path-loss exponent (2.0 = open street, 4.0 = urban canyon)
N(0, σ) = zero-mean Gaussian fading noise, std. dev. σ dB
The phone (or the scooter's own firmware) inverts that formula to estimate its distance from a single reading — this is exactly what "you're getting warmer" proximity UIs use:
d_est = 10 ^ ((A − RSSI) / (10·n))
Because a single noisy sample is unreliable, real unlock firmware never trusts one reading. It requires K consecutive samples above the RSSI threshold (a debounce window, sampled here roughly 4×/second) before actuating the solenoid lock — this is what stops a single reflective glitch from unlocking the scooter for someone still 15 meters away, and also what makes unlocking feel "sticky" rather than instantaneous.
- Distance slider / Auto-walk — move the rider toward or away from the scooter; RSSI follows the path-loss curve plus live fading noise.
- Path-loss exponent n — denser obstruction (urban canyon, crowds) steepens the RSSI-vs-distance curve, shrinking the reliable unlock radius.
- Fading noise σ — higher noise makes the RSSI estimate jitter, which is exactly why the debounce window (K) exists.
- Threshold & K — tune the trade-off yourself: a low K unlocks fast but is prone to false triggers from noise spikes; a high K is robust but makes the rider wait.
Real-world relevance: this is the same class of proximity-unlock logic used by Bird, Lime and most dockless e-scooter and e-bike fleets, and by BLE smart locks generally (car keyless entry, smart-home door locks).