This post is a roundup of open source hardware control projects that I know of. Each of these projects allows users to communicate with instrumental hardware.

project notes
acq4 Python. Neurophysiology. Built on ZeroMQ.
andor3 Python. Interface to Andor camera devices.
Auspex Python.
Basil Python and Verilog. Implements low-level serial standards.
Bluesky Python. The future, I hope.
comedi Linux kernal drivers.
CRAPPY Python.
Cryostat-GUI Python.
Daiquri A web-based framework for data acquisition.
DAQari DAQ software using WebSerial & FileSystem Access API's.
DataLog Python. For PicoTech "PicoLog" hardware.
datalogd Python. Datalogging daemon with some sensor support.
deepthought Python. Example interface to Bluesky from MicroManager.
devicely Python. Health sensor data.
DOOCS Multilingual framework from DESY. Hardware support.
EPICS Multilingual framework. Supported hardware.
Exopy Python.
GDA Generic data acquisiton. Some sort of framework.
Experimentor Python. Opinionated, clean. By python for the lab team.
Hardware-Control Python. See JOSS review.
Home Assistant Huge project with a lot of Python-based hardware support.
IIO Linux subsystem with impressive sensor support.
Instrbuilder Python, Bluesky. See JOSS and IEEE papers.
Instrumental Python. Supported hardware.
InstrumentKit Python. Just a collection of hardware enablement classes.
ImSwitch Python. Supported hardware.
itom C++ with Python scripting. Supported hardware.
Karabo Multilingual framework from XFEL. See publication.
labdrivers Python.
LabThings Python. Originally for microscope.
Lantz Python. Project seems to be on life support.
libiio C. Library for interfacing with IIO devices.
LinuxCNC Lots of motor support, driven by gcode.
magdynlab Python. Brazilian Center for Physics Research.
micro-manager C++. Impressive, see whitepaper and class reference.
Mjolnir Python. IoT architecture for scientific sensor networks.
MX Full data acquisition and control system.
MXCuBE Python. Macromolecular Xtal Custom Beamline Environment.
nidaqmx-python Official Python API for interacting with NI-DAQmx.
nimi-python Official Python API for NI Modular Drivers.
picosdk-python Python. Official support for PicoScope devices.
PLACE Python.
Py-Hardware-Support Python. Small project implementing a few camera drivers.
pyacq Python. Built on ZeroMQ.
pyadi-iio Python. For IIO hardware from Analog Devices.
Pychron Python. Focus on noble gas mass spectrometry.
pycomedi Python. Interface to comedi
PyDAQmx Python. Interface to NI DAQmx.
PyFixate Python.
PyMeasure Python. Supported hardware. Large community.
PyMoDAQ Python. Developed within French CNRS. Seems popular.
Pythics Python.
python-ivi Python. Classes defined by IVI foundation.
python-microscopy Python. Supported hardware.
python-seabreeze Python. Interface to Ocean Optics spectrometers.
python-usbtmc Python. Pure Python USBTMC driver.
PyVISA Python. VISA.
React AS React automation studio, GUI for EPICS.
REP-instrumentat... Python. Collection of hardware enablement classes.
Qcodes Python. Supported hardware.
Qudi Python. Spectroscopy focused.
QTLab Python. Inspiration for Qcodes.
Sardana Supervision, Control and Data Acquisition.
ScopeFoundry Python. Ducktyped extensible hardware interface.
SFGacquisition Python. Small group project, abandoned.
storm-control Python. Monolithic software for STORM experiments.
Subdue Python. Supported hardware
TACO Parent of Tango
Tango Multilingual framework. "500+ device classes".
thorpy Python. Thorlabs APT serial interface.
thorlabs_apt Python. Thorlabs APT dll interface.
thorlabs-apt-prot.. Python. Thorlabs APT serial interface, sans I/O.
TRSpectrometer Python. Time-resolved spectroscopy focus.
usbq A Python-based framework for monitoring USB.
Virgo Python. Radio astronomy. Built on top of GNU Radio.
Xi-CAM Plugin based GUI framework with synchotron focus.
yaq Multilingual framework. Built with love by me šŸ„°!
Zorg Python. Framework for robotics with hardware abstraction.

The folks at LabPy are maintaining their own catalog.

The folks over at python-data-acquisition also have a list of existing-packages.

PyInstruments is a central reference point for the various Python-based experimental data collection frameworks.

Readers may also be interested in EPICS: A Control System Software Co-Development Success Story.

Readers may also be interested in the Open Process Automationā„¢ Forum.

built 2023-10-05 02:00:03

CC0: no copyright (source)