Timepix hardening + delay laser with calibration in BEC #47

Open
wyzula_j wants to merge 5 commits from feat/laser-delay-calibration-pvs into main
pull from: feat/laser-delay-calibration-pvs
Owner
  • TimePix and timepix_scan: reviewed and hardened + tests.
  • Laser delay (dev.laser_delay): implemented according to the DelayLaser.py. The original script is kept in the repo as a reference; the tests check that the device writes the same PV values.
  • Simulation: SimLaserDelay (with a simulated scope) for local development without hardware.
  • Calibration is kept in autosaved PVs (X10DA-LAS-DELAY:*), so it survives BEC restarts and session changes.
    • Calibrate in the BEC client with the scope reading (X-ray minus laser, in ns): dev.laser_delay.calibrate()
    • Show it with dev.laser_delay.get_calibration(), or get_calibration_info() for the date and scope value.
    • The calibration values can't be set individually from BEC, only through the calibration command.
    • They are written to every HDF5 file as configuration signals of laser_delay.
  • Safety:
    • Phase shifter voltages are capped at 5 V and ramped slowly, as in the script.
    • Only the device itself writes the delay card and the phase shifter.
    • If the hardware no longer matches the stored calibration (laser restart, changes outside BEC, an interrupted move), moves are refused until the next calibrate.

Tested at SuperXAS with Grigory and Alvin; this branch is what the beamline runs now.

Open questions (from the original script logic, not blocking to proceed with the PR atm, but we can discuss them later): can the delay card's FINE value be 200 (BEC currently writes the next coarse unit instead)? Are the RF and cavity periods 2.0 / 12.01 ns as in the script? Is a phase shifter amplitude of 1.0 V right?

- TimePix and timepix_scan: reviewed and hardened + tests. - Laser delay (dev.laser_delay): implemented according to the DelayLaser.py. The original script is kept in the repo as a reference; the tests check that the device writes the same PV values. - Simulation: SimLaserDelay (with a simulated scope) for local development without hardware. - Calibration is kept in autosaved PVs (X10DA-LAS-DELAY:*), so it survives BEC restarts and session changes. - Calibrate in the BEC client with the scope reading (X-ray minus laser, in ns): dev.laser_delay.calibrate(<ns>) - Show it with dev.laser_delay.get_calibration(), or get_calibration_info() for the date and scope value. - The calibration values can't be set individually from BEC, only through the calibration command. - They are written to every HDF5 file as configuration signals of laser_delay. - Safety: - Phase shifter voltages are capped at 5 V and ramped slowly, as in the script. - Only the device itself writes the delay card and the phase shifter. - If the hardware no longer matches the stored calibration (laser restart, changes outside BEC, an interrupted move), moves are refused until the next calibrate. Tested at SuperXAS with Grigory and Alvin; this branch is what the beamline runs now. Open questions (from the original script logic, not blocking to proceed with the PR atm, but we can discuss them later): can the delay card's FINE value be 200 (BEC currently writes the next coarse unit instead)? Are the RF and cavity periods 2.0 / 12.01 ns as in the script? Is a phase shifter amplitude of 1.0 V right?
wyzula_j self-assigned this 2026-10-08 23:09:05 +02:00
wyzula_j added 2 commits 2026-10-08 23:09:05 +02:00
wyzula_j force-pushed feat/laser-delay-calibration-pvs from 5284f55e9d to dd9d26085f 2026-10-12 12:23:36 +02:00 Compare
wyzula_j added 3 commits 2026-10-13 16:00:29 +02:00
wyzula_j force-pushed feat/laser-delay-calibration-pvs from b71d7737ff to 531f8657c4 2026-10-13 16:00:29 +02:00 Compare
wyzula_j changed title from Feat/laser delay calibration pvs to Timepix hardening + delay laser with calibration in BEC 2026-10-13 16:01:20 +02:00
wyzula_j requested review from hitz_s 2026-10-14 11:44:13 +02:00
wyzula_j requested review from smolentsev_g 2026-10-14 11:44:13 +02:00
wyzula_j requested review from wakonig_k 2026-10-14 11:44:13 +02:00
All checks were successful
CI for superxas_bec / test (push) Successful in 2m3s
CI for superxas_bec / test (pull_request) Successful in 2m4s
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/laser-delay-calibration-pvs:feat/laser-delay-calibration-pvs
git checkout feat/laser-delay-calibration-pvs
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bec/superxas_bec#47