GitHunt
ET

EthanGYoung/PyExpLabSys

Python for Experimental Lab Systems: Serial drivers, file parsers, data and live sockets

::

 _____       ______            _           _     _____
|  __ \     |  ____|          | |         | |   / ____|
| |__) |   _| |__  __  ___ __ | |     __ _| |__| (___  _   _ ___
|  ___/ | | |  __| \ \/ / '_ \| |    / _` | '_ \\___ \| | | / __|
| |   | |_| | |____ >  <| |_) | |___| (_| | |_) |___) | |_| \__ \
|_|    \__, |______/_/\_\ .__/|______\__,_|_.__/_____/ \__, |___/
        __/ |           | |                             __/ |
       |___/            |_|                            |___/

Python for Experimental Labs System

.. image:: https://readthedocs.org/projects/pyexplabsys/badge/?version=latest
:target: http://pyexplabsys.readthedocs.io/?badge=latest
:alt: Documentation Status

About PyExpLabSys

This project contains various python code useful in experimental labs,
such as equipment drivers, data logging and network data exchange
components.

The project is hosted on Github <https://github.com/CINF/PyExpLabSys>_ and documented <http://pyexplabsys.readthedocs.org/en/latest/>__ with Sphinx <http://sphinx-doc.org/>__ on the read the docs webpage <https://readthedocs.org/>__, with varying documentation
levels.

PyExpLabSys is an attempt to share the Python code produced at the
SurfCat section at the Technical University of Denmark (DTU). As such,
the development is driven by the needs of the department, which means
that different components have different levels of maturity.

Support

Support is provided by the authors in their spare time, so we cannot
always reply immediately, but we will try to help when we can.

Support is provided via the #PyExpLabSys IRC channel on freenode <https://freenode.net/>_ (WebChat here <>__) and issues <https://github.com/CINF/PyExpLabSys/issues>_ on the projects
projects Github page <https://github.com/CINF/PyExpLabSys>_.

Data logging

The project includes example code showing how to make a continuously
running data-logger. The program will set up a number of threaded
classes that will collect data in the background and log it to a MySQL
database if the values changes more than a given amount or with regular
time intervals.

GUI-elements

The projects includes two different example of gui-development usefull
in an experimental lab. One example show how to make running plot of a
measured value. The other example show a functional gui for the Agilent
34410A driver.

Drivers

The project includes drivers for a number of instruments. Most of the
drivers are developed around a catalysis related university laboratory
and therefore pertain mostly to ultra high vacuum (UHV),
electrochemical and photoelectrochemical research.

Detailed driver descriptions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A few of the drivers have more detailed descriptions in the list below
and for the rest, follows a list autogenerated from the module
docstring.

  • Agilent 34410A: This driver is currently able to do basic operations
    such as changing measurement type and read values from the
    instrument. Currently only the USB interface is supported (through
    the USBTMC kernel-driver). The driver will most likely also work with
    the Agilent 34411A and with minor modifications possibly also the
    34401A (in that case through the serial interface).

  • CPX400DP: This driver is fairly complete with support for setting and
    reading back values from the instrument. Currently only the USB
    interface is tested, but since the USB interface exposes a virtual
    serial port, most likely the serial interface will work with no
    problems.

  • Varian XGS600: This driver is not complete but fully functional for
    reading pressures from the gauge controller through the serial port
    of the device.

  • nidaq: Not a driver as such (actually all driver functionality comes
    through NI DAQmx and the nidaqmx-python wrapper for this driver), but
    serves as an example implementation of how to read out values from
    instruments that exposes an analog output.

Auto-generated driver descriptions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. auto generate start

  • agilent_34410A (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/agilent_34410A.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/agilent_34410A.py>) Driver class for Agilent 34410A DMM
  • agilent_34972A (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/agilent_34972A.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/agilent_34972A.py>) Driver class for Agilent 34972A multiplexer
  • bio_logic (doc <http://pyexplabsys.readthedocs.io/drivers/bio_logic.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/bio_logic.py>) This module is a Python implementation of a driver around the EC-lib DLL. It can be used to control at least the SP-150 potentiostat from Bio-Logic under 32 bit Windows.
  • bronkhorst (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/bronkhorst.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/bronkhorst.py>) Driver for Bronkhorst flow controllers, including simple test case
  • brooks_s_protocol (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/brooks_s_protocol.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/brooks_s_protocol.py>) Driver for Brooks s-protocol
  • cpx400dp (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/cpx400dp.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/cpx400dp.py>) Driver for CPX400DP power supply
  • crowcon (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/crowcon.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/crowcon.py>) This module contains a driver for the Vortex gas alarm central
  • dataq_binary (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/dataq_binary.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/dataq_binary.py>) DataQ Binary protocol driver
  • dataq_comm (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/dataq_comm.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/dataq_comm.py>) Driver for DATAQ dac units
  • edwards_agc (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/edwards_agc.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/edwards_agc.py>) Driver and simple test case for Edwards Active Gauge Controler
  • edwards_nxds (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/edwards_nxds.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/edwards_nxds.py>) Driver for Edwards, nXDS pumps
  • epimax (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/epimax.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/epimax.py>) Driver for the Epimax PVCi process vacuum controller
  • four_d_systems (doc <http://pyexplabsys.readthedocs.io/drivers/four_d_systems.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/four_d_systems.py>) Drivers for the 4d systems displays
  • freescale_mma7660fc (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/freescale_mma7660fc.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/freescale_mma7660fc.py>) Driver for AIS328DQTR 3 axis accelerometer
  • fug (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/fug.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/fug.py>) Driver for "fug NTN 140 - 6,5 17965-01-01" power supply Communication via the Probus V serial interface.
  • galaxy_3500 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/galaxy_3500.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/galaxy_3500.py>) Python interface for Galaxy 3500 UPS. The driver uses the telnet interface of the device.
  • honeywell_6000 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/honeywell_6000.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/honeywell_6000.py>) Driver for HIH6000 class temperature and humidity sensors
  • inficon_sqm160 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/inficon_sqm160.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/inficon_sqm160.py>) Driver for Inficon SQM160 QCM controller
  • innova (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/innova.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/innova.py>) Driver for the Innova RT 6K UPS
  • intellemetrics_il800 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/intellemetrics_il800.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/intellemetrics_il800.py>) Driver for IL800 deposition controller
  • isotech_ips (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/isotech_ips.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/isotech_ips.py>) Driver for ISO-TECH IPS power supply series
  • keithley_2700 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/keithley_2700.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/keithley_2700.py>) Simple driver for Keithley Model 2700
  • keithley_smu (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/keithley_smu.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/keithley_smu.py>) Simple driver for Keithley SMU
  • kjlc_pressure_gauge (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/kjlc_pressure_gauge.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/kjlc_pressure_gauge.py>) Module contains driver for KJLC 3000 pressure gauge
  • lascar (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/lascar.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/lascar.py>) Driver for the EL-USB-RT temperature and humidity USB device from Lascar
  • mks_925_pirani (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/mks_925_pirani.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/mks_925_pirani.py>) Driver for MKS 925 micro pirani
  • mks_937b (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/mks_937b.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/mks_937b.py>) Driver for MKS 937b gauge controller
  • mks_g_series (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/mks_g_series.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/mks_g_series.py>) Driver for MKS g-series flow controller
  • mks_pi_pc (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/mks_pi_pc.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/mks_pi_pc.py>) NO DESCRIPTION
  • NGC2D (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/NGC2D.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/NGC2D.py>) NO DESCRIPTION
  • omega_cn7800 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/omega_cn7800.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/omega_cn7800.py>) Omega CN7800 Modbus driver. Might also work with other CN units
  • omega_cni (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/omega_cni.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/omega_cni.py>) This module contains drivers for equipment from Omega. Specifically it contains a driver for the ??? thermo couple read out unit.
  • omega_D6400 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/omega_D6400.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/omega_D6400.py>) Driver for Omega D6400 daq card
  • omegabus (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/omegabus.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/omegabus.py>) Driver for OmegaBus devices
  • omron_d6fph (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/omron_d6fph.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/omron_d6fph.py>) Hint for implementation found at http://forum.arduino.cc/index.php?topic=285116.0
  • pfeiffer (doc <http://pyexplabsys.readthedocs.io/drivers/pfeiffer.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/pfeiffer.py>) This module contains drivers for the following equipment from Pfeiffer Vacuum:
  • pfeiffer_qmg420 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/pfeiffer_qmg420.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/pfeiffer_qmg420.py>) NO DESCRIPTION
  • pfeiffer_qmg422 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/pfeiffer_qmg422.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/pfeiffer_qmg422.py>) This module contains the driver code for the QMG422 control box for a pfeiffer mass-spectrometer. The code should in principle work for multiple type of electronics. It has so far been tested with a qme-125 box and a qme-??? box. The module is ment as a driver and has very little function in itself. The module is ment to be used as a sub-module for a large program providing the functionality to actually use the mass-spectrometer.
  • pfeiffer_turbo_pump (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/pfeiffer_turbo_pump.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/pfeiffer_turbo_pump.py>) Self contained module to run a Pfeiffer turbo pump including fall-back text gui and data logging.
  • polyscience_4100 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/polyscience_4100.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/polyscience_4100.py>) Driver and test case for Polyscience 4100
  • rosemount_nga2000 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/rosemount_nga2000.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/rosemount_nga2000.py>) NO DESCRIPTION
  • scpi (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/scpi.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/scpi.py>) Implementation of SCPI standard
  • specs_iqe11 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/specs_iqe11.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/specs_iqe11.py>) Self contained module to run a SPECS sputter gun including fall-back text gui
  • specs_XRC1000 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/specs_XRC1000.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/specs_XRC1000.py>) Self contained module to run a SPECS sputter gun including fall-back text gui
  • srs_sr630 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/srs_sr630.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/srs_sr630.py>) Driver for Standford Research Systems, Model SR630
  • stahl_hv_400 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/stahl_hv_400.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/stahl_hv_400.py>) Driver for Stahl HV 400 Ion Optics Supply
  • stmicroelectronics_ais328dq (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/stmicroelectronics_ais328dq.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/stmicroelectronics_ais328dq.py>) Driver for STMicroelectronics AIS328DQTR 3 axis accelerometer
  • stmicroelectronics_l3g4200d (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/stmicroelectronics_l3g4200d.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/stmicroelectronics_l3g4200d.py>) Driver for STMicroelectronics L3G4200D 3 axis gyroscope
  • tenma (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/tenma.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/tenma.py>) from future import unicode_literals, print_function
  • vivo_technologies (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/vivo_technologies.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/vivo_technologies.py>) Driver for a Vivo Technologies LS-689A barcode scanner
  • wpi_al1000 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/wpi_al1000.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/wpi_al1000.py>) This module implements a driver for the AL1000 syringe pump from World Precision Instruments
  • xgs600 (doc <http://pyexplabsys.readthedocs.io/drivers-autogen-only/xgs600.html>, source <https://github.com/CINF/PyExpLabSys/blob/master/PyExpLabSys/drivers/xgs600.py>) Driver class for XGS600 gauge controll

.. auto generate end

Languages

Python97.9%Shell1.0%JavaScript0.4%Emacs Lisp0.3%HTML0.1%Batchfile0.1%CSS0.1%Makefile0.0%

Contributors

GNU General Public License v3.0
Created May 29, 2018
Updated June 9, 2018