Skip to main content
Nominal Instro SDK Logo

An open-source, vendor-agnostic Python library for interfacing with test equipment.

PyPI Downloads Docs SDK Community Discord

Quickstart

from instro.daq.drivers.labjack import LabJackTSeriesDriver
# from instro.daq.drivers.ni import NIDAQDriver
from instro.daq import InstroDAQ
from instro.daq.types import Direction
from instro.lib.publishers import FilePublisher

pub = FilePublisher(format="jsonl", directory="/tmp/instro/")

daq = InstroDAQ(
  name       = "myDAQ",
  driver     = LabJackTSeriesDriver(device_id="1234"),
  publishers = [pub],
  #driver    = NIDAQDriver(device_id="Dev1") # swap drivers, same code
  )
daq.open()
daq.configure_analog_channel(
    direction=Direction.INPUT, physical_channel="AIN0", alias="ch_0", range_min=0, range_max=5
)
measurement = daq.read_analog()  # written to `publishers`
print(pub.file_path.read_text())

Installation

Basic

uv add instro
pip install instro

With Additional Packages

uv add "instro[all]"
pip install "instro[all]"

Available packages:

Instrument Type Package Contents
All all All drivers in this table
DAQ daq All DAQ drivers
nidaq NI DAQ package
mccdaq Measurement Computing (MCC) package
labjack LabJack package
I2C i2c All I2C packages
aardvark TotalPhase Aardvark package
EtherNet ethernetip EtherNet/IP support
Other contrib Community-contributed drivers
unstable Experimental unstable modules

See Installation for more info.

Supported devices

Category Class Vendors
Power Supply InstroPSU B&K Precision (9115, 914X), EA Elektro-Automatik (PSB 10000-series), Keysight (E36100-series), Rigol (DP800-series), Siglent (SPD3303), TDK Lambda (Genesys), simulated
Multimeter InstroDMM Agilent 34401A, Keysight 34461A, Keithley 2400, Keithley 2750 (unstable), simulated
Arbitrary Waveform Generator InstroAWG Keysight (33521B), Rigol (DG1022Z)
Electronic Load InstroELoad B&K Precision (85xxB-series), EA Elektro-Automatik (PSB 10000-series)
Oscilloscope InstroScope Keysight (1200X-series), Tektronix (2-series), Siglent (SDS1000X-E)
Flow Controller InstroFlowController Alicat MC-series
DAQ InstroDAQ Keysight 34980A, NI-DAQmx, LabJack T-series, MCC USB-series, DewesoftX (unstable)
I2C I2CInterface Total Phase Aardvark
Modbus ModbusDevice Any Modbus TCP / RTU device
Motor Controller InstroMotorController VESC 6 over CAN via python-can (unstable)
EtherNet/IP EtherNetIPDevice Allen-Bradley / CompactLogix-class PLCs

See Supported devices for more info.

Contributing

To work on instro itself, clone and install with uv:

git clone https://github.com/nominal-io/instro.git
cd instro
uv sync

See Contributing for more info.

License

Apache License 2.0. Third-party dependency notices and proprietary vendor runtime requirements are documented in NOTICE.

Metadata

Release files for instro 1.21.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for instro 1.21.0
File Size Uploaded
instro-1.21.0.tar.gz 8.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for instro 1.21.0
File Interpreter ABI Platform
instro-1.21.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.9 MB

Release files / instro-1.21.0.tar.gz

Download URL instro-1.21.0.tar.gz
Size 8.7 MB
Tags Source
SHA-256 checksum
How to use checksums
8ce6559339e35dc02e17b0e07619ca942297f8fd79fe1ec4b36c7b1b5f5d4d0c
BLAKE2b-256 checksum
How to use checksums
a01b0a75a52103261d0cfa7e4a442963a5cce8fe3b85427d1643bcd12c02c821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release files / instro-1.21.0-py3-none-any.whl

Download URL instro-1.21.0-py3-none-any.whl
Size 197.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
806cf51a4cf60bbdf0c42fcfb77239647330e9e7fd87d1dd32ed0368c1dbbd85
BLAKE2b-256 checksum
How to use checksums
d74d535c4b5a2418c3be9d42e1d250ea06bea274f8e2e35641fcacf189d700ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.21.0 This release

2 release files

1.20.0

2 release files

1.15.0

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page