Quickstart#

Drive a simulated power supply end-to-end in about five minutes. No hardware required

Step-by-step#

instro ships with a built-in SCPI simulator, so you can try the library without owning any hardware.

Install instro

pip install instro

Start the simulated PSU

Open a separate terminal and start the bundled simulator.

python -m instro.psu.scpi_sim_server

Construct an InstroPSU

Create an InstroPSU driven by the SimulatedPSU driver. The driver owns the VISA transport.

from instro.psu import InstroPSU
from instro.psu.drivers import SimulatedPSU
from instro.lib.publishers import FilePublisher

file_pub = FilePublisher(format="jsonl", directory="/tmp/instro/")
psu = InstroPSU(
    name="bench_psu",
    driver=SimulatedPSU("TCPIP0::127.0.0.1::5025::SOCKET"),
    publishers=[file_pub],
    num_channels=2,
)
psu.open()

Configure Instrument

apply() sets the current limit, then the voltage, then enables the output.

psu.set_overvoltage_protection_level(5.5, channel=1)
psu.set_overvoltage_protection_enabled(True, channel=1)
psu.apply(current_limit=1.0, voltage=5.0, enable=True, channel=1)

Make Measurements

Measurement getters return a Measurement object. Use .latest to grab the current value. Every measurement is timestamped, tagged, and streamed to the Publishers.

voltage = psu.get_voltage(channel=1)
current = psu.get_current(channel=1)
print(f"V: {voltage.latest:.3f} V")
print(f"I: {current.latest:.3f} A")

Close Up Shop

When you’re done, disable the output and close the connection. close() stops the background daemon and flushes the publishers.

psu.output_enable(False, channel=1)
psu.close()

Read the Data

All Commands and Measurements are logged to the publishers.

print(file_pub.file_path.read_text())  # commands and measurements written to the publisher
Installation
Installation
Examples
Examples
Supported Instruments
Instruments