DiamondLightSource / DiamondLightSource/mx-bluesky

EPIC: I23 Serial Experiment

Open
#962 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
4
Forks
5
Avg merge
1d 30m
Merged PRs (30d)
2

Description

I23 would like to run a "serial" like experiment during the w/c 12/06. This experiment will do a gridscan pattern and at each point on the gridscan do the following:
1. Arm the pilatus
2. Arm the zebra to to open the shutter and trigger the detector for a rotation scan
3. Do a small wedge omega rotation scan
4. Close shutter and disarm pilatus

The grid will then continue on for ~100 points repeating the above. Both the grid and rotation moves can be done in software and need not be fast.

Things that are out of scope of this project and are **not** included:
* No need to register with ispyb or trigger data analysis
* Assume the chip is mounted perpendicular to the beam e.g. we can do a perfect gridscan and not worry about the co-ordinate system of the chip (as we do in i24)
* UI interactions, this will all be run by via command line or in a GDA console
* The pilatus writes CBFs, there is no need to wrap it in any nexus files
* I23 in general has potential for collisions but in this case this is all handled by an external system

There will be plenty of testing time on the beamline for this.

Next steps (roughly in order, spin into new issues):
* Deploy `BlueAPI` to beamline (there is already a k8s cluster)
* Write an `i23.py` beamline with a connecting goniometer
* Make a plan that performs a grid (we can probably just use https://blueskyproject.io/bluesky/main/generated/bluesky.plans.grid_scan.html#bluesky.plans.grid_scan)
* Test this moves as a grid on the beamline
* Add a zebra to the `i23.py`
* Make a plan that configures the zebra for a position compare rotation collection
* Test that this plan triggers the detector correctly (by manually configuring the pilatus then running this plan). Confirm this with and without beam, we should be able to use a test sample to get reasonable data from this
* Write an ophyd-async pilatus that is complex enough to allow us to re-arm the pilatus and to set any metadata that may have changed between collections - the beamline already has some scripts for this that we could hack but better to get something in `ophyd-async` if we can
* Test doing the rotation scan again with `bluesky` configuring the detector
* Add the rotation scan as a `per_step` plan on the grid plan

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.