Open source
Python Projects for Scientific Instrument Control
Explore a variety of third-party Python projects designed for communicating with scientific instruments and technical equipment. Below is a curated list of packages and drivers that facilitate the creation of measurement programs using Python.
Looking for ready-to-use test & measurement software? Check out SweepMe!, which you can download for free. If you prefer to develop your own applications while leveraging our extensive repository of instrument drivers, pysweepme is the perfect tool for you.
Looking for ready-to-use test & measurement software? Check out SweepMe!, which you can download for free. If you prefer to develop your own applications while leveraging our extensive repository of instrument drivers, pysweepme is the perfect tool for you.
Controlling lab equipment
Instrument Drivers
Open-source drivers for hundreds of instruments ready to use.
| PyMeasure | Website | Code | PyPI |
| PyMeasure DevelopersDrivers for several scientific instruments | |||
| PyExpLabSys | Website | Code | |
| Surface Physics & Catalysis (SurfCat) – Technical University of DenmarkDrivers for several scientific instruments | |||
| pyhard2 | Website | Code | |
| Mathisa Laurin Drivers for several scientific instruments | |||
| pyHegel | Code | ||
| Christian LupienDrivers for several scientific instruments | |||
| Autolab | Website | Code | PyPI |
| Quentin Chateiller and Bruno GarbinDrivers for several scientific instruments | |||
| InstrumentKit | Website | Code | PyPI |
| Steven CasagrandeDrivers for several scientific instruments | |||
| python-ivi | Code | PyPI | |
| Alex Forencich, Christopher Johnson, Jeff Wurzbach Drivers for several scientific instruments | |||
| slave | Code | PyPI | |
| Marco HalderDrivers for several scientific instruments | |||
| Measurement-automation-tools | Code | ||
| John BangsundDrivers for several scientific instruments | |||
| Labber drivers | Code | ||
| Lab Control Software Scandinavia ABDrivers for several scientific instruments | |||
| pyinstrument | Code | PyPI | |
| Samuel DelegliseDrivers for several scientific instruments | |||
| Mason lab labdrivers | Code | PyPI | |
| Mason GroupDrivers for several scientific instruments | |||
| QCoDeS | Website | Code | PyPI |
| Microsoft Corporation and Københavns Universitet Drivers for several scientific instruments | |||
| Scikit-rf | Website | Code | PyPI |
| Alexander Arsenovic, scikit-rf DevelopersToolkit for RF measurements | |||
| Auspex | Code | PyPI | |
| Raytheon BBN Technologies - Quantum GroupDrivers for several scientific instruments | |||
| hardware-control | Code | PyPI | |
| Lawrence Berkeley National LaboratoryDrivers for several scientific instruments | |||
| labdevices | Code | PyPI | |
| Julian KrauthDrivers for several scientific instruments | |||
| LabEXT | Code | ||
| Institute of Electromagnetic Fields, ETH ZurichDrivers for several scientific instruments | |||
| LabToolKit | Code | PyPI | |
| David A LuttonDrivers for several scientific instruments | |||
| pyLabLib | Website | Code | PyPI |
| Alexey ShkarinDrivers for several scientific instruments | |||
| PyXperiment | Code | PyPI | |
| Stanislau PiatrushaDrivers for several scientific instruments | |||
| Instrumental | Website | Code | PyPI |
| Nate BogdanowiczDrivers for several scientific instruments | |||
| PyMoDAQ | Website | Code | PyPI |
| Sébastien WeberModular data acquisition framework and instrument drivers | |||
| Qudi | Website | Code | PyPI |
| Several contributors, mainly from university UlmA modular laboratory experiment management suite | |||
| photonmover | Code | ||
| Marc de Cea Falco and contributorsA framework for developing control interfaces for scientific instruments | |||
| NOMAD-CAMELS | Website | Code | PyPI |
| NOMAD CAMELS team from FAU ErlangenA framework for controlling scientific instruments | |||
| labbench | Website | Code | PyPI |
| Developers at NISTA framework for controlling scientific instruments | |||
| Octopus | Code | ||
| Richard Ingham and contributorsA framework for controlling scientific instruments | |||
| Bluesky Project | Website | Code | |
| Brookhaven National LaboratoryBluesky Project is a collection of Python libraries for scientific data acquisition, management, and analysis | |||
Talking to the hardware
Interface Libraries
Python libraries for communicating with instruments via GPIB, USB, RS-232, and Ethernet.
| pyvisa | Website | Code | PyPI |
| PyVISA Authors and contributorsStandard library to use visa runtime. | |||
| pyserial | Website | Code | PyPI |
| Chris LiechtiStandard library for COM port communication | |||
| python-can | Website | Code | PyPI |
| Several contributors (see github)Library for CAN bus | |||
| python-opcua | Website | Code | PyPI |
| Olivier Roulet-Dubonnet and othersLibrary for OPC UA | |||
| MinimalModbus | Website | Code | PyPI |
| Jonas BergLibrary for Modbus | |||
| PyModbus | Website | Code | PyPI |
| Galen CollinsLibrary for using Modbus | |||
| PyBluez | Website | Code | PyPI |
| Albert Haung and contributorsLibrary for using bluetooth | |||
| pythonnet | Website | Code | PyPI |
| The Python for .Net developersLibrary for loading .NET dlls | |||
| python-usbtmc | Website | Code | PyPI |
| Alex ForencichLibrary for using USBTMC without visa runtime | |||
| python-snap7 | Website | Code | PyPI |
| Gijs Molenaar and contributorsLibrary for Siemens S7 or Siemens Logo8! | |||
| pywin32 | Code | PyPI | |
| 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-ethernet | Code | ||
| Nelson Darkwah OppongLibrary to interface with Prologix adapters | |||
| bleak | Website | Code | PyPI |
| Henrik BlidhCross platform bluetooth client | |||
Maintained by the vendors
Manufacturer Packages
Official Python packages provided by instrument manufacturers.
| Lake Shore Cryotronics – lakeshore | Website | Code | PyPI |
| MIT Licensecollection of python drivers for Lake Shore instruments | |||
| MPI corporation – SentioProberDev | Code | ||
| BSD-2-Clause Licensepython library for controlling a Sentio prober | |||
| Basler – pypylon | Code | PyPI | |
| BSD-3-Clause Licensepython wrapper for Basler pylon Camera Software Suite. | |||
| Zurich Instruments – zhinst | Code | PyPI | |
| MIT Licensepackage zhinst with API for LabOne | |||
| Bronkhorst – bronkhorst-propar | Website | Code | PyPI |
| MIT Licensepackage propar for mass-flow controller | |||
| Rohde&Schwarz – RsInstrument | Website | Code | PyPI |
| MIT Licensepackage for R&S instruments | |||
| Zaber Technologies Inc. – zaber-motion | Website | Code | PyPI |
| Apache 2.0 Licensepackage for motor controllers | |||
| Trinamic – PyTrinamic | Code | PyPI | |
| MIT Licensepackage for motor controllers | |||
| B&K Precision | Code | ||
| Appache 2.0 Licensepackage for B&K instruments | |||
| PCO | Website | PyPI | |
| MIT Licensepackage for PCO cameras | |||
| DOBOT | Code | ||
| MIT Licensepackage for DOBOT robots | |||
| Sensirion | Code | ||
| BSD-3-Clause Licensepackages for Sensirion sensors | |||
| Labjack – labjack-ljm | Website | Code | PyPI |
| MIT Licensepackage for Labjack devices | |||
| iDS – pyueye | Website | PyPI | |
| BSD Licensepackage for iDS cameras | |||
| Physik Instrumente – PIPython | Website | Code | PyPI |
| Other/Proprietary licensepackage for controlling positioning stages | |||
| Nanotec – nanolib | Website | ||
| CC BY 3.0 and CC BY-ND 4.0package for Nanotec motor controllers | |||
| Festo – festo-edcon | Website | Code | PyPI |
| MIT Licensepackage festo-edcon for Festo electric drive controllers | |||
| Measurement Computing Corporation (MCC) – mcculw | Code | PyPI | |
| MIT Licensectypes wrapper for MCC universal library to interface with DAQ devices | |||
| Tektronix – tm-devices | Website | Code | PyPI |
| Apache 2.0 Licensepackage for Tektronix and Keithley instruments | |||
| Liquid Instruments – pymoku | Website | Code | PyPI |
| MIT Licensepackage for controlling Moku:Lab from Liquid instruments | |||
| Liquid Instruments – moku | Website | PyPI | |
| 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