Instrumental is a Python-based library for controlling lab hardware like cameras, DAQs, oscilloscopes, spectrometers, and more. It has high-level drivers for instruments from NI, Tektronix, Thorlabs, PCO, Photometrics, Burleigh, and others.
Note As of version 0.7, Instrumental has dropped support for Python 2 and now requires Python 3.7+
Instrumental’s goal is to make common tasks simple to perform, while still providing the flexibility to perform complex tasks with relative ease. It also makes it easy to mess around with instruments in the shell. For example, to list the available instruments and open one of them:
>>> from instrumental import instrument, list_instruments >>> paramsets = list_instruments() >>> paramsets [<ParamSet[TSI_Camera] serial='05478' number=0>, <ParamSet[K10CR1] serial='55000247'> <ParamSet[NIDAQ] model='USB-6221 (BNC)' name='Dev1'>] >>> daq = instrument(paramsets[2]) >>> daq <instrumental.drivers.daq.ni.NIDAQ at 0xb61...>
If you’re going to be using an instrument repeatedly, save it for later:
>>> daq.save_instrument('myDAQ')
Then you can simply open it by name:
>>> daq = instrument('myDAQ')
Instrumental also bundles in some additional support code, including:
A server-client implementation for controlling instruments from remote machines
Plotting and curve fitting utilities
Utilities for acquiring and organizing data
Instrumental makes use of NumPy, SciPy, Matplotlib, and Pint, a Python units library. It optionally uses PyVISA/VISA and other drivers for interfacing with lab equipment.
For install information, documentation, examples, and more, see our page on ReadTheDocs.
If you would like to cite Instrumental, to give it more visibility to other researchers, you can cite the repository through Zenodo (DOI: 10.5281/zenodo.2556398).
Metadata
Release files for Instrumental-lib 0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Instrumental-lib-0.8.tar.gz | 311.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Instrumental_lib-0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 628.2 kB
Release files / Instrumental-lib-0.8.tar.gz
| Download URL | Instrumental-lib-0.8.tar.gz |
|---|---|
| Size | 311.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d288363873c895fa562b6c1178a9ab77ee9dd1f8c5d5490bd51c5d2571a2f15a
|
|
BLAKE2b-256 checksum How to use checksums |
8fe42c4a560ae418dc72a0730cea50bb2a16ee9130691cdf616d6e76ae810b14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 1, 2025.
Transparency logRelease files / Instrumental_lib-0.8-py3-none-any.whl
| Download URL | Instrumental_lib-0.8-py3-none-any.whl |
|---|---|
| Size | 316.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a2420e7967e19c15fe1a3192806404ba917806319d78f829db4d283015c4ac62
|
|
BLAKE2b-256 checksum How to use checksums |
b51c855f639a7111672ae94e44a560ffcc01e6c354bc47e1e399372d18e040a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 1, 2025.
Transparency log