A modular and extensible plugin architecture to control experiment hardware using the labscript suite.
The labscript suite supports a range of commercial and open-source hardware, and is modular by design. Adding support for new devices involves writing Python functions for a well-defined set of primitives to program instructions, and transition between buffered I/O and manual states. See the documentation for more details on adding new devices.
The following devices have been implemented in the labscript suite:†
AlazarTech PCI Express Digitizers (e.g. ATS9462; PR #41)
LightCrafter DMD Digital Micro-mirror Device (PR #43)
MOGLabs Agile RF Synthesizers (ARF/XRF)
National Instruments Data Acquisition (DAQmx) devices:
Note: Since v2.5.0 (June 2019), labscript_devices.NI_DAQmx
can be used to automatically generate a labscript device class for any NI-DAQmx device! (PR #56)
NovaTech DDS9m 170MHz Four Channel Direct Digital Synthesized Signal Generator (see blog post)
OpalKelly XEM3001 FPGA Boards used by the Cicero control system (PR #50)
PineBlaster Open-source Digital Pattern Generator
PrawnBlaster Open-source pseudoclock based on the $4 Raspberry Pi Pico
PrawnDO Open-source digital pulse generator based on the $4 Raspberry Pi Pico
SpinCore Programmable Pulse Generators and Direct Digital Synthesis
Zaber Motion Controllers, e.g. linear translation stages (PR #85)
The following cameras are implemented by subclassing labscript_devices.Camera
, a Python-based camera server which can be controlled directly from blacs.
† We do not endorse the use of any particular hardware.
labscript-devices is distributed as a Python package on PyPI and Anaconda Cloud, and should be installed with other components of the labscript suite. Please see the installation guide for details.