DiamondLightSource / DiamondLightSource/mx-bluesky

Grid scans: Allow using different X params for each grid

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

Description

(Relevant after https://github.com/DiamondLightSource/mx-bluesky/pull/1623 is merged)

Gridscans can now be done with an arbitary number of grids. Each grid is 2D and does x steps by y steps. After each grid, there is an omega rotation before the next X by Y grid is done.

Ideally, we'd be able to specify an arbitary number of each of these parameters for each grid: X steps, Y steps, X step size, Y step size, X start, Y start. Due to how MX panda grid scans currently work (see details below), each of the X parameters must be the same for each grid.

We should change this so that each grid can have any number for the X parameters.

Technical details:
The panda currently uses the X parameters to construct its sequencer table values. In a "grid detect then XRC" plan, this step is done once - after grid detect and before grid scans. The panda uses X start , X steps and X step size along with smargon encoder values to know when to send triggers to the detector. It doesn't need any information about the Y parameters, and the sequencer table config doesn't change between grids. If we have different X parameters, we need to do panda setup in between grids. The panda actually has two different sequencer tables available to it, so to do this at the maximum throughput, we should:
- While grid 1 is scanning, setup SEQ2 in preparation for grid 2
- After grid 1, wait for setup to be done (it should be immediately). Then while grid 2 is scanning, setup grid 3 on SEQ1

## Acceptance Criteria
- Each grid in a gridscan can have independent X parameters

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.