RSSI da una distancia gruesa, pero en una sala real el multipath y el cuerpo empujan el error a ±3-5 m. Si un BLE Tag necesita sub-metro para encontrar objetos o entrar a zonas, hace falta telemetría. Este artículo cubre Two-Way Ranging (TWR), por qué domina la deriva de reloj y cómo fusionarlo con RSSI.
La idea de la telemetría
En vez de inferir por potencia recibida, mide el tiempo de vuelo de un paquete. Para un viaje redondo:
d = c * (T_round – T_reply) / 2
La luz recorre 0,3 m/ns, así que 1 ns de error son 0,15 m.
TWR de un lado (SS-TWR)
El tag envía en t0, el ancla responde en t1 tras retardo Δ, el tag recibe en t2.
T_round = t2 – t0
d = c * (T_round – T_reply) / 2
Si los relojes no están sincronizados, un desfase f_off corrompe:
error = c * f_off * T_round / 2
Con cristales de 20 ppm y T_round=10 µs, el error es 2e-10 s → 6 cm. A 100 µs crece a 60 cm; por eso se minimiza el viaje o se cancela el desfase.
TWR simétrico de doble lado (SDS-TWR)
Añade un segundo intercambio para cancelar los desfases de reloj del tag y el ancla. Solo queda la asimetría de procesado (<1 ns). SDS-TWR es el estándar en BLE/UWB porque elimina el requisito de precisión del cristal.
Realidad en BLE
BLE no tiene primitiva RTT como UWB. Se implementa con eventos de conexión, tramas CTE/AoA o petición/respuesta GATT (la latencia de pila 1-10 ms domina). Un temporizador de 1 µs da 150 m de ambigüedad; hay que marcar tiempo en la capa de radio.
Fusión RSSI
TWR es preciso pero gasta (varios ms activos a pocos mA). RSSI es pasivo y barato pero sesgado. Fusión en Kalman: confía en TWR cuando hay y cae a RSSI entre medidas, suavizando y ahorrando batería.
Coste de potencia
| Método | Activo | Corriente | Precisión |
|---|---|---|---|
| RSSI pasivo | 0,5 ms | 5-8 mA | ±3-5 m |
| SS-TWR | ~4 ms | 5-8 mA | ±0,5 m |
| SDS-TWR | ~8 ms | 5-8 mA | ±0,1-0,3 m |
Checklist
- Usa SDS-TWR para cancelar desfase.
- Calibra retardo de antena y procesado en fábrica.
- Marca tiempo en la radio.
- Fusiona con RSSI en Kalman.
- Acorta el viaje redondo.
Un BLE Tag bien diseñado logra 0.1-0.3 m con SDS-TWR y preserva la batería midiendo poco y apoyándose en RSSI.