Flomni fixes 3 #325

Merged
holler merged 5 commits from flomni_fixes_3 into main 2026-09-29 12:44:42 +02:00
5 Commits
Author SHA1 Message Date
holler fd892879b8 Merge branch 'main' into flomni_fixes_3
CI for csaxs_bec / test (pull_request) Successful in 2m59s
CI for csaxs_bec / test (push) Successful in 3m2s
2026-09-29 12:40:38 +02:00
x12saandClaude Sonnet 5 addffa1299 fix(eiger): resolve live preview data channel per detector, not "default" only
CI for csaxs_bec / test (push) Successful in 2m55s
CI for csaxs_bec / test (pull_request) Successful in 2m59s
The Eiger2 Si 500K's multi-threshold JFJ preview messages key the frame
under a threshold name (e.g. "threshold_1"), not "default" as eiger_1_5/
eiger_9 do -- confirmed by capturing the live JFJ ZMQ preview stream.
_preview_callback hardcoded "default", so it silently dropped every
frame for eiger2_si_500k (251+ "without data" errors in DeviceServer.log,
matching the empty BEC image widget). Now prefers "default" when present
and falls back to whichever single channel the broker actually sent.

Also document the JFJoch Web UI (http://sls-jfjoch-001.psi.ch:8080) and
the Eiger 2 Si 500K detector server address (129.129.122.159) in
bl_detectors.yaml's Eiger section.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 12:35:56 +02:00
x12saandClaude Sonnet 5 c88256b9f6 fix(flomni): adjust heater/X-ray-eye calibration and Galil limit message
CI for csaxs_bec / test (push) Successful in 3m2s
Correct fttrx_in offset for feyex (-2.4 -> -2.3), disable fheater
(enabled: 0) pending further commissioning, and clarify the Galil
"Limit reached." console message to "Limit switch reached."

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 12:06:34 +02:00
x12saandClaude Sonnet 5 88026e8210 feat(eiger): integrate Eiger 2 Si 500K and make NeXus writer detector-agnostic
Add the Eiger2Si500K device class (subclassing the shared JungfrauJoch Eiger
base) and make it the active detector in bl_detectors.yaml. The cSAXS NeXus
writer hardcoded "eiger_1_5" everywhere, so switching the active detector
silently dropped the frame-data links (entry_ptycho/data, data_soft, and the
NXdetector group) for any other Eiger model. Resolve the active detector via
a new "eiger" deviceTag instead, and look up per-model NXdetector metadata
(pixel size, sensor description/thickness, orientation) from a small table so
a future model can't reintroduce the same silent failure.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 11:54:24 +02:00
x12sa 9ad88f048b docs(flomni): document that PandA stdev needs the analog cap-sensor term
CI for csaxs_bec / test (push) Successful in 3m2s
Cross-checked PandA's raw within-point sample stdev against RT's own
per-point control-loop stdev on S06313. Confirmed the capacitive-sensor
subtraction from the position conversion formula isn't optional for a
noise estimate either: dropping it (interferometer counts alone) gives a
noise estimate ~10x too large and nearly uncorrelated with RT's (r~0.2),
because interf and cap are anti-correlated at r~-0.96 within a point. With
the full formula, PandA and RT's independent stdev estimates agree to
~8-14% and correlate at r~0.98-0.99. Also flags
average_stdeviations_x_st_fzp/_y as a cumulative-mean field, not a
per-point stdev, to avoid it being used by mistake in a future session.
2026-09-23 10:05:31 +02:00