Skip to content

R07 — CDC-ACM, session clock and USB re-enumeration

Status: NOT EXECUTED as a complete hardware procedure — T2B1 and T3B1.

Use the shared acceptance record, with a separate result for every required model/OS. Host and emulator output remains separate evidence.

Preconditions

R01 passed; disposable TOTP; hosts with correct UTC; identified serial port on every OS.

Steps

  1. After complete power loss, verify Time needs synchronisation. Open Settings → TOTP time → Sync over USB. Record CDC-ACM only, without FIDO/CCID.
  2. Send HELLO, then TIME 1 followed by current Unix time and LF using examples in ../protocols/time-sync-v1.md, or uv run python tools/feuristic_time.py. Verify OK and return to HID+CCID.
  3. Without cutting power, enter and leave import mode, then inspect TOTP: time must continue. Return to clock mode, send time 61 seconds behind, refuse once and accept on a second attempt. Repeat with a forward jump >300 seconds.
  4. Test TIME2, epochs before 2024/after 2100, lines >64 bytes, CR/CRLF and non-printable characters. Compare errors with the protocol and verify rejection never changes the clock.
  5. Cancel locally and test the five-minute timeout. Fully cut VBUS and reconnect: time must be absent again. Repeat on all three OSes.

Expected result

Standard temporary serial port, bounded errors, effective time-jump consent, clock retained under continuous power and invalidated by a power cut; functional USB after every exit.

Evidence to retain

Redacted serial transcript, host/device UTC timestamps, accept/refuse videos, descriptors and TOTP results before/after power loss.