InstroPSU provides a unified interface for programmable power supplies. This class is initialized with a vendor-specific driver (BK9115, KeysightE36100, RigolDP800, …), and provides the vendor-agnostic API (set_voltage, get_voltage, output_enable, …).
Creating an InstroPSU
Supported Vendors
B&K Precision 9115

B&K Precision 914x

Keysight E36100

Rigol DP800

Siglent SPD3303

TDK Lambda Genesys

instro-contrib (install with instro[contrib]; see Contrib drivers):
- Matrix: WPS300S-series single-channel via SCPI/RS-232 (
MatrixWPS300S)
Example
More examples found in ExamplesDetails
The following presents details about theInstroPSU. Specific driver details can be found on their pages.
Driver Composition
AnInstroPSU is built from a concrete driver:
- The vendor driver (e.g.
BK9115) owns the connection setup and vendor-specific command mapping. InstroPSUowns the category-level workflow: measurements, commands, publishers, the background daemon.
Lifecycle
The typical InstroPSU workflow:- Construct: instantiate the vendor driver and pass it to
InstroPSU. open(): establishes the VISA connection.- Configure and measure: set voltage/current limits, enable outputs, read measurements.
start(): begins a periodic background daemon. (Optional)stop(): ends the background daemon (if started).close(): disconnects from hardware.
Init from a Config File
InstroPSU can also be constructed directly from a JSON config file, which removes the need to write any Python setup code:
bench_psu.json contains: