Módulo 'GPS falso' con WiFi y NTP: un proyecto de precisión abandonado

Fuentes: Wifi Time
Imagen generada por IA con el prompt: Dusty breadboard with ESP8266 module, jumper wires, barrel jack regulator, small GPS module, and logic analyzer probes on a cluttered workbench, warm workshop lighting
Imagen generada con IA

El proyecto 'Wifi Time' recoge los experimentos abandonados durante casi seis años por el autor para construir un módulo 'GPS falso' capaz de obtener la hora a través de WiFi mediante el protocolo NTP y funcionar como sustituto directo de los módulos GPS en su reloj de precisión. La motivación principal era sortear la mala recepción GPS en interiores, especialmente en viviendas modernas con aislamiento aluminizado, donde la señal satelital resulta poco fiable.

La pieza explica con detalle técnico por qué el NTP resulta varios órdenes de magnitud menos preciso que un GPS —habitualmente con exactitud de decenas de nanosegundos— y por qué mantener la hora entre sondeos es un problema de control complejo cuando se utiliza el oscilador integrado de un ESP8266, poco estable y muy sensible a la temperatura.

Para evaluar el funcionamiento, el autor recurrió a una cadena de herramientas basada en sigrok-cli, un analizador lógico fx2lafw y un pequeño script en Perl que preprocesaba las medidas de jitter antes de graficarlas con gnuplot. Cada prueba implicaba esperar alrededor de quince minutos para observar el efecto de cualquier cambio, lo que convertía la experimentación en un proceso lento y repetitivo.

Los primeros ensayos, con sondeos NTP cada diez segundos en un piso con decenas de redes WiFi solapadas, arrojaban valores plagados de valores atípicos, algunos por encima de los 15 milisegundos, y un sesgo sistemático cercano a los 3 milisegundos. Tras descartar mediciones fuera de umbral y aplicar disciplina al oscilador, los resultados mejoraron hasta converger dentro de un margen aproximado de un milisegundo, aunque el desplazamiento sistemático siguió siendo objeto de análisis.

El autor detalla también la lógica del lazo de control: dado que el oscilador del ESP8266 no puede disciplinarse directamente con precisión, la estrategia pasaba por tratarlo como estable y ajustar un temporizador secundario derivado de él, mientras se acumulaba un historial de estimaciones para rechazar valores anómalos y reducir gradualmente la frecuencia de sondeo. Las gráficas de gnuplot ilustraban la pendiente de deriva del oscilador entre sondeos, que se esperaba aplanarse a medida que el lazo se estabilizara.

El proyecto nunca llegó a publicarse porque su autor lo percibía siempre 'al borde' de funcionar, sin alcanzar la ambiciosa meta de exactitud sub-milisegundo. Con la llegada de una nueva versión de su reloj (Mk IV), equipada con un módulo GPS superior y conector SMA para antena, el 'GPS falso' perdió su razón de ser. El artículo rescata estas notas originales de julio de 2020 como testimonio de un experimento difícil de domar sobre las limitaciones del NTP y la disciplina de osciladores en microcontroladores de bajo coste.