CI for csaxs_bec / test (push) Failing after 2m51s
Diagnosed against a real scan (S06313): grouping raw interf_st_fzp_x/_y samples by frame_counter + gate_detector_active reproduces rt_positions' trusted average_x_st_fzp/_y to R² > 0.9999, confirming that method -- but one point (167) was off by ~116 nm because PandA's COUNTER1.OUT is not cleared by Arm(). The first raw samples of an acquisition can briefly carry a stale frame_counter value left over from the previous acquisition's tail (observed: 36 samples reading a stale 167 before dropping to 0), which silently contaminates whichever real point later in the same scan happens to share that counter value. PandaBoxOMNY now drops raw rows captured before it observes frame_counter == 0 for the first time in each acquisition -- on every arm, including on_pre_scan retries, since each Arm() reopens the same stale-value window -- and drops leftover buffered rows from an abandoned attempt at the same point. Verified against S06313: point 167's residual drops from ~116 nm to ~0.1 nm after the fix, in line with the rest of the scan. Write-up, including the diagnostic method and a possible PandA-layout-level alternative fix, in docs/developer/panda_box_free_running_setup.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NPZ9gzN2rt3wgiMnTKyrug