Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
8eae376
WIP-Updates-some-imports-and-names
Mar 13, 2026
5032bdf
Update trigger logic
oliwenmandiamond Mar 16, 2026
04bf4bc
Remove Merlin device as it is now in ophyd-async
oliwenmandiamond Mar 16, 2026
7e123b4
Fix b16
oliwenmandiamond Mar 16, 2026
f4905df
Shorten imports
oliwenmandiamond Mar 16, 2026
b4e30c5
Convert Tetramm detector
oliwenmandiamond Mar 17, 2026
18be4d3
update electron analyser
oliwenmandiamond Mar 19, 2026
ff134e4
Remove commissioning junfrau
jacob720 Mar 20, 2026
cd0b977
Merge branch 'main' into update_dodal_ophyd_async_v0.17a1
jacob720 Mar 20, 2026
5a537af
Merge branch 'main' into update_dodal_ophyd_async_v0.17a1
oliwenmandiamond Mar 24, 2026
f1898e4
Add electron analyser detector logic
oliwenmandiamond Mar 24, 2026
42d530e
remove _get_value
oliwenmandiamond Mar 24, 2026
ec05021
Finish up tests for electron analyser
oliwenmandiamond Mar 24, 2026
4caf908
Merge branch 'update_dodal_ophyd_async_v0.17a1' of ssh://github.com/D…
oliwenmandiamond Mar 24, 2026
4e67f7d
Merge branch 'main' into update_dodal_ophyd_async_v0.17a1
oliwenmandiamond Mar 24, 2026
b591802
Update p99 to use AndorDetector rather than Andor2Detector
oliwenmandiamond Mar 24, 2026
6e75e67
Update b21
oliwenmandiamond Mar 24, 2026
75fb732
Fix beamlines
oliwenmandiamond Mar 24, 2026
55c424c
Update i19-2
oliwenmandiamond Mar 24, 2026
060c029
Fix mythen
oliwenmandiamond Mar 24, 2026
bad5706
Fix i22 saxs test
oliwenmandiamond Mar 25, 2026
fcef657
Remove i24 import CommissioningJungfrau
oliwenmandiamond Mar 25, 2026
5c3cac2
Attempt to fix dodal plans for eiger
oliwenmandiamond Mar 25, 2026
c16100d
Update electron analyser detector doc string
oliwenmandiamond Mar 25, 2026
a1ee402
Correct eiger plan
oliwenmandiamond Mar 30, 2026
8239941
partial test conversion
oliwenmandiamond Mar 31, 2026
7a8814a
tests: amend fastcs eiger test to use new signals
shihab-dls Apr 22, 2026
df4a1c0
chore: marge main into update_dodal_ophyd_async_v0.17a1
shihab-dls Apr 22, 2026
3417ce1
tests: amend pattern generator in conftest
shihab-dls Apr 28, 2026
ce542ed
chore: bump ophyd-async version
shihab-dls Apr 28, 2026
cd04a65
Merge branch 'main' into update_dodal_ophyd_async_v0.17a1
shihab-dls Apr 28, 2026
6934ce2
test: amend test assertion and mock tetram
shihab-dls Apr 28, 2026
59782f4
tests: relax test shutter type signature
shihab-dls Apr 28, 2026
5e44062
tests: add tiff and tetram tests to fix codecov
shihab-dls Apr 28, 2026
07582fa
Merge branch 'update_dodal_ophyd_async_v0.17a1' of ssh://github.com/D…
oliwenmandiamond Apr 29, 2026
32e05ec
Remove commented out code
oliwenmandiamond Apr 29, 2026
26e4fe1
Fix eiger PV prefixes
DominicOram May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ description = "Ophyd devices and other utils that could be used across DLS beaml
dependencies = [
"click",
"ophyd",
"ophyd-async[ca,pva]>=v0.16.0",
"ophyd-async[ca,pva]>=v0.17a4",
"bluesky>=1.14.5",
"pyepics",
"pillow",
Expand Down
4 changes: 2 additions & 2 deletions src/dodal/beamlines/adsim.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,6 @@ def det(path_provider) -> SimDetector:
return SimDetector(
f"{PREFIX.beamline_prefix}-DI-CAM-01:",
path_provider=path_provider,
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=DET_SUFFIX,
writer_suffix=HDF5_SUFFIX,
)
8 changes: 4 additions & 4 deletions src/dodal/beamlines/b01_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ def spectroscopy_detector(path_provider: PathProvider) -> AravisDetector:
return AravisDetector(
pv_prefix,
path_provider=path_provider,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=CAM_SUFFIX,
writer_suffix=HDF5_SUFFIX,
plugins={
"roistat": NDROIStatIO(f"{pv_prefix}ROISTAT:", num_channels=3),
},
Expand All @@ -108,8 +108,8 @@ def imaging_detector(path_provider: PathProvider) -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-DI-DCAM-01:",
path_provider=path_provider,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=CAM_SUFFIX,
writer_suffix=HDF5_SUFFIX,
)


Expand Down
13 changes: 3 additions & 10 deletions src/dodal/beamlines/b16.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
from pathlib import Path

from ophyd_async.epics.adcore import (
AreaDetector,
)
from ophyd_async.epics.adcore import AreaDetector
from ophyd_async.epics.motor import Motor

from dodal.common.beamlines.beamline_utils import (
device_factory,
set_path_provider,
)
from dodal.common.beamlines.beamline_utils import device_factory, set_path_provider
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
from dodal.devices.beamlines.b16.detector import (
software_triggered_tiff_area_detector,
)
from dodal.devices.beamlines.b16.detector import software_triggered_tiff_area_detector
from dodal.devices.motors import XYZStage
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import BeamlinePrefix, get_beamline_name
Expand Down
20 changes: 8 additions & 12 deletions src/dodal/beamlines/b21.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,21 @@ def path_provider() -> PathProvider:
return StaticPathProvider(UUIDFilenameProvider(), Path("/tmp"))


@devices.factory()
# Needs the fastCS Eiger/odin, see https://jira.diamond.ac.uk/browse/B21-330
@devices.factory(skip=True)
def saxs(path_provider: PathProvider) -> EigerDetector:
return EigerDetector(
prefix=PREFIX.beamline_prefix,
prefix=f"{PREFIX.beamline_prefix}-EA-EIGER-01:",
path_provider=path_provider,
drv_suffix="-EA-EIGER-01:",
hdf_suffix="-EA-EIGER-01:OD:",
odin_nodes=1,
)


@devices.factory()
# Needs the fastCS Eiger/odin, see https://jira.diamond.ac.uk/browse/B21-330
@devices.factory(skip=True)
def waxs(path_provider: PathProvider) -> EigerDetector:
return EigerDetector(
prefix=PREFIX.beamline_prefix,
prefix=f"{PREFIX.beamline_prefix}-EA-EIGER-02:",
path_provider=path_provider,
drv_suffix="-EA-EIGER-02:",
hdf_suffix="-EA-EIGER-02:OD:",
odin_nodes=1,
)


Expand Down Expand Up @@ -142,8 +138,8 @@ def wbscam(path_provider: PathProvider) -> AravisDetector:
)
return NXSasOAV(
prefix=f"{PREFIX.beamline_prefix}-RS-ABSB-02:CAM:",
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=CAM_SUFFIX,
writer_suffix=HDF5_SUFFIX,
path_provider=path_provider,
metadata_holder=metadata_holder,
)
Expand Down
8 changes: 4 additions & 4 deletions src/dodal/beamlines/i03.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,13 +186,13 @@ def eiger(eiger: EigerDetector) -> EigerDetector:
return eiger


@devices.factory()
# ophyd-async no longer works with a mixed ADOdin and fastCS Eiger. Need to update the
# beamline to use a fastCS Odin and Eiger
@devices.factory(skip=True)
def fastcs_eiger(path_provider: PathProvider) -> FastEiger:
return FastEiger(
prefix=PREFIX.beamline_prefix,
prefix=f"{PREFIX.beamline_prefix}-EA-EIGER-02:",
path_provider=path_provider,
drv_suffix="-EA-EIGER-02:",
hdf_suffix="-EA-EIGER-01:OD:",
)


Expand Down
5 changes: 3 additions & 2 deletions src/dodal/beamlines/i11.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,15 @@ def path_provider() -> PathProvider:
return StaticPathProvider(UUIDFilenameProvider(), Path("/tmp"))


@devices.factory()
# Mythen detector state does not match ophyd-async see https://jira.diamond.ac.uk/browse/I11-916
@devices.factory(skip=True)
def mythen3(path_provider: PathProvider) -> Mythen3:
"""Mythen3 Detector from PSI."""
return Mythen3(
prefix=f"{PREFIX.beamline_prefix}-EA-DET-07:",
path_provider=path_provider,
drv_suffix=DET_SUFFIX,
fileio_suffix="HDF:",
writer_suffix="HDF:",
)


Expand Down
14 changes: 7 additions & 7 deletions src/dodal/beamlines/i13_1.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pathlib import Path

from ophyd_async.epics.adaravis import AravisDetector
from ophyd_async.epics.admerlin import MerlinDetector

from dodal.common.beamlines.beamline_utils import (
device_factory,
Expand All @@ -9,7 +10,6 @@
)
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
from dodal.devices.beamlines.i13_1.merlin import Merlin
from dodal.devices.motors import XYZStage
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import BeamlinePrefix, get_beamline_name
Expand Down Expand Up @@ -42,17 +42,17 @@ def sample_xyz_lab_fa_stage() -> XYZStage:
def side_camera() -> AravisDetector:
return AravisDetector(
prefix=f"{PREFIX}-OP-FLOAT-03:",
drv_suffix="CAM:",
fileio_suffix="HDF5:",
driver_suffix="CAM:",
writer_suffix="HDF5:",
path_provider=get_path_provider(),
)


@device_factory()
def merlin() -> Merlin:
return Merlin(
def merlin() -> MerlinDetector:
return MerlinDetector(
prefix=f"{PREFIX}-EA-DET-04:",
drv_suffix="CAM:",
fileio_suffix="HDF5:",
path_provider=get_path_provider(),
driver_suffix="CAM:",
writer_suffix="HDF5:",
)
1 change: 0 additions & 1 deletion src/dodal/beamlines/i18.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ def i0() -> TetrammDetector:
return TetrammDetector(
f"{PREFIX.beamline_prefix}-DI-XBPM-02:",
path_provider=get_path_provider(),
type="Cividec Diamond XBPM",
)


Expand Down
4 changes: 1 addition & 3 deletions src/dodal/beamlines/i19_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,8 @@ def diffractometer() -> FourCircleDiffractometer:
@devices.factory()
def eiger(path_provider: PathProvider) -> EigerDetector:
return EigerDetector(
prefix=PREFIX.beamline_prefix,
prefix=f"{PREFIX.beamline_prefix}-EA-EIGER-01:",
path_provider=path_provider,
drv_suffix="-EA-EIGER-01:",
hdf_suffix="-EA-EIGER-01:OD:",
)


Expand Down
36 changes: 11 additions & 25 deletions src/dodal/beamlines/i22.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
UUIDFilenameProvider,
)
from ophyd_async.epics.adaravis import AravisDetector
from ophyd_async.epics.adcore import NDPluginBaseIO, NDPluginStatsIO
from ophyd_async.epics.adcore import NDPluginBaseIO, NDStatsIO
from ophyd_async.epics.adpilatus import PilatusDetector
from ophyd_async.fastcs.panda import HDFPanda

Expand Down Expand Up @@ -76,13 +76,11 @@ def saxs(path_provider: PathProvider) -> PilatusDetector:
return NXSasPilatus(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:",
path_provider=path_provider,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=CAM_SUFFIX,
writer_suffix=HDF5_SUFFIX,
metadata_holder=metadata_holder,
plugins={
"stats": NDPluginStatsIO(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:STAT:"
)
"stats": NDStatsIO(prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:STAT:")
},
)

Expand All @@ -106,13 +104,11 @@ def waxs(path_provider: PathProvider) -> PilatusDetector:
return NXSasPilatus(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-03:",
path_provider=path_provider,
drv_suffix=CAM_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=CAM_SUFFIX,
writer_suffix=HDF5_SUFFIX,
metadata_holder=metadata_holder,
plugins={
"stats": NDPluginStatsIO(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-03:STAT:"
)
"stats": NDStatsIO(prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-03:STAT:")
},
)

Expand All @@ -122,12 +118,7 @@ def i0(path_provider: PathProvider) -> TetrammDetector:
return TetrammDetector(
prefix=f"{PREFIX.beamline_prefix}-EA-XBPM-02:",
path_provider=path_provider,
type="Cividec Diamond XBPM",
plugins={
"stats": NDPluginBaseIO(
prefix=f"{PREFIX.beamline_prefix}-EA-XBPM-02:SumAll:"
)
},
plugins=[NDPluginBaseIO(prefix=f"{PREFIX.beamline_prefix}-EA-XBPM-02:SumAll:")],
)


Expand All @@ -136,12 +127,7 @@ def it(path_provider: PathProvider) -> TetrammDetector:
return TetrammDetector(
prefix=f"{PREFIX.beamline_prefix}-EA-TTRM-02:",
path_provider=path_provider,
type="PIN Diode",
plugins={
"stats": NDPluginBaseIO(
prefix=f"{PREFIX.beamline_prefix}-EA-TTRM-02:SumAll:"
)
},
plugins=[NDPluginBaseIO(prefix=f"{PREFIX.beamline_prefix}-EA-TTRM-02:SumAll:")],
)


Expand Down Expand Up @@ -282,8 +268,8 @@ def oav(path_provider: PathProvider) -> AravisDetector:
)
return NXSasOAV(
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=DET_SUFFIX,
writer_suffix=HDF5_SUFFIX,
path_provider=path_provider,
metadata_holder=metadata_holder,
)
Expand Down
4 changes: 2 additions & 2 deletions src/dodal/beamlines/i23.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ def pilatus(path_provider: PathProvider) -> PilatusDetector:
return PilatusDetector(
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:",
path_provider=path_provider,
drv_suffix="cam1:",
fileio_suffix=HDF5_SUFFIX,
driver_suffix="cam1:",
writer_suffix=HDF5_SUFFIX,
)


Expand Down
14 changes: 6 additions & 8 deletions src/dodal/beamlines/i24.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from daq_config_server import ConfigClient
from ophyd_async.core import AutoMaxIncrementingPathProvider, PathProvider
from ophyd_async.fastcs.jungfrau import JungfrauDetector

from dodal.common.beamlines.beamline_utils import BL, set_config_client
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
Expand All @@ -16,7 +17,6 @@
from dodal.devices.beamlines.i24.aperture import Aperture
from dodal.devices.beamlines.i24.beam_center import DetectorBeamCenter
from dodal.devices.beamlines.i24.beamstop import Beamstop
from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau
from dodal.devices.beamlines.i24.dcm import DCM
from dodal.devices.beamlines.i24.dual_backlight import DualBacklight
from dodal.devices.beamlines.i24.focus_mirrors import FocusMirrorsMode
Expand Down Expand Up @@ -154,16 +154,14 @@ def eiger_beam_center() -> DetectorBeamCenter:


@devices.factory()
def commissioning_jungfrau(
def jungfrau(
path_provider: PathProvider,
) -> CommissioningJungfrau:
"""Get the commissionning Jungfrau 9M device, which uses a temporary filewriter
device in place of Odin while the detector is in commissioning.
"""
return CommissioningJungfrau(
) -> JungfrauDetector:
return JungfrauDetector(
f"{PREFIX.beamline_prefix}-EA-JFRAU-01:",
f"{PREFIX.beamline_prefix}-JUNGFRAU-META:FD:",
AutoMaxIncrementingPathProvider(path_provider),
"CAM:",
"OD:",
)


Expand Down
12 changes: 6 additions & 6 deletions src/dodal/beamlines/p38.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ def d3() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-DI-DCAM-01:",
path_provider=get_path_provider(),
drv_suffix="DET:",
fileio_suffix=HDF5_SUFFIX,
driver_suffix="DET:",
writer_suffix=HDF5_SUFFIX,
)


Expand All @@ -67,8 +67,8 @@ def d11() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-DI-DCAM-03:",
path_provider=get_path_provider(),
drv_suffix="DET:",
fileio_suffix=HDF5_SUFFIX,
driver_suffix="DET:",
writer_suffix=HDF5_SUFFIX,
)


Expand All @@ -77,8 +77,8 @@ def d12() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-DI-DCAM-04:",
path_provider=get_path_provider(),
drv_suffix="DET:",
fileio_suffix=HDF5_SUFFIX,
driver_suffix="DET:",
writer_suffix=HDF5_SUFFIX,
)


Expand Down
8 changes: 4 additions & 4 deletions src/dodal/beamlines/p45.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ def det() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-EA-MAP-01:",
path_provider=get_path_provider(),
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=DET_SUFFIX,
writer_suffix=HDF5_SUFFIX,
)


Expand All @@ -56,8 +56,8 @@ def diff() -> AravisDetector:
return AravisDetector(
f"{PREFIX.beamline_prefix}-EA-DIFF-01:",
path_provider=get_path_provider(),
drv_suffix=DET_SUFFIX,
fileio_suffix=HDF5_SUFFIX,
driver_suffix=DET_SUFFIX,
writer_suffix=HDF5_SUFFIX,
)


Expand Down
Loading