Overview

Drivers

The drivers subpackage is the primary focus of Instrumental, and its purpose is to provide relatively high-level ‘drivers’ for interfacing with lab equipment. Currently it (fully or partially) supports:

  • Cameras
    • PCO SDK (tested on PCO.Edge)
    • PCO Pixelfly
    • Photometrics PVCAM
    • Thorlabs TSI
    • Thorlabs UC480 / iDS uEye
  • DAQs
    • NI-DAQmx
  • Function Generators
    • Tektronix AFG3000 series
  • Lasers
    • Toptica FemtoFErb 1560
  • Lock-in Amplifiers
    • SRS SR850
  • Motion Control
    • Thorlabs Kinesis (FilterFlipper/TDC001/K10CR1 currently supported)
    • Attocube ECC100 Controller
  • Multimeters
    • HP 34401A
  • Optical Power Meters
    • Newport 1830-C
    • Thorlabs PM100x series
  • Oscilloscopes
    • Tektronix TDS300 and MSO/DPO4000 series (and probably others)
  • Spectrometers
    • Bristol 721 spectrum analyzer
    • Thorlabs CCSxxx series
  • Wavemeters
    • Burleigh WA-1000/1500

It should be pretty easy to write drivers for other VISA-compatible devices by using VisaMixin and Facets. Check out Writing Drivers for more info. Driver submissions are greatly appreciated!


Other Subpackages

There are several other subpackages within Instrumental. These may eventually be moved to their own separate packages.

Plotting

The plotting module provides or aims to provide

  • Unit-aware plotting functions as a drop-in replacement for pyplot
  • Easy slider-plots

Fitting

The fitting module is a good place for curating ‘standard’ fitting tools for common cases like

  • Triple-lorentzian cavity scans
  • Ringdown traces (exponential decay)

It should also provide optional unit-awareness.

Tools

The tools module is used for full-fledged scripts and programs that may make use of all of the other modules above. A good example would be a script that pulls a trace from the scope, auto-fits a ringdown curve, and saves both the raw data and fit parameters to files in a well-organized directory structure.