Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write an ophyd-async device against the fastcs eiger #700

Open
DominicOram opened this issue Jul 23, 2024 · 5 comments
Open

Write an ophyd-async device against the fastcs eiger #700

DominicOram opened this issue Jul 23, 2024 · 5 comments
Assignees

Comments

@DominicOram
Copy link
Contributor

DominicOram commented Jul 23, 2024

We would like to move the eiger on to the new fastcs version as well as move our device support to ophd_async. We should do both of these at the same time. You can run a simulated fastcs eiger and odin by running (in separate terminals):

Local Eiger dev deployment:
Make sure you've done https://dev-portal.diamond.ac.uk/guide/containers/tutorials/podman/#enable-use-of-vscode-features

Odin deployment + tickit sim

podman run --rm -it -v /dev/shm:/dev/shm -v /tmp:/tmp --net=host ghcr.io/diamondlightsource/eiger-detector-runtime:1.16.0beta5

Eiger IOC

mkdir /tmp/opi
podman run --rm -it --net=host -v /tmp/opi/:/epics/opi ghcr.io/diamondlightsource/eiger-fastcs:0.1.0beta5 ioc EIGER-$YOUR_HOST_NAME

Odin IOC

podman run --rm -it --net=host -v /tmp/opi/:/epics/opi ghcr.io/diamondlightsource/odin-fastcs:0.2.0beta2 ioc ODIN-$YOUR_HOST_NAME

UI

module load phoebus && phoebus.sh -resource /tmp/opi/eiger.bob -resource /tmp/opi/odin.bob

Additionally, there is already an eigerIOC running on i04 at BL04I-EA-EIGER-02:, see https://diamondlightsource.slack.com/archives/C0176UKVBCK/p1721376023655459

i03 does not yet have the new eiger so we will need the old one around for a while still

Acceptance Criteria

  • There is an ophyd_async eiger device that replicates the same functionality as the current ophyd device
  • This works against the simulator
  • We change i04.py to use this and dodal connect i04 still passes This might be hard as it doesn't have the odin IOC there yet
@DominicOram DominicOram moved this to Candidates for Next Sprint in Hyperion Jul 23, 2024
@DominicOram DominicOram moved this from Candidates for Next Sprint to Todo This Sprint in Hyperion Jul 29, 2024
@DominicOram
Copy link
Contributor Author

@DominicOram
Copy link
Contributor Author

  • Try and mainatin plan level compatibility between this and the old one
  • We think Large

@DominicOram DominicOram self-assigned this Aug 15, 2024
@DominicOram
Copy link
Contributor Author

Gary successfully tested with

caput -S ODIN:FP:DatasetDataCompression BSLZ4
caput -S ODIN:FP:DatasetDataDatatype uint16
caput ODIN:FP:ProcessFramesPerBlock 1000
caput ODIN:FP:ProcessBlocksPerFile 1
caput -S ODIN:FP:ConfigHdfFilePath /tmp
caput -S ODIN:FP:ConfigHdfFilePrefix test
caput ODIN:FP:ConfigHdfFrames 3600
caput ODIN:FP:ConfigHdfWrite 1

caput -S EIGER:TriggerMode ints
caput -S EIGER:HeaderDetail all
caput EIGER:Nimages 3600
caput EIGER:FrameTime 0.01
caput EIGER:CountTime 0.0099
caput EIGER:Arm 1

caput EIGER:Trigger 1

@DominicOram
Copy link
Contributor Author

From discussion with Gary:

  • The new IOCs bare no relation to AreaDetector
  • This is hopefully cross-facility so put in ophyd-async
  • Deployed on i04 is just the new eiger IOC, not the new odin one

@DominicOram
Copy link
Contributor Author

Initial MVP completed in bluesky/ophyd-async#528. A number of spin off issues were made https://github.com/bluesky/ophyd-async/issues?q=is%3Aissue+is%3Aopen+eiger. I'm going to leave this issue here to track it from the downstream perspective but waiting on others to do bluesky/ophyd-async#405 and bluesky/ophyd-async#551 before continuing the work

@DominicOram DominicOram moved this from In Progress to Blocked in Hyperion Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

1 participant