Skip to content
Eliott65Sondewiki
Contents

The local log

Over Wi-Fi, every read pays a round trip on the network. The local log reverses the logic: the probe reads on its own, at full speed, and the PC reads everything back in one go, afterwards.

Why

Eliott65’s tools make many small reads. Over Wi-Fi, each one costs a network round trip. And some watches are long: on the Eliott65 board, a demo stopped working after a few minutes, which required a connected and attentive PC during all that time.

What the probe does, on its own

  • Periodic readings: up to 16 variables of 1, 2 or 4 bytes, read at a fixed interval and stored in a 64 KiB time-stamped ring. A late reading is counted, not caught up.
  • A trigger: stop the readings when a value stays unchanged for N readings, or becomes equal to a value (under a mask).
  • A snapshot: on triggering, the probe copies up to 4 chosen memory areas (16 KiB in all), to keep the board’s state at the moment of the fault.
  • Large blocks: read or write up to 16 KiB of memory per response on the Pico W (60,000 bytes at most in the protocol).
  • Batch read-back: the PC then retrieves the readings and the snapshot in a few exchanges.

Taking turns with OpenOCD

OpenOCD keeps in memory the state of the chip’s debug port (select register, current address, chosen core). If a third party touches it during its session, that state becomes wrong with nothing to signal it. So the rule is simple: while OpenOCD is connected to port 4441, the log is paused and refuses accesses (“busy” response). After the session, it redoes the connection to the chip itself (wake-up, line reset, core selection, debug power-up) before resuming.

What is checked

WhereResult
On the PC, against the simulated target11 end-to-end tests passed: both cores, 20,000 unaligned bytes, readings at 1 ms, “unchanged” and “equal” triggers with snapshot, exclusion with OpenOCD, small limits, rejected parameters
On the board10 s reading every 2 ms without error; 256 KiB of SRAM read in 4.7 s, identical to the read by OpenOCD

The trigger and the snapshot have no reported test against the board yet.

The commands are in How to use it.

Sources in the repository : docs/adr/ADR-0003-journal-local.md, docs/journal/03-journal-local.md, docs/journal/04-essai-reel.md.