Cuándo se requiere sincronización
- Primer arranque o tras un reset de fábrica
- Cuando el OLED muestra
REQTIME - Si los servicios de login reportan “código inválido” a pesar de introducirlo inmediatamente
- Tras periodos largos sin alimentación (varias semanas)
Flujo de sincronización
- Desbloquea ZeroKeyUSB.
- Conéctate a la interfaz serie vía el web manager o la CLI.
- El dispositivo envía
REQTIMEpara señalar que necesita el epoch actual. - El host responde con
SETTIME <epoch>, por ejemploSETTIME 1706227200. - ZeroKeyUSB guarda el valor en EEPROM (64 bits little-endian) y resetea sus contadores internos.
Comprobar la deriva manualmente
Ejecuta el comando de status de la CLI:Clock drift: +18s. Si el valor se acerca a ±60s, realiza una sincronización nueva.
Resolución de problemas
| Síntoma | Solución |
|---|---|
REQTIME persiste tras enviar SETTIME | Asegúrate de que el epoch está en segundos (no en milisegundos). |
| Los códigos están siempre desfasados 30 s | El reloj del host probablemente mal configurado; verifica la sincronización horaria del SO. |
| La CLI no puede abrir el puerto | Cierra otros programas serie (p. ej. Arduino IDE) que puedan estar conectados. |