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 2025-11-17 08:00:39