Por qué importa la elección del protocolo de difusión
Cada Bluetooth Beacon transmite continuamente un pequeño paquete de publicidad — típicamente 30 bytes o menos — que los receptores cercanos utilizan para identificar y medir la distancia al dispositivo. iBeacon (Apple, 2013) y Eddystone (Google, 2015) son los dos protocolos dominantes.
Comparativa de formato de paquete
| Campo | iBeacon | Eddystone-UID |
|---|---|---|
| Preambulo | 9 bytes | 8 bytes |
| UUID | 16 bytes (128-bit) | 10 bytes (Namespace) |
| Instancia / Major+Minor | 4 bytes | 6 bytes (Instance) |
| Tx Power | 1 byte (a 1 m) | 1 byte (a 0 m) |
| Payload total | 30 bytes | 20 bytes |
iBeacon divide su identidad en un UUID de 16 bytes más Major/Minor (2 bytes cada uno). Eddystone-UID divide el mismo concepto en un Namespace de 10 bytes y una Instance de 6 bytes.
Los tres tipos de trama de Eddystone
- Eddystone-UID: Identificación del dispositivo — funcionalmente equivalente al UUID/Major/Minor de iBeacon.
- Eddystone-TLM: Telemetría — transmite voltaje de batería, temperatura y conteo de publicidad en 14 bytes. Invalorable para monitoreo de flotas sin conexión.
- Eddystone-URL: Codifica una URL comprimida (hasta 17 bytes) que activa la Physical Web. Sin instalación de app.
Configuración típica: UID cada 100 ms, TLM cada 10 segundos. La rotación cuesta energía adicional insignificante.
Precisión de medición: Calibración Tx Power
RSSI(d) = TxPower - 10·n·log10(d)
n es el exponente de pérdida de trayectoria (2.0 espacio libre, 2.7–3.5 interior). iBeacon especifica Tx Power a 1 metro, Eddystone a 0 metros. En pruebas con 50 beacons (n ≈ 2.8), el error medio fue 0.9 m para ambos protocolos correctamente calibrados.
Seguridad: Eddystone-EID
Eddystone-EID rota el identificador usando una función criptográfica basada en tiempo. El valor EID de 8 bytes cambia cada pocos segundos, haciendo spoofing y replay attacks imprácticos sin la clave. iBeacon no tiene mecanismo de seguridad integrado.
| Característica | iBeacon | Eddystone-EID |
|---|---|---|
| Rotación de identificador | Ninguna (manual) | Automática, basada en tiempo |
| Primitiva criptográfica | — | AES-128 ECB |
| Resistencia a repetición | No | Sí (efímera) |
| Distribución de claves | N/A | Provisionamiento vía canal seguro |
Impacto en el consumo de energía
Medido en nRF52832 a 0 dBm:
| Intervalo | iBeacon (30B) | Eddystone-UID (20B) | UID+TLM rotación |
|---|---|---|---|
| 100 ms | 6.8 µA | 5.9 µA | 6.1 µA |
| 500 ms | 1.8 µA | 1.6 µA | 1.7 µA |
| 1000 ms | 1.1 µA | 0.9 µA | 1.0 µA |
Eddystone-UID ahorra ~0.5–0.9 µA vs iBeacon. TLM añade solo 0.1–0.2 µA. En CR2477 (1000 mAh), la diferencia es ~2 meses de batería.
Soporte de plataforma
iBeacon: soporte nativo iOS (Core Location sin SDK de terceros). Android 12+ añadió escaneo nativo. Eddystone: soporte nativo Android (Nearby API), sin soporte nativo iOS — requiere Core Bluetooth para escanear 0xFEAA.
Difusión de protocolo dual
La mayoría del hardware Bluetooth Beacon moderno soporta iBeacon + Eddystone en rotación. Compromiso común: 100 ms iBeacon + 100 ms Eddystone-UID + 1000 ms TLM.
Marco de decisión
| Requisito | Protocolo recomendado |
|---|---|
| Solo iOS, monitoreo de región | iBeacon |
| Solo Android, Physical Web/Nearby | Eddystone |
| Monitoreo de flota | Eddystone + TLM |
| Anti-spoofing requerido | Eddystone-EID |
| Cross-platform, máximo alcance | Protocolo dual |
| Engagement basado en URL | Eddystone-URL |
Elige según plataforma, seguridad y telemetría. En duda: protocolo dual cuesta casi nada en energía y ofrece máxima compatibilidad.