Instrumentation related software written in Python


Doing instrumentation and automation in Python is not only possible but it is also fun. This (incomplete) list aims to get together some the information that is scattered around the web. If you know of any other, please let us know.



 

Lantz - http://hgrecco.github.com/lantz/
Lantz is an automation and instrumentation toolkit with a clean, well-designed and consistent interface. It provides a core of commonly used functionalities for building applications that communicate with scientific instruments allowing rapid application prototyping, development and testing. Lantz benefits from Python’s extensive library flexibility as a glue language to wrap existing drivers and DLLs. 

 

Odemis - https://github.com/delmic/odemis

Open Delmic Microscopy Software.


PyDAQmx - http://packages.python.org/PyDAQmx/
This package alows users to use data acquisition hardware from National Instrument with Python. It makes an interface between the NIDAQmx driver and Python.



pyLibDAQmx - https://code.google.com/p/pylibnidaqmx/
PyLibNIDAQmx provides a Python package nidaqmx that wraps the NI-DAQmx driver software for Python using ctypes.



pyVISA - http://pyvisa.sourceforge.net/
The PyVISA package enables you to control all kinds of measurement equipment through various busses (GPIB, RS232, USB) with Python programs.



pycomedi - http://blog.tremily.us/posts/pycomedi/
This package provides an object-oriented interface to the Comedi drivers. The standard Python interface bundled with Comedilib is a simple SWIG clone of the C interface.



Leginon - http://ami.scripps.edu/redmine/projects/leginon
A system designed for automated collection of images from a transmission electron microscope.



IOCBio - http://code.google.com/p/iocbio/
Open source software from the laboratory of systems biology.



PyAndor - http://code.google.com/p/pyandor/
This is a small Python wrapping for Andor's camera to enable you to easily script these cameras without the hassle of compiling your programs. It tries to stick to the same function naming that Andor uses. Therefore it should be fairly trivial how to use it. The module is object oriented and keeps some information inside the class such as gain, preampgain, gainRange etc.



pythics
- http://code.google.com/p/pythics/
An application for running Python code intended to be used for simple interfaces to laboratory instrument or numerical simulations. It features a simple system for making graphical user interfaces (GUIs), useful controls including plotting, clean separation between GUI and application code, and multithreading and multiprocessing so running backend code does not interfere with the functionality of the GUI.



pymodbus - https://github.com/bashwork/pymodbus
Pymodbus is a full Modbus protocol implementation using twisted for its asynchronous communications core. It can also be used without any third party dependencies (aside from pyserial) if a more lightweight project is needed.


pypid - http://blog.tremily.us/posts/pypid/
PID temperature control package in pure-Python. Backend-agnostic architecture. I've written a first-order process with dead time (FOPDT) test backend and a pymodbus-based backend for our Melcor MTCA controller, but it should be easy to plug in your own custom backend. The general PID controller will automatically tune your backend using any of a variety of tuning rules.


pySerial - http://pyserial.sourceforge.net/
This module encapsulates the access for the serial port. It provides backends for Python running on Windows, Linux, BSD (possibly any POSIX compliant system), Jython and IronPython (.NET and Mono). The module named “serial” automatically selects the appropriate backend.   
 


Legend

Instrumentation related application
Bindings to a library
Driver for a device or protocol
Tools for developing instrumentation GUI

Popular posts from this blog

Communicating with instruments using PyVISA but without NI-VISA

Moving to Lantz

PyVISA-sim. Test your PyVISA applications without connected instruments