DiamondLightSource / DiamondLightSource/sm-bluesky

Implement Linear Arbitrary (LA) Polarisation Control

Open
#320 1 comment 0 reactions 0 assignees View on GitHub
i06 i17 i21 SMG
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.