A structured overview over Python lab automation packages.

Presentation improvements are WIP.

Name Description Link License Activity Version Project focus Test framework Communication types Transport layers Procedures? GUI? GUI library Units? Unit library Instrument categories? Remarks Collected by
hardware-control Python framework to control hardware; includes device drivers for supported hardware and QT5-based GUI widgets repo BSD-3-Clause-LBNL

rather a new project

@dominecf
pymodaq simplifies the interaction with detector and actuator hardware to go straight to the data acquisition repo CeCILL-B Last commit commits/yr Last tag Last (pre)release date
Experimentor flexible package for experiment control and automation repo Last commit commits/yr Last tag Last (pre)release date
i3py repo Last commit commits/yr Last tag Last (pre)release date pint

evolved from Lantz

nidaqmx-python repo Last commit commits/yr Last tag Last (pre)release date
Crappy software canvas for developing experimental tests in a versatile and accessible way repo Last commit commits/yr Last tag Last (pre)release date
Instrumental controlling lab hardware repo /docs Last commit commits/yr Last tag Last (pre)release date cameras, DAQs, oscilloscopes, spectrometers, and more VISA, serial, NiceLib/cffi, ... pint

Facets similar to lantz feats, nice object-oriented autodetection

bluesky A data collection interface; or an experiment specification and orchestration engine repo /docs Last commit commits/yr Last tag Last (pre)release date end-to-end data acquisition and analysis solution that leverages data science libraries pytest @bilderbuchi
pyLabLib device control and experiment automation repo /docs GPL-3.0 Last commit commits/yr Last tag Last (pre)release date
micro-manager GUI that communicates with microscope equipment through a device abstraction layer repo BSD / LGPL Last commit commits/yr Last tag Last (pre)release date automated microscopes DLL, COM java

this repo describes ongoing plans for an overhaul of the hardware interface side

Qcodes Scientific measurement library for instruments, experiments, and live-plotting and saving results repo Last commit commits/yr Last tag Last (pre)release date qbits unittest
openhtf The open-source hardware testing framework. repo Apache 2.0 Web @doingbla
Salve micro framework designed to simplify instrument communication and control repo GPL Last commit commits/yr Last tag Last (pre)release date
labdrivers Python package for controlling laboratory equipment (mostly with GPIB) repo /docs MIT Last commit commits/yr Last tag Last (pre)release date pytest VISA, GPIB, TCP/IP @pbnjeff89
ssmdevices a library of python instrument driver wrappers implemented in labbench (mostly for RF and communication testing) repo /docs NIST (https://github.com/usnistgov/ssmdevices/blob/master/LICENSE.md) Last commit commits/yr Last tag Last (pre)release date Library of instrument and lab equipment driver wrappers, mostly dealing with RF and communication pytest visa, telnet, subprocesses, custom API visa/ivi (via pyvisa), serial, usbhid, telnet Dan Kuester <daniel.kuester@nist.gov>
qudi tools for operating multi-instrument and multi-computer laboratory experiments repo Last commit commits/yr Last tag Last (pre)release date
test framework repo
Communication layer micro framework designed to simplify instrument communication repo
Lantz automation and instrumentation toolkit repo /docs BSD-3? Last commit commits/yr Last tag Last (pre)release date unittest messagebased, dll PyVisa,pyserial, PyGPIB, usbtmc Qt pint

old repo

@bilderbuchi
pico-python Python library for PicoTech Picoscope oscilloscopes repo MIT Last commit commits/yr Last tag Last (pre)release date Python wrapper for the Picoscope dll DLL USB

Requires the driver of the manufacturer, available for Windows, Mac, Linux

@bmoneke
ScopeFoundry platform for controlling custom laboratory experiments and visualizing scientific data repo /docs BSD 3-Clause Last commit commits/yr Last tag Last (pre)release date @dominecf
pyLabInstruments wrapper around instruments controlled via usb or serial interface repo N/A Last commit commits/yr Last tag Last (pre)release date Agilent 3320A + Tektronix TPS2024B
measureSequences focus on Quantum Design Sequence file parsing and running, totally abstract repo Last commit commits/yr Last tag Last (pre)release date Abstract software Sequence parsing/running scheme pyQt

Does not do hardware communication

PyTrinamic Python package for TRINAMIC motor cards repo MIT Last commit commits/yr Last tag Last (pre)release date Python API for TINAMIC modules proprietary protocol USB, RS232, RS485, CAN, RTMI @bmoneke
labbench base library for python laboratory automation to simplify the process of developing an experimental procedure into clear, concise, explainable, and reusable code repo /docs NIST (https://github.com/usnistgov/labbench/blob/master/LICENSE.md) Last commit commits/yr Last tag Last (pre)release date Supporting library for development of instrument libraries and automation scripts pytest visa, telnet, subprocesses, custom visa/ivi (via pyvisa), serial, usbhid, telnet

object-oriented abstraction approach

Dan Kuester <daniel.kuester@nist.gov>
Ophyd Python/EPICS-based device abstraction (in the future also other protocols) repo /docs Last commit commits/yr Last tag Last (pre)release date A hardware abstraction layer pytest @bilderbuchi
PyGMI can take measurements with instruments connected over GPIB, RS232, ethernet or USB using Pyvisa and PySerial repo Last commit commits/yr Last tag Last (pre)release date
Atomize A modular open source software for working with scientific devices and combining them into spectrometer. repo MIT Last commit commits/yr Last tag Last (pre)release date working with scientific devices and combining them into spectrometer @FilipDominec
pyserial repo low-level library
Pyvisa A Python package with bindings to the "Virtual Instrument Software Architecture" VISA library. repo /docs MIT Last commit commits/yr Last tag Last (pre)release date low-level library
pyinstruments central reference point - documentation only repo Last commit commits/yr Last tag Last (pre)release date
home assistant Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. repo /docs Apache License 2.0 Last commit commits/yr Last tag Last (pre)release date non-scientific hardware
Qtlab code to simplify computer-controlled measurements. It provides some basic GUI functionality and makes scripting quite easy. repo Last commit commits/yr Last tag Last (pre)release date
python-ivi repo Last commit commits/yr Last tag Last (pre)release date low-level library
Pymeasure Scientific measurement library for instruments, experiments, and live-plotting repo /docs MIT Last commit commits/yr Last tag Last (pre)release date pytest Serial, GPIB-USB, VISA Qt @bilderbuchi
taurus-scada control and data acquisition CLIs and GUIs in scientific/industrial environments repo LGPL Last commit commits/yr Last tag Last (pre)release date @bruyant
Cryostat-GUI Scientific measurement library for instruments, experiments, live-plotting, saving results repo MIT Last commit commits/yr Last tag Last (pre)release date pyvisa (GPIB, serial) pyQt

currently rather specific, just recently reinvented the wheel…

PyMeasRF Drivers for some RF related test equipment repo MIT Last commit commits/yr Last tag Last (pre)release date @dominecf
Auspex running physics experiments repo Last commit commits/yr Last tag Last (pre)release date
InstrumentKit Python package for interacting with laboratory equipment over various buses. repo /docs AGPL-v3 Last commit commits/yr Last tag Last (pre)release date Connection- and vendor-agnostic API for instruments pytest messagebased,...(?) Serial, GPIB-USB, sockets, VISA, unix files, usbtmc, vxi11 over ethernet pint @bilderbuchi
yaq Yet Another AcQuisition repo /docs LGPL-3.0 @dominecf
ITOM open source software suite for operating measurement systems, laboratory automation and data evaluation repo
PLACE open-source (P)ython package for (L)aboratory (A)utomation, (C)ontrol, and (E)xperimentation repo /docs LGPL-3.0 Last commit commits/yr Last tag Last (pre)release date
Pythics used for simple interfaces to laboratory instrument or numerical simulations repo Last commit commits/yr Last tag Last (pre)release date
Fixate library for testing real stuff repo Last commit commits/yr Last tag Last (pre)release date
PyExpLabSys This project contains various python code useful in experimental labs, such as equipment drivers, data logging and network data exchange components. repo /docs GPL-3.0 License Last commit commits/yr Last tag Last (pre)release date
JISA Standardised instrument control, data handling and simple GUI creation library for making experiment control programs. repo AGPL-3.0 Last commit commits/yr Last tag Last (pre)release date n/a

intended as LabView replacement

FilipDominec
acq4 for patch clamp ephys / optogenetics / imaging experiments in neurophysiology repo /docs MIT Last commit commits/yr Last tag Last (pre)release date @dominecf
pylabinstrument N/A repo N/A Last commit commits/yr Last tag Last (pre)release date mostly optics

Note: The original version of the table lived at https://ethercalc.net/1anmq248ktu6