instro depends on external software to be installed for various hardware interactions to be successful. These must be installed on your system before you can use the corresponding instro drivers.
Understanding the distinction: These vendor-installable drivers are different from the driver classes that an
Instrument is composed with:- Vendor-installable drivers: External libraries/drivers developed by instrument vendors that must be installed to your system operating system. These are necessary to install, regardless of using
instro, to interact with the vendor hardware on the system in any way/environment. instrodriver classes: The vendor/model-specific Python code thatInstrumentuses to interact with the external software drivers.
Overview
Before usinginstro with specific instrument types, you must install the corresponding vendor driver or library. The table below shows which vendor drivers are required for which instro instrument types:
| Vendor Driver | Required For | Used By instro Drivers |
|---|---|---|
| VISA | SCPI/VISA-based instruments (PSUs, ELoads, Keysight DAQ) | All VISA-based driver implementations |
| NI-DAQmx | National Instruments DAQ devices | NIDAQDriver |
| LJM (LabJack Module) | LabJack T-Series devices | LabJackTSeriesDriver |
MCC Universal Library (mcculw) | Measurement Computing DAQ devices | MCCDriver |
| Total Phase USB Drivers | Total Phase Aardvark I2C/SPI Host Adapter | Aardvark |
VISA
VISA (Virtual Instrument Software Architecture) is used byinstro for all SCPI/VISA based instrument connections. instro installs pyvisa and the default Python backend, so many TCP/IP, USB-TMC, and serial resources work without a vendor VISA runtime.
- pyvisa (Python VISA library)
- pyvisa-py (default Python backend)
- Vendor VISA runtimes (optional, instrument/interface dependent)
Installation
Default Python backend:- Installed with
instro:pyvisaandpyvisa-py
- Download and install the runtime required by your instrument vendor.
NI-DAQmx
NI-DAQmx is the National Instruments driver for their DAQ devices. This driver must be installed before using National Instruments DAQ devices withinstro.
Used By
InstroDAQ: National Instruments DAQ devices (viaNIDAQDriver)
Installation
- Download and install NI-DAQmx from the National Instruments website
- Verify installation by opening NI-MAX (Measurement & Automation Explorer) and confirming your device appears
Alternative Installation (Python)
You can also install NI-DAQmx via thenidaqmx Python package’s driver installer:
LJM (LabJack Module)
LJM is the LabJack Module library required to communicate with LabJack T-Series devices (T4, T7, T8).Used By
InstroDAQ: LabJack T-Series devices (viaLabJackTSeriesDriver)
Installation
- Download LJM from the LabJack website
- Install the LJM package for your operating system
- The Python bindings (
labjack.ljm) are typically included with the LJM installation
MCC Universal Library (mcculw)
The MCC Universal Library is the Measurement Computing driver stack for their USB and Ethernet DAQ devices. It must be installed before using MCC devices with instro.
Used By
InstroDAQ: Measurement Computing DAQ devices (viaMCCDriver)
Installation
- Download and install the MCC DAQ Software (includes InstaCal and the Universal Library) from the Measurement Computing website.
- Open InstaCal and confirm your device appears in the board list. Note the device’s unique ID. You pass this as the
device_idargument toMCCDriver()when constructing the driver handed toInstroDAQ. - The Python bindings (
mcculw) are installed automatically when you install theinstro[mccdaq]orinstro[daq]extras.
The MCC Universal Library is currently only available on Windows. MCC DAQ support in
instro is therefore limited to Windows hosts.Total Phase USB Drivers
Total Phase USB Drivers are required to communicate with Total Phase Aardvark I2C/SPI Host Adapter devices.Used By
I2CInterface: Total Phase Aardvark I2C/SPI Host Adapter (viaAardvark)
Installation
- Download the USB Drivers from the Total Phase website
Adding New Drivers
Asinstro adds support for new instrument vendors, additional vendor-installable drivers may be required. This page will be updated to document any new dependencies. If you’re developing a custom driver that requires a vendor-installable driver not documented here, please ensure your documentation clearly states this requirement.