PyExpLabSys
Python for Experimental Lab Systems: Serial drivers, file parsers, data and live sockets
Install / Use
/learn @CINF/PyExpLabSysREADME
::
_____ ______ _ _ _____
| __ \ | ____| | | | | / ____|
| |__) | _| |__ __ ___ __ | | __ _| |__| (___ _ _ ___
| ___/ | | | __| \ \/ / '_ \| | / _` | '_ \\___ \| | | / __|
| | | |_| | |____ > <| |_) | |___| (_| | |_) |___) | |_| \__ \
|_| \__, |______/_/\_\ .__/|______\__,_|_.__/_____/ \__, |___/
__/ | | | __/ |
|___/ |_| |___/
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 <https://pyexplabsys.readthedocs.io/>__ 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 and Nanomade sections 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.
Some functionalities of PyExpLabSys are bound to the assumption of the
existence of a machines folder in the home directory (next to PyExpLabSys.
This contains deployment-specific use cases (example of machines <https://github.com/CINF/machines>_ folder).
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/kei
