DiamondLightSource / DiamondLightSource/sm-bluesky
Implement Linear Arbitrary (LA) Polarisation Control
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 2d 3m
- Merged PRs (30d)
- 8
Description
### Goals
Acceptance criteria : What journeys should the user be able to complete to consider your feature done
- [ ] [Bluesky Device: A user can run yield from bps.abs_set(polarization,Pol.LA, angle=) and the hardware responds correctly.
- [ ] Coordinated Motion: All four rows move to their calculated phase positions based on the requested angle $\alpha$ without violating hardware limits.
- [ ] Energy-Angle Compensation: The undulator automatically tracks and adjusts to maintain constant photon energy as the polarization angle changes.
- [ ] Plan: Users can successfully run a bp.scan or bp.list_scan over the polarization angle motor.
- [ ] Beamline Deployment: Feature is fully implemented and tested for i06, i17, and i21.
- [x] Requirements check: Confirm with beamline scientists if i05, k07, and i09 require LA mode and document their specific row-phasing geometry.--- They do not.
### Task
base on the goals, deduce the tasks required. check them off once they're done
- [ ] Review I10 Implementation: Analyze the existing i10_apple2.py logic; determine how to abstract the "movable jaw phase" logic vs. the standard fixed-jaw APPLE II movement used elsewhere.
- [ ]
- [ ]
- [ ]
- [ ]
### Related Resources
[I10 implementation](https://github.com/DiamondLightSource/dodal/blob/c3e106fde3f8f35394913ac8bd63545e8cae146e/src/dodal/devices/beamlines/i10/i10_apple2.py#L158) : I10 appears to be one of the special beamline where it has a movable jaw phase. other beamline may not function the same way.
I06 has a massive lookup that in epic, it may worth moving it away from it.
Contributor guide
Research direction
Start by reading src/dodal/devices/beamlines/i10/i10_apple2.py at the linked movable-jaw phase logic and reviewing the I06 lookup referenced in the issue. Confirm the row-phasing geometry and implementation needs for i06, i17, and i21 with the relevant beamline requirements. Done means LA control, coordinated motion, energy-angle compensation, scan support, and tests are implemented for all three beamlines.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100