Following discussions and debugging with the hardware engineer, the PWM clock frequency was reduced from 400 MHz to 200 MHz. Subsequent testing confirmed that voltage regulation remained largely unaffected.
The cache is keyed on a hash of the graph buffer contents: the buffer has
many writers and no change counter.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the artificial 68-pair limit with a 2900 ms inter-attempt
budget.
A completed-pair count does not limit failed RF/authentication retries
and unnecessarily restricts fast PM5 collection.
Keep natural buffer capacity, whole-pair packing, client cancellation,
watchdog handling and the existing 3000 ms client response waits.
A blocking attempt can overshoot; persistent errors may yield an empty
nonce reply.
Add actual-handler regression coverage for PM5, RDV4 and GENERIC.
Co-Authored-By: OpenAI coding assistant <noreply@openai.com>
Signed-off-by: nip <182409448+nip-was-here@users.noreply.github.com>
Validate byte length, unfinished bits, collisions and parity-buffer
length before accepting an encrypted nested nonce. Capture decoder
metadata before CHK_TIMEOUT changes it and retry incomplete responses.
Remove the PM5-only 500 us nested-authentication delay and its override.
Preserve other RF timing, the pair cap, cancellation and watchdog calls.
Add native regression coverage without target-key filtering.
Co-Authored-By: OpenAI coding assistant <noreply@openai.com>
Signed-off-by: nip <182409448+nip-was-here@users.noreply.github.com>
Add an opt-in simulator probe that checks a reader's AES authentication continuation against a supplied candidate and stops before the final card response. Expose the result through the firmware protocol and etest bench command, and document the evidence and handshake scope.
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Read SBS before TIME/DATE to latch a coherent snapshot in synchronous
ERTC mode. A rollover between the previous calendar and subsecond reads
could move the tick count backwards and cause false receive timeouts.
Preserve millisecond conversion and shared delta-helper semantics.
Add actual-source rollover, conversion and register-locking coverage.
Leave acquisition limits and RF timing unchanged.
Co-Authored-By: OpenAI coding assistant <noreply@openai.com>
Signed-off-by: nip <182409448+nip-was-here@users.noreply.github.com>
New CLI command `lf cotag sim` with COTAG tag simulation implementation.
Detects COTAG reader activation sequence and emulates a COTAG tag.
Signed-off-by: andrej@towelbyte.net