|
1 |
| -# labscript_devices |
| 1 | +<img src="https://raw.githubusercontent.com/labscript-suite/labscript-suite/master/art/labscript_32nx32n.svg" height="64" alt="the labscript suite" align="right"> |
2 | 2 |
|
3 |
| -Device drivers for the labscript suite |
| 3 | +# the _labscript suite_ » labscript-devices |
4 | 4 |
|
5 |
| -( |
6 |
| -[view on Github](https://github.com/labscript-suite/labscript_devices) |
7 |
| -) |
| 5 | +### Plugin architecture for controlling experiment hardware |
8 | 6 |
|
| 7 | +[](https://github.com/labscript-suite/labscript-devices/actions) |
| 8 | +[](https://github.com/labscript-suite/labscript-devices/raw/master/LICENSE.txt) |
| 9 | +[](https://python.org) |
| 10 | +[](https://pypi.org/project/labscript-devices) |
| 11 | +[](https://anaconda.org/labscript-suite/labscript-devices) |
| 12 | +[](https://groups.google.com/forum/#!forum/labscriptsuite) |
| 13 | +<!-- [](https://doi.org/10.1063/1.4817213) --> |
9 | 14 |
|
| 15 | + |
| 16 | +A modular and extensible plugin architecture to control experiment hardware using the [*labscript suite*](https://github.com/labscript-suite/labscript-suite). |
| 17 | + |
| 18 | +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](http://labscriptsuite.org/documentation) for more details on adding new devices. |
| 19 | + |
| 20 | + |
| 21 | +## Supported hardware |
| 22 | + |
| 23 | +The following devices have been implemented in the _labscript suite_:<sup>†</sup> |
| 24 | +* [AlazarTech](https://www.alazartech.com) PCI Express Digitizers (e.g. [ATS9462](https://www.alazartech.com/Product/ATS9462); PR [#41](http://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/41)) |
| 25 | +* [LightCrafter DMD](http://www.ti.com/tool/DLPLCR4500EVM) Digital Micro-mirror Device (PR [#43](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/43)) |
| 26 | +* [MOGLabs Agile RF Synthesizers](https://www.moglabs.com/products/rf-electronics/agile-rf-synth) (ARF/XRF) |
| 27 | +* [National Instruments Data Acquisition](http://www.ni.com/data-acquisition/) ([DAQmx](https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P8baSAC)) devices: |
| 28 | + * [cDAQ-9184](https://www.ni.com/en-us/support/model.cdaq-9184.html) CompactDAQ Chassis |
| 29 | + * [PCI 6251](https://www.ni.com/en-au/support/model.pci-6251.html) Multifunction I/O Device |
| 30 | + * [PCI 6533/6534](http://www.ni.com/pdf/manuals/371464d.pdf) High-Speed Digital Pattern I/O |
| 31 | + * [PCI-6713](https://www.ni.com/en-au/support/model.pci-6713.html) Analog Output Device |
| 32 | + * [PCI-6733](https://www.ni.com/en-au/support/model.pci-6733.html) Analog Output Device |
| 33 | + * PCI-DIO-32HS High-Speed Digital I/O |
| 34 | + * [PCIe-6363](https://www.ni.com/en-us/support/model.pcie-6363.html) Multifunction I/O Device |
| 35 | + * [PCIe-6738](https://www.ni.com/en-us/support/model.pcie-6738.html) Analog Output Device |
| 36 | + * [PXI-6733](https://www.ni.com/en-au/support/model.pxi-6733.html) PXI Analog Output Module |
| 37 | + * [PXIe-6361](https://www.ni.com/en-au/support/model.pxie-6361.html) PXI Multifunction I/O Module |
| 38 | + * [PXIe-6535](https://www.ni.com/en-ie/support/model.pxie-6535.html) PXI Digital I/O Module |
| 39 | + * [PXIe-6738](https://www.ni.com/en-au/support/model.pxie-6738.html) PXI Analog Output Module |
| 40 | + * [USB-6008](https://www.ni.com/en-au/support/model.usb-6008.html) Multifunction I/O Device |
| 41 | + * [USB-6229](https://www.ni.com/en-my/support/model.usb-6229.html) Multifunction I/O Device |
| 42 | + * [USB-6343](https://www.ni.com/en-us/support/model.usb-6343.html) Multifunction I/O Device |
| 43 | + * [Quicksyn FSW-0010](http://ni-microwavecomponents.com/quicksyn-full) Microwave Synthesizer (formerly PhaseMatrix) |
| 44 | + |
| 45 | + **Note:** Since v2.5.0 (June 2019), [`labscript_devices.NI_DAQmx`](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/NI_DAQmx) can be used to automatically generate a labscript device class for _any_ NI-DAQmx device! (PR [#56](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/56)) |
| 46 | + |
| 47 | +* [NovaTech DDS9m](http://www.novatechsales.com/PDF_files/dds9mds_lr.pdf) 170MHz Four Channel Direct Digital Synthesized Signal Generator (see [blog post](http://labscriptsuite.org/blog/tag/novatech-dds9m/)) |
| 48 | +* [OpalKelly XEM3001](https://opalkelly.com/products/xem3001/) FPGA Boards used by the Cicero control system (PR [#50](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/50)) |
| 49 | +* [PineBlaster](http://labscriptsuite.org/hardware/pineblaster) Open-source Digital Pattern Generator |
| 50 | +* [SpinCore](https://www.spincore.com/products/#pulsegeneration) Programmable Pulse Generators and Direct Digital Synthesis |
| 51 | + * [PulseBlasterDDS-II-300-AWG](http://www.spincore.com/products/PulseBlasterDDS-II-300/) |
| 52 | + * [PulseBlasterESR-PRO](https://www.spincore.com/products/PulseBlasterESR-PRO/) |
| 53 | + * [PulseBlasterESR-CompactPCI](https://www.spincore.com/products/PulseBlasterESR-CompactPCI/) |
| 54 | + * [PulseBlaster](https://www.spincore.com/products/PulseBlaster/) e.g. SP2 Model: PB24-100-32k |
| 55 | + * [PulseBlasterUSB](https://www.spincore.com/products/PulseBlasterUSB/) |
| 56 | +* [Tektronix oscilloscopes](https://www.tek.com/oscilloscope) (PR [#61](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/56)) |
| 57 | +* [Zaber](https://www.zaber.com) Motion Controllers, e.g. linear translation stages (PR [#85](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/85)) |
| 58 | + |
| 59 | + |
| 60 | +### Supported cameras |
| 61 | + |
| 62 | +The following cameras are implemented by subclassing [`labscript_devices.Camera`](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/Camera.py), a Python-based camera server which can be controlled directly from [**blacs**](https://github.com/labscript-suite/blacs). |
| 63 | + |
| 64 | +* [FLIR](https://www.flir.com) cameras (e.g. [FlyCapture 2](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/FlyCapture2Camera)) using the free PyCapture2 API (PR [#71](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/9)) |
| 65 | +* [Andor](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/AndorSolis) cameras (PR [#80](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/AndorSolis)) |
| 66 | +* [Basler pylon](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/PylonCamera) (PRs [#69](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/69) and [#74](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/74)). |
| 67 | +* Any camera compatible with National Instruments [IMAQdx](https://github.com/labscript-suite/labscript-devices/tree/master/labscript_devices/IMAQdxCamera) (PRs [#70](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/70), [#72](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/72), [#73](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/73), [#77](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/77), [#79](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/79), [#83](https://bitbucket-archive.labscriptsuite.org/#!/labscript_suite/labscript_devices/pull-requests/83)). |
| 68 | +* This includes most cameras compliant with the [GigE Vision](https://en.wikipedia.org/wiki/GigE_Vision) interface standard, such as [Allied Vision](https://www.alliedvision.com/en/products/cameras.html) cameras. |
| 69 | + |
| 70 | +† We do not endorse the use of any particular hardware. |
| 71 | + |
| 72 | + |
| 73 | +## Installation |
| 74 | + |
| 75 | +labscript-devices is distributed as a Python package on [PyPI](https://pypi.org/user/labscript-suite) and [Anaconda Cloud](https://anaconda.org/labscript-suite), and should be installed with other components of the _labscript suite_. Please see the [installation guide](https://docs.labscriptsuite.org/en/latest/installation) for details. |
0 commit comments