ZeroKeyUSB no contiene un reloj de tiempo real. En su lugar, rastrea el tiempo usando el contador de milisegundos del SAMD21 más un epoch Unix guardado. Para mantener la precisión, el dispositivo necesita ocasionalmente que el host le envíe la hora actual.Documentation Index
Fetch the complete documentation index at: https://docs.zerokeyusb.com/llms.txt
Use this file to discover all available pages before exploring further.
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. |