BLE Indoor Positioning Systems: RSSI, AoA, and Hybrid Approaches
Achieving meter-level indoor accuracy with BLE
BLE Indoor Positioning Systems: RSSI, AoA, and Hybrid Approaches
GPS fails indoors. Bluetooth Low Energy fills the gap with positioning technologies that range from 3-metre room-level accuracy using RSSI beacons to sub-30-cm precision using Direction Finding arrays introduced in Bluetooth 5.1.
RSSI-Based Trilateration
The simplest approach uses received signal strength indicator (RSSI) from multiple beacons to estimate distance via the path-loss model:
d = 10 ^ ((TxPower - RSSI) / (10 × n))
Where TxPower is the measured RSSI at 1 m (stored in the advertising payload) and n is the path-loss exponent (2.0 free space, 2.5–3.5 indoors with walls). Three or more beacons enable trilateration; four or more over-determine the system for least-squares optimization.
| Technique | Typical Accuracy | Infrastructure Cost | Latency |
|---|---|---|---|
| RSSI proximity (nearest beacon) | 3–5 m | Low (beacons only) | < 1 s |
| RSSI trilateration | 1–3 m | Medium (dense beacon grid) | 1–3 s |
| Fingerprinting (radio map) | 0.5–1.5 m | High (site survey required) | 1–2 s |
| AoA Advertising">direction finding | 0.1–0.3 m | High (antenna arrays) | < 0.5 s |
RSSI limitations: multipath reflections and body shadowing cause ±5–10 dBm variance at fixed distances. Kalman filtering or particle filters smooth the output; fingerprinting eliminates the path-loss model entirely by comparing live RSSI vectors against a pre-measured radio map.
Angle of Arrival (AoA)
Bluetooth 5.1 introduced Constant Tone Extension (CTE) — a 160-bit unmodulated tone appended to advertising or connected PDUs. A locator with a multi-element antenna array measures the phase difference between elements as the signal arrives, computing azimuth and elevation angles via MUSIC or ESPRIT algorithms.
Phase difference (Δφ) = (2π × d × sin θ) / λ
Where:
d = antenna element spacing (λ/2 recommended)
θ = angle of arrival
λ = wavelength (~12.5 cm at 2.4 GHz)
Nordic Semiconductor's nRF21540 RF front-end and nRF5340 SoC support AoA natively. A 4×4 ULA (uniform linear array) achieves ±2° angular resolution, translating to ~15 cm at 5 m range. Use the Range Calculator to estimate coverage per locator node.
Sensor Fusion for Hybrid Positioning
Combining BLE with IMU (accelerometer + gyroscope) removes the positioning blackout during non-advertising intervals:
State vector: [x, y, heading, velocity]
Prediction: IMU dead-reckoning (50 Hz)
Update: BLE RSSI or AoA measurement (1–10 Hz)
Covariance: Kalman gain balances sensor noise
Popular open-source frameworks: IndoorAtlas (commercial), OpenHPS (TypeScript), IPIN competition datasets for benchmarking.
Deployment Checklist
- Beacon height: 2.5–3.5 m on ceiling; avoid metal obstructions within 30 cm
- Beacon density: 1 per 25 m² for trilateration; 1 per 15 m² for fingerprinting
- Advertising interval: 100–200 ms for responsive positioning; shorter increases power consumption
- TX power: −12 to 0 dBm; calibrate
TxPowerfield per unit to compensate manufacturing variance - Floor discrimination: pressure sensors or AoA elevation angle to distinguish floors in multi-storey buildings
- Channel cycling: use all three advertising channels (37, 38, 39) to average out per-channel interference
Standards and Ecosystem
The Bluetooth SIG's HADM (High Accuracy Distance Measurement) working group standardized AoA under the Direction Finding feature in Bluetooth 5.1. Commercial deployment stacks include:
| Vendor Stack | Hardware | Claimed Accuracy | Notes |
|---|---|---|---|
| Silicon Labs RTLS | EFR32BG22 + antenna board | 20–30 cm | SDK included, sub-GHz option |
| Nordic RTLS | nRF5340 + antenna patch | 10–30 cm | nRF Connect SDK |
| u-blox Anchors | NINA-B4 | 30–50 cm | Enterprise-ready, cloud API |
| Quuppa | Proprietary hardware | 10–20 cm | Licensed RTLS platform |
For emerging ultra-wideband (UWB) alternatives (Apple U1, NXP SR150), note that UWB achieves 5–10 cm accuracy but requires dedicated hardware (not standard BLE). Hybrid BLE+UWB architectures use BLE for coarse location and UWB for final precision handoff.
Periodic Advertising for Positioning (BT 5.0+)
Periodic advertising (PA) decouples the scanning discovery phase from the data phase. A fixed-location beacon advertises PA train parameters in a standard advertising PDU; scanners that find it synchronize to the PA train and receive time-stamped positioning payloads without establishing a connection:
Beacon broadcasts: ADV_EXT_IND + AUX_ADV_IND (PA sync info)
Scanner syncs to PA train
Beacon transmits: AUX_SYNC_IND (position data, CTE for AoA)
Scanner measures: CTE phase difference + PA reception timestamp
This eliminates connection overhead for positioning systems with hundreds of scanners tracking the same beacon. The Beacon Configurator supports periodic advertising interval configuration.
For beacon hardware comparison, use the BLE Chip Selector filtering for long battery life and compact form factor. See also BLE Advertising In-Depth for scanning and beacon configuration.
Frequently Asked Questions
Yes, our guides range from beginner introductions to advanced topics. Each guide indicates its difficulty level and prerequisites so you can find the right starting point.