Skip to content

Commit

Permalink
Add table transferred from Ethercalc and cleaned up.
Browse files Browse the repository at this point in the history
This table was originally started and filled by me at
https://ethercalc.net/1anmq248ktu6 to support discussion at
LabPy/labpy-discussion#23

Later on several other people (some anonymous) contributed data.
  • Loading branch information
bilderbuchi committed Jan 30, 2022
1 parent e564a4e commit 7a2b436
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions table.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Overview table

<!-- Second-level headers: -->
<!-- UNIVERSAL INSTRUMENTATION CONTROL IN PYTHON | | | | | | | Maturity | | | Scope | | | Features | Instrument drivers | | | | Procedures | GUI | Remarks | Collected by -->


Name | Description | Repo URL | Docs URL | date latest commit | License | Application focus (if any) | Version | nr. of commits/years age | Test framework(nr tests) | instrument/hardware communication? | running predefined procedures? | GUI/presentation layer? | Units | Instrument types (messagebased, register map, DLL, COM,..) | Transport layers | Abstract instrument classes | Overall nr of drivers | definition (.py, DSL, markup) | GUI technology | Remarks | Collected by
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Pymeasure | Scientific measurement library for instruments, experiments, and live-plotting | [repo](https://github.com/ralph-group/pymeasure) | [docs](http://pymeasure.readthedocs.io/en/latest/) | ![Commit activity](https://img.shields.io/github/last-commit/ralph-group/pymeasure.svg?maxAge=300) | MIT | | ![release](https://img.shields.io/github/v/release/pymeasure/pymeasure) | 586/4 | pytest(62) | y | y | yes | n | | Serial, GPIB-USB, VISA | | 24 | py | Qt | | @bilderbuchi
InstrumentKit | Python package for interacting with laboratory equipment over various buses. | [repo](https://www.github.com/Galvant/InstrumentKit) | [docs](http://instrumentkit.readthedocs.org/en/latest/index.html) | ![Commit activity](https://img.shields.io/github/last-commit/Galvant/InstrumentKit.svg?maxAge=300) | AGPL-v3 | Connection- and vendor-agnostic API for instruments | 0.4.1 | 1152/6 | pytest(693) | y | n | no | y(quantities, soon pint) | messagebased,...(?) | Serial, GPIB-USB, sockets, VISA, unix files, usbtmc, vxi11 over ethernet | yes | 41 | | | | @bilderbuchi
Lantz | automation and instrumentation toolkit | [repo](https://github.com/lantzproject/lantz), [old repo](https://github.com/LabPy/lantz) | [docs](https://lantz.readthedocs.io) | ![Commit activity](https://img.shields.io/github/last-commit/LabPy/lantz.svg?maxAge=300) | BSD-3? | | 0.3 | 306/ | unittest | y | n | y (also autogenerated) | y (pint) | messagebased, dll | PyVisa,pyserial, PyGPIB, usbtmc | | many | | Qt | | @bilderbuchi
Auspex | running physics experiments | [repo](https://github.com/BBN-Q/Auspex) | | ![Commit activity](https://img.shields.io/github/last-commit/BBN-Q/Auspex.svg?maxAge=300) | | | | 1925/ | | | | | | | | | | | | |
Pythics | used for simple interfaces to laboratory instrument or numerical simulations | [repo](https://github.com/dursobr/Pythics) | | ![Commit activity](https://img.shields.io/github/last-commit/avelo/Pythics.svg?maxAge=300) | | | | 3/ | | | | | | | | | | | | |
i3py | | [repo](https://github.com/Exopy/i3py) | | ![Commit activity](https://img.shields.io/github/last-commit/Exopy/i3py.svg?maxAge=300) | | | | 90/ | | | | no | Yes (pint) | | | | | | | evolved from lantz |
Qcodes | Scientific measurement library for instruments, experiments, and live-plotting and saving results | [repo](https://github.com/QCoDeS/Qcodes) | | ![Commit activity](https://img.shields.io/github/last-commit/QCoDeS/Qcodes.svg?maxAge=300) | | qbits | | 2570/ | unittest | | | no | y | | | | | | | |
labdrivers | Python package for controlling laboratory equipment (mostly with GPIB) | [repo](https://github.com/masonlab/labdrivers) | [docs](https://labdrivers.readthedocs.org/) | ![Commit activity](https://img.shields.io/github/last-commit/masonlab/labdrivers.svg?maxAge=300) | MIT | | | 62/2 | pytest(nr n/a; just started writing) | y | some drivers | no | none | | VISA, GPIB, TCP/IP | n | 9 | | none | | @pbnjeff89
qudi | tools for operating multi-instrument and multi-computer laboratory experiments | [repo](https://github.com/Ulm-IQO/qudi) | | ![Commit activity](https://img.shields.io/github/last-commit/Ulm-IQO/qudi.svg?maxAge=300) | | | | 4371/ | | | | | | | | | | | | |
Crappy | software canvas for developing experimental tests in a versatile and accessible way | [repo](https://github.com/LaboratoireMecaniqueLille/crappy) | | ![Commit activity](https://img.shields.io/github/last-commit/Ulm-IQO/qudi.svg?maxAge=300) | | | | 909/ | | | | | | | | | | | | |
Instrumental | controlling lab hardware | [repo](https://github.com/mabuchilab/Instrumental) | [docs](https://instrumental-lib.readthedocs.io/en/stable/) | ![Commit activity](https://img.shields.io/github/last-commit/mabuchilab/Instrumental.svg?maxAge=300) | | cameras, DAQs, oscilloscopes, spectrometers, and more | | 952/2 | | | | no | Yes (pint) | | VISA, serial, NiceLib/cffi, ... | | approx. 30 | | none | "Facets" similar to lantz "feats", nice object-oriented autodetection |
PLACE | open-source (P)ython package for (L)aboratory (A)utomation, (C)ontrol, and (E)xperimentation | [repo](https://github.com/PALab/PLACE) | [docs](https://pubmed.ncbi.nlm.nih.gov/25304874/) | ![Commit activity](https://img.shields.io/github/last-commit/PALab/PLACE.svg?maxAge=300) | LGPL-3.0 | | | 697/ | | | | yes (node.js/elm) | | | | | | | | |
Experimentor | flexible package for experiment control and automation | [repo](https://github.com/uetke/experimentor) | | ![Commit activity](https://img.shields.io/github/last-commit/uetke/experimentor.svg?maxAge=300) | | | | 31/ | | | | | | | | | | | | |
ITOM | open source software suite for operating measurement systems, laboratory automation and data evaluation | [repo](https://itom.bitbucket.io/) | | | | | | | | | | | | | | | | | | |
Qtlab | code to simplify computer-controlled measurements. It provides some basic GUI functionality and makes scripting quite easy. | [repo](https://github.com/heeres/qtlab) | | ![Commit activity](https://img.shields.io/github/last-commit/heeres/qtlab.svg?maxAge=300) | | | | 874/ | | | | | | | | | | | | |
PyGMI | can take measurements with instruments connected over GPIB, RS232, ethernet or USB using Pyvisa and PySerial | [repo](https://github.com/Argonne-National-Laboratory/PyGMI) | | ![Commit activity](https://img.shields.io/github/last-commit/Argonne-National-Laboratory/PyGMI.svg?maxAge=300) | | | | | | | | | | | | | | | | |
pymodaq | simplifies the interaction with detector and actuator hardware to go straight to the data acquisition | [repo](https://github.com/CEMES-CNRS/PyMoDAQ) | | ![Commit activity](https://img.shields.io/github/last-commit/CEMES-CNRS/PyMoDAQ.svg?maxAge=300) | CeCILL-B | | | | | | | | | | | | | | | |
taurus-scada | control and data acquisition CLIs and GUIs in scientific/industrial environments | [repo](https://github.com/taurus-org/taurus) | | ![Commit activity](https://img.shields.io/github/last-commit/taurus-org/taurus.svg?maxAge=300) | LGPL | | 4.6 | 5000/5 | | y | | y | | | | | | | | | @bruyant
Salve | micro framework designed to simplify instrument communication and control | [repo](https://github.com/p3trus/slave) | | ![Commit activity](https://img.shields.io/github/last-commit/p3trus/slave.svg?maxAge=300) | GPL | | | | | | | | | | | | | | | |
Communication layer | micro framework designed to simplify instrument communication | | | | | | | | | | | | | | | | | | | |
Pyvisa (=bottom layer) | "A Python package with bindings to the ""Virtual Instrument Software Architecture"" VISA library." | [repo](https://github.com/pyvisa/pyvisa) | [docs](https://pyvisa.readthedocs.io/en/stable/) | ![Commit activity](https://img.shields.io/github/last-commit/pyvisa/pyvisa.svg?maxAge=300) | MIT | | 1.9.0 | 915/5 | 0 | y | | no | n | | | | 0 | | | |
python-ivi (=bottom layer) | | [repo](https://github.com/python-ivi/python-ivi) | | ![Commit activity](https://img.shields.io/github/last-commit/python-ivi/python-ivi.svg?maxAge=300) | | | | | | | | | | | | | | | | |
nidaqmx-python | | [repo](https://github.com/ni/nidaqmx-python) | | ![Commit activity](https://img.shields.io/github/last-commit/ni/nidaqmx-python.svg?maxAge=300) | | | | | | | | | | | | | | | | |
pyserial (=bottom layer) | | | | | | | | | | | | | | | | | | | | |
test framework | | | | | | | | | | | | | | | | | | | | |
openhtf | The open-source hardware testing framework. | | | May 22, 2018 | Apache 2.0 | | 1.3.0 | | | y | y | yes | y | | | | | py | Web | | @doingbla
Fixate | library for testing real stuff | [repo](https://github.com/pazzarpj/Fixate) | | ![Commit activity](https://img.shields.io/github/last-commit/pazzarpj/Fixate.svg?maxAge=300) | | | | 6/ | | | | | | | | | | | | |
pyinstruments (=project list only) | central reference point: documentation only | [repo](https://github.com/pyinstruments/pyinstruments) | | ![Commit activity](https://img.shields.io/github/last-commit/pyinstruments/pyinstruments.svg?maxAge=300) | | | | 3/ | | | | | | | | | | | | |
bluesky | A data collection interface; or an experiment specification and orchestration engine | [repo](https://github.com/NSLS-II/bluesky) | [docs](http://nsls-ii.github.io/bluesky/) | ![Commit activity](https://img.shields.io/github/last-commit/NSLS-II/bluesky.svg?maxAge=300) | | end-to-end data acquisition and analysis solution that leverages data science libraries | 1.4.1 | 3300/3 | pytest (400) | | y | no | | | | | | | | | @bilderbuchi
Ophyd | Python/EPICS-based device abstraction (in the future also other protocols) | [repo](https://github.com/NSLS-II/ophyd) | [docs](http://nsls-ii.github.io/ophyd) | ![Commit activity](https://img.shields.io/github/last-commit/NSLS-II/ophyd.svg?maxAge=300) | | A hardware abstraction layer | 1.3.0 | 2000/4 | pytest (270) | | | no | | | | | | | | | @bilderbuchi
Cryostat-GUI | Scientific measurement library for instruments, experiments, live-plotting, saving results | [repo](https://github.com/Cryostat-GUI/Cryostat-GUI) | | ![Commit activity](https://img.shields.io/github/last-commit/Cryostat-GUI/Cryostat-GUI.svg?maxAge=300) | MIT | | | 581/1 | | y | no | yes | n (only documented in names) | | pyvisa (GPIB, serial) | y | 6 | | pyQt | currently rather specific, just recently reinvented the wheel... |
measureSequences | focus on Quantum Design Sequence file parsing and running, totally abstract | [repo](https://github.com/bklebel/measureSequences) | | ![Commit activity](https://img.shields.io/github/last-commit/bklebel/measureSequences.svg?maxAge=300) | | Abstract software Sequence parsing/running scheme | | 62/0.5 | | no | yes | yes | | | | | | .seq files from QD MultiVu | pyQt | |
PyMeasRF | Drivers for some RF related test equipment | [repo](https://github.com/JAnderson419/PyMeasRF) | | ![Commit activity](https://img.shields.io/github/last-commit/JAnderson419/PyMeasRF.svg?maxAge=300) | MIT | | | | | | | | | | | | | | | | @dominecf
acq4 | for patch clamp ephys / optogenetics / imaging experiments in neurophysiology | [repo](https://github.com/acq4/acq4) | [docs](http://www.acq4.org/) | ![Commit activity](https://img.shields.io/github/last-commit/acq4/acq4.svg?maxAge=300) | MIT | | | | | y | | | | | | | | | | | @dominecf
yaq | Yet Another AcQuisition | [repo](https://gitlab.com/yaq) | [docs](https://yaq.fyi) | | LGPL-3.0 | | | | | y | | | | | | | | | | | @dominecf
ScopeFoundry | platform for controlling custom laboratory experiments and visualizing scientific data | [repo](https://github.com/ScopeFoundry/ScopeFoundry) | [docs](http://www.scopefoundry.org) | ![Commit activity](https://img.shields.io/github/last-commit/ScopeFoundry/ScopeFoundry.svg?maxAge=300) | BSD 3-Clause | | | | | y? | | yes | | | | | | | | | @dominecf
hardware-control | Python framework to control hardware; includes device drivers for supported hardware and QT5-based GUI widgets | [repo](https://bitbucket.org/berkeleylab/hardware-control/src/main/) | | | BSD-3-Clause-LBNL | | | | | | | | | | | | | | | rather a new project | @dominecf
micro-manager | GUI that communicates with microscope equipment through a device abstraction layer | [repo](https://github.com/micro-manager/) | | ![Commit activity](https://img.shields.io/github/last-commit/micro-manager/micro-manager.svg?maxAge=300) | BSD / LGPL | automated microscopes | | | | y | y | yes | | DLL, COM | | y | 200+ | | java | [this repo](https://github.com/micro-manager/futureMMCore) describes ongoing plans for an overhaul of the hardware interface side |
home assistant | Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. | [repo](https://github.com/home-assistant/core) | [docs](https://www.home-assistant.io) | ![Commit activity](https://img.shields.io/github/last-commit/home-assistant/core.svg?maxAge=300) | Apache License 2.0 | non-scientific hardware | | | | | | | | | | | | | | |
pyLabLib | device control and experiment automation | [repo](https://github.com/AlexShkarin/pyLabLib) | [docs](https://pylablib.readthedocs.io/en/latest/) | ![Commit activity](https://img.shields.io/github/last-commit/AlexShkarin/pyLabLib.svg?maxAge=300) | GPL-3.0 | | | | | y | | | | | | | | | | |
pylabinstrument | N/A | [repo](https://github.com/psklight/pylabinstrument) | | ![Commit activity](https://img.shields.io/github/last-commit/psklight/pylabinstrument.svg?maxAge=300) | N/A | mostly optics | | | | | | | | | | | | | | |
pyLabInstruments | wrapper around instruments controlled via usb or serial interface | [repo](https://github.com/MarkHedleyJones/pyLabInstruments) | | ![Commit activity](https://img.shields.io/github/last-commit/MarkHedleyJones/pylabInstruments.svg?maxAge=300) | N/A | Agilent 3320A + Tektronix TPS2024B | | | | | | | | | | | | | | |


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

0 comments on commit 7a2b436

Please sign in to comment.