Python projects for controlling instruments

There are many third party python projects that can be used to communicate with scientific instruments and technical equipment. Here, we would like to present a compilation of such packages and drivers, which can be used to create measurement programs with python.

Instrument Drivers

PyMeasureWebsiteCodePyPI
PyMeasure DevelopersDrivers for several scientific instruments
PyExpLabSysWebsiteCode
Surface Physics & Catalysis (SurfCat) – Technical University of DenmarkDrivers for several scientific instruments
pyhard2WebsiteCode
Mathisa Laurin Drivers for several scientific instruments
pyHegelCode
Christian LupienDrivers for several scientific instruments
AutolabWebsiteCodePyPI
Quentin Chateiller and Bruno GarbinDrivers for several scientific instruments
InstrumentKitWebsiteCodePyPI
Steven CasagrandeDrivers for several scientific instruments
python-iviCodePyPI
Alex Forencich, Christopher Johnson, Jeff Wurzbach Drivers for several scientific instruments
slaveCodePyPI
Marco HalderDrivers for several scientific instruments
Measurement-automation-tools Code
John BangsundDrivers for several scientific instruments
Labber driversCode
Lab Control Software Scandinavia ABDrivers for several scientific instruments
pyinstrumentCodePyPI
Samuel DelegliseDrivers for several scientific instruments
Mason lab labdriversCodePyPI
Mason GroupDrivers for several scientific instruments
QCoDeSWebsiteCodePyPI
Microsoft Corporation and Københavns Universitet Drivers for several scientific instruments
Scikit-rfWebsiteCodePyPI
Alexander Arsenovic, scikit-rf DevelopersToolkit for RF measurements
AuspexCodePyPI
Raytheon BBN Technologies - Quantum GroupDrivers for several scientific instruments
hardware-controlCodePyPI
Lawrence Berkeley National LaboratoryDrivers for several scientific instruments
labdevicesCodePyPI
Julian KrauthDrivers for several scientific instruments
LabEXTCode
Institute of Electromagnetic Fields, ETH ZurichDrivers for several scientific instruments
LabToolKitCodePyPI
David A LuttonDrivers for several scientific instruments
pyLabLibWebsiteCodePyPI
Alexey ShkarinDrivers for several scientific instruments
PyXperimentCodePyPI
Stanislau PiatrushaDrivers for several scientific instruments
InstrumentalWebsiteCodePyPI
Nate BogdanowiczDrivers for several scientific instruments
PyMoDAQWebsiteCodePyPI
Sébastien WeberModular data acquisition framework and instrument drivers
QudiWebsiteCodePyPI
Several contributors, mainly from university UlmA modular laboratory experiment management suite
photonmoverCode
Marc de Cea Falco and contributorsA framework for developing control interfaces for scientific instruments
NOMAD-CAMELSWebsiteCodePyPI
NOMAD CAMELS team from FAU ErlangenA framework for controlling scientific instruments

Interface Libraries

pyvisaWebsiteCodePyPI
PyVISA Authors and contributorsStandard library to use visa runtime.
pyserialWebsiteCodePyPI
Chris LiechtiStandard library for COM port communication
python-canWebsiteCodePyPI
Several contributors (see github)Library for CAN bus
python-opcuaWebsiteCodePyPI
Olivier Roulet-Dubonnet and othersLibrary for OPC UA
MinimalModbusWebsiteCodePyPI
Jonas BergLibrary for Modbus
PyModbusWebsiteCodePyPI
Galen CollinsLibrary for using Modbus
PyBluezWebsiteCodePyPI
Albert Haung and contributorsLibrary for using bluetooth
pythonnetWebsiteCodePyPI
The Python for .Net developersLibrary for loading .NET dlls
python-usbtmcWebsiteCodePyPI
Alex ForencichLibrary for using USBTMC without visa runtime
python-snap7WebsiteCodePyPI
Gijs Molenaar and contributorsLibrary for Siemens S7 or Siemens Logo8!
pywin32CodePyPI
Mark Hammond (et al)Library for Win32. It can be used to communicate with instruments that are controlled by a software that supports a DDE/COM/ActiveX interface.
prologix-gpib-ethernetCode
Nelson Darkwah OppongLibrary to interface with Prologix adapters

Manufacturer Packages

Lake Shore Cryotronics – lakeshoreWebsiteCodePyPI
MIT Licensecollection of python drivers for Lake Shore instruments
MPI corporation – SentioProberDevCode
BSD-2-Clause Licensepython library for controlling a Sentio prober
Basler – pypylonCodePyPI
BSD-3-Clause Licensepython wrapper for Basler pylon Camera Software Suite.
Zurich Instruments – zhinstCodePyPI
MIT Licensepackage zhinst with API for LabOne
Bronkhorst – bronkhorst-proparWebsiteCodePyPI
MIT Licensepackage propar for mass-flow controller
Rohde&Schwarz – RsInstrumentWebsiteCodePyPI
MIT Licensepackage for R&S instruments
Zaber Technologies Inc. – zaber-motionWebsiteCodePyPI
Apache 2.0 Licensepackage for motor controllers
Trinamic – PyTrinamicCodePyPI
MIT Licensepackage for motor controllers
B&K PrecisionCode
Appache 2.0 Licensepackage for B&K instruments
PCOWebsitePyPI
MIT Licensepackage for PCO cameras
DOBOTCode
MIT Licensepackage for DOBOT robots
SensirionCode
BSD-3-Clause Licensepackages for Sensirion sensors
Labjack – labjack-ljmWebsiteCodePyPI
MIT Licensepackage for Labjack devices
iDS – pyueyeWebsitePyPI
BSD Licensepackage for iDS cameras
Physik Instrumente – PIPythonWebsiteCodePyPI
Other/Proprietary licensepackage for controlling positioning stages
Nanotec – nanolibWebsite
CC BY 3.0 and CC BY-ND 4.0package for Nanotec motor controllers
Festo – festo-edconWebsiteCodePyPI
MIT Licensepackage festo-edcon for Festo electric drive controllers
Measurement Computing Corporation (MCC) – mcculwCodePyPI
MIT Licensectypes wrapper for MCC universal library to interface with DAQ devices
Tektronix – tm-devicesWebsiteCodePyPI
Apache 2.0 Licensepackage for Tektronix and Keithley instruments
Liquid Instruments – pymokuWebsiteCodePyPI
MIT Licensepackage for controlling Moku:Lab from Liquid instruments
Liquid Instruments – mokuWebsitePyPI
MIT Licensepackage for controlling Moku:Go and Moku:Pro from Liquid instruments

If you feel a package is missing or information is incorrect, please feel free to contact us via contact@sweep-me.net