Skip to main content
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 Nominal Instrumentation drivers.
Understanding the distinction: These vendor-installable drivers are different from the driver classes that a 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.
  • Nominal driver classes: The vendor/model-specific Python code that Instrument uses to interact with the external software drivers.

Overview

Before using instro with specific instrument types, you must install the corresponding vendor driver or library. The table below shows which vendor drivers are required for which Nominal instrument types:
Vendor DriverRequired ForUsed By Nominal Drivers
VISASCPI/VISA-based instruments (PSUs, ELoads, Keysight DAQ)All VISA-based driver implementations
NI-DAQmxNational Instruments DAQ devicesNIDAQDriver
LJM (LabJack Module)LabJack T-Series devicesLabJackTSeriesDriver
MCC Universal Library (mcculw)Measurement Computing DAQ devicesMCCDriver
Total Phase USB DriversTotal Phase Aardvark I2C/SPI Host AdapterAardvark

VISA

VISA (Virtual Instrument Software Architecture) is required by instro for all SCPI/VISA based instrument connections.
  • NI VISA (IVI-compatible VISA driver) like NI-VISA
  • pyvisa (Python VISA library)
VISA must be installed and configured before using instruments that communicate via SCPI over VISA connections.

Installation

NI VISA: pyvisa:
  • Install via pip: pip install pyvisa
  • You may also need backend drivers depending on your connection type (USB, TCP/IP, Serial)

NI-DAQmx

NI-DAQmx is the National Instruments driver for their DAQ devices. This driver must be installed before using National Instruments DAQ devices with instro.

Used By

  • InstroDAQ: National Instruments DAQ devices (via NIDAQDriver)

Installation

  1. Download and install NI-DAQmx from the National Instruments website
  2. Verify installation by opening NI-MAX (Measurement & Automation Explorer) and confirming your device appears

Alternative Installation (Python)

You can also install NI-DAQmx via the nidaqmx Python package’s driver installer:
python -m nidaqmx installdriver

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 (via LabJackTSeriesDriver)

Installation

  1. Download LJM from the LabJack website
  2. Install the LJM package for your operating system
  3. 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 (via MCCDriver)

Installation

  1. Download and install the MCC DAQ Software (includes InstaCal and the Universal Library) from the Measurement Computing website.
  2. Open InstaCal and confirm your device appears in the board list. Note the device’s unique ID. You pass this as the device_id argument to MCCDriver() when constructing the driver handed to InstroDAQ.
  3. The Python bindings (mcculw) are installed automatically when you install the instro[mccdaq] or instro[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 (via Aardvark)

Installation

  1. Download the USB Drivers from the Total Phase website

Adding New Drivers

As instro 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.