Skip to main content
Nominal logo

Instro: You Write the Driver, We Buy the Instrument

John Hoehner

/

We're building dedicated Instro development and regression test racks to keep the main build reliable, instrument by instrument. We’ll prioritize new instrument purchases monthly based on community contributions!

Instrumentation Library Regression Rack Blog
Figure 1

The gap in open source instrumentation libraries today is that no one maintains the hardware to keep them honest. A driver looks fine in a pull request, gets merged, and then fails the first time someone runs it against the actual hardware. You find out at the bench, mid-test. So you give up and roll your own driver again, which is exactly the fragmentation this library exists to end.

Meet R. Patrik, our first instro regression bench!

As the instro community grows and contributes drivers for instruments we don't own yet, we buy a representative unit, rack it, and put it under test. We're building dedicated development and regression racks whose only job is keeping the main build honest, instrument by instrument. When a driver lives in the instro package, we own that class of instrument and it runs in CI nightly. You are not the one discovering it's broken.

Some drivers come in faster than we can buy the hardware behind them. Those live in instro-contrib. They're community-submitted and accepted on the contributor's word rather than our own bench test. A lower bar, labeled clearly, and still genuinely usable. Think of it as the on-ramp while we catch up on the hardware.

Here's the instruments we support today:

Power Supply Units (PSU)
BK Precision 9115-Series (VISA)
Keysight E361000-Series (VISA)
Rigol DP-Series (VISA)
Siglent SPD-Series (VISA)
TDK Lambda Genesys Family (VISA)
SimulatedPSU (VISA)
Electronic Loads (ELoad)
BK Precision 85XX Series (VISA)
Digital Multimeter (DMM)
Agilent 34401A (VISA)
Keithley 2400 (VISA)
Data Acquisition Device (DAQ)
NI-DAQmx Devices (NI-DAQmx Driver)
LabJack T-Series (LJM Driver)
MCCULW Devices (MCCULW Driver)
Oscilloscopes (Scopes)
Keysight InfiniVision 1200 X-Series (VISA)
Siglent SDS1000X-E Series (VISA)
Tektronix 2 Series (VISA)
Total Phase Aardvark I2C Adapter (Total Phase Driver)
Modbus Devices (pymodbus)
EtherNet/IP Devices (rust-ethernet-ip)

We’re targeting 200 drivers by Jan 1, 2027, and eventually 2,000 or more as we grow the base with the incredible global test community! We can’t wait to consistently ask our finance team for more budget and more floor space for the rapid growing regression testing racks.

If you've got hardware we don't support yet, here's how to contribute a driver.

If you just want to see what any of this looks like first, the Quickstart runs against a simulated instrument — no hardware required. It takes about five minutes.