Thanks to the recent multiplication of scientific Python packages in the open-source software landscape, Data Acquisition frameworks (DAQ-Fs) appear as versatile replacements of custom-made or costly commercial solutions. PyMoDAQ is a DAQ-F focusing on easy-to-use graphical user interfaces allowing a simple control and automation of a large variety of experimental setups. Its development included a highly modular structure allowing any experimental data acquisition as a function of multiple varying parameters. It offers numerous additional functionalities: instrument and setup configuration, plotting, saving, logging, etc. Live visual feedback is available at all times to monitor the ongoing experiment. Flexibility of its user interfaces is the key advantage of PyMoDAQ allowing also its integration as the core of more focused applications. Its hierarchical binary format data saving mechanism includes experimental metadata highly compatible with FAIR (Findable, Accessible,Interoperable, Reusable) data. Among the presented characteristics, seven criteria have been chosen to judge the pertinence of PyMoDAQ as a versatile DAQ-F. They are also the basis for a comparison with other existing frameworks highlighting the novelty of PyMoDAQ.

1.
See https://nsls-ii.github.io/ophyd/ for OphyD, Hardware Abstraction Layer.
2.
See https://www.tango-controls.org/ for TANGO Controls, Supervisory Control and Data Acquisition.
3.
See https://yaq.fyi/ for YAQ, Modular and extensible instrument control framework.
4.
N.
Bogdanowicz
,
C.
Rogers
,
zakv
,
J.
Wheeler
,
S.
Pelissier
,
F.
Marazzi
,
eedm
,
I.
Galinskiy
, and
N.
Abril
(
2020
). “
Instrumental
,” Zenodo. 10.5281/zenodo.2556398, https://instrumental-lib.readthedocs.io.
5.

Actions to perform if the experiment is approaching a dangerous configuration during a scan/monitoring, for instance, when reaching too high a laser intensity in an optical experiment, one possible action would be to trigger a switch to block or shut down the laser.

6.
See https://nsls-ii.github.io/bluesky/ for Bluesky, Data Collection Framework.
7.
A.
Arkilic
,
D. B.
Allan
,
T. A.
Caswell
,
L.
Li
,
K.
Lauer
, and
S.
Abeykoon
,
Synchrotron Radiat. News
30
,
44
(
2017
).
8.
See https://pymeasure.readthedocs.io for PyMeasure, Scientific package.
9.

For historical reasons, early actuators (the varying parameters in an experiment) in PyMoDAQ were only moving actuators such as linear or rotation stages, hence DAQ Move.

10.

The plugin is the software layer between the control module GUI and the instrument library.

11.
See https://grafana.com/ for Grafana: The open observability platform.
12.
S. J.
Weber
, PyMoDAQ source code, https://github.com/CEMES-CNRS/PyMoDAQ.
13.
S. J.
Weber
, PyMoDAQ’s documentation, http://pymodaq.cnrs.fr.
14.
See https://www.youtube.com/channel/UC9Yg-Y9TsOL9k55ql1owrXQ for PyMoDAQ’s demonstration video.
15.
See https://doc.qt.io/qt-5/ for Qt5 framework.
17.
L.
Campagnola
, PyQtGraph, Scientific Graphics and GUI Library for Python, http://www.pyqtgraph.org/.
18.
19.
B.
Nijholt
,
J.
Weston
,
J.
Hoofwijk
, and
A.
Akhmerov
(
2019
). “
Adaptive: Parallel active learning of mathematical functions
,” Zenodo. .
21.
F.
de la Peña
,
E.
Prestat
,
V. T.
Fauske
,
P.
Burdet
,
T.
Furnival
,
P.
Jokubauskas
,
M.
Nord
,
T.
Ostasevicius
,
K. E.
MacArthur
,
D. N.
Johnstone
,
M.
Sarahan
,
J.
Lähnemann
,
J.
Taillon
,
pquinn-dls
,
T.
Aarholt
,
V.
Migunov
,
A.
Eljarrat
,
J.
Caron
,
S.
Mazzucco
,
B.
Martineau
,
S.
Somnath
,
T.
Poon
,
M.
Walls
,
T.
Slater
,
actions-user
,
N.
Tappy
,
N.
Cautaerts
,
F.
Winkler
,
G.
Donval
, and
J. C.
Myers
(
2020
). “
Hyperspy library
,” Zenodo. .
22.
See https://epics-controls.org for EPICS, Experimental Physics and Industrial Control System.
23.
See https://nsls-ii.github.io/databroker/ for DataBroker, Data storage and search.
24.
F.
Houdellier
,
G. M.
Caruso
,
S.
Weber
,
M.
Kociak
, and
A.
Arbouet
,
Ultramicroscopy
186
,
128
(
2018
).
25.
G. M.
Caruso
,
F.
Houdellier
,
S.
Weber
,
M.
Kociak
, and
A.
Arbouet
,
Adv. Phys.: X
4
,
1660214
(
2019
).
26.
27.
28.
PyMoDAQ-Femto
,” GitHub. https://github.com/CEMES-CNRS/pymodaq_femto.
29.
PyMoDAQ-Spectro
,” GitHub. https://github.com/CEMES-CNRS/pymodaq_spectro.
30.
PyMoDAQ Plugin Manager
,” GitHub. https://github.com/CEMES-CNRS/pymodaq_plugin_manager.

Supplementary Material

You do not currently have access to this content.