From 7a2b4361c4ddf5fa16d490e23b6cce099f8a40b9 Mon Sep 17 00:00:00 2001 From: Christoph Buchner Date: Sun, 30 Jan 2022 21:38:38 +0100 Subject: [PATCH] Add table transferred from Ethercalc and cleaned up. This table was originally started and filled by me at https://ethercalc.net/1anmq248ktu6 to support discussion at https://github.com/LabPy/labpy-discussion/issues/23 Later on several other people (some anonymous) contributed data. --- table.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 table.md diff --git a/table.md b/table.md new file mode 100644 index 0000000..645a3e4 --- /dev/null +++ b/table.md @@ -0,0 +1,53 @@ +# Overview table + + + + + +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