# instro ## Docs - [AGENTS](https://nominal-issue-234-simulated-eload.mintlify.site/AGENTS.md) - [instro](https://nominal-issue-234-simulated-eload.mintlify.site/index.md): An open-source Python library for interfacing with hardware test equipment - [CLI](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/cli.md): Command-line tools for working with instro - [Contrib drivers](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/contrib.md): Drivers Nominal accepts on contributor verification rather than direct testing - [Custom Instruments](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/custom-instruments.md): Build your own instrument type by subclassing `Instrument` - [Data Acquisition (DAQ)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/daq.md): Using InstroDAQ for vendor-independent data acquisition - [Digital Multimeter (DMM)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/dmm.md): Using InstroDMM for SCPI-based digital multimeters - [Driver Dependencies](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/driver-dependencies.md): External vendor drivers and libraries required to use instro - [Electronic Load (ELoad)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/eload.md): Using InstroELoad for SCPI-based programmable electronic loads - [E-Load simulator](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/eload-simulator.md): Run and program the bundled SCPI electronic-load simulator - [Examples](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples.md): Full functional examples for instro - [A minimal custom `Instrument`, a simulated temperature controller whose reading lags the commanded setpoint](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/custom/simple_temp_controller.md) - [DAQ write analog loopback](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_analog_loopback.md) - [NI multi-rate acquisition with two InstroDAQ instances](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_multi_rate_ni.md) - [DAQ read analog HW timed](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_read_analog_hw_timed.md) - [DAQ read analog HW timed without a background daemon](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_read_analog_hw_timed_no_background.md) - [DAQ read analog SW timed](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_read_analog_sw_timed.md) - [DAQ read digital line](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_read_digital_line.md) - [Read a digital port (all lines as one N-bit integer)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_read_digital_port.md) - [Relay Control for DAQs with relays native to them](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_relays.md) - [DAQ write analog SW timed](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_write_analog_sw_timed.md) - [Write digital line](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_write_digital_line.md) - [Write a digital port (all lines as one N-bit integer)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/daq/daq_write_digital_port.md) - [A basic DMM reading](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/dmm/dmm_basic.md) - [ELoad: eload](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/eload/eload.md) - [EtherNet/IP feature showcase](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/ethernetip/ethernetip_example.md) - [Minimal EtherNet/IP example: read a PLC tag and optionally write a setpoint](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/ethernetip/minimal_example.md) - [Building an EtherNet/IP config programmatically (no JSON file)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/ethernetip/programmatic_config_example.md) - [I2C basic example](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/i2c/i2c_basic.md) - [I2C command example](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/i2c/i2c_command.md) - [ModbusDevice loopback test against a LabJack T4](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/modbus/labjack_t4_loopback_test.md) - [Minimal ModbusDevice example: read and write against the sim server](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/modbus/minimal_example.md) - [ModbusDevice feature showcase](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/modbus/modbus_example.md) - [Building a Modbus config programmatically (no JSON file)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/modbus/programmatic_config_example.md) - [PSU without background daemon](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/psu/psu.md) - [PSU with background daemon](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/psu/psu_background_daemon.md) - [Publishers: publish buffered](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/publishers/publish_buffered.md) - [Publishers: publish custom](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/publishers/publish_custom.md) - [Publishers: publish file](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/publishers/publish_file.md) - [Publishers: publish JSONL](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/publishers/publish_jsonl.md) - [Publishers: publish queued](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/publishers/publish_queued.md) - [Oscilloscope background daemon](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/scope/scope_background.md) - [Basic oscilloscope usage](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/scope/scope_basic.md) - [Test rack end-to-end demo](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/examples/test_rack_example/test_rack.md) - [Exceptions](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/exceptions.md): Handling Instro-specific errors - [Installation](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/installation.md): Installing instro - [Library](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/library.md): The `Instrument`, `Measurement`, and `Command` building blocks - [Oscilloscope (Scope)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/oscilloscope.md): Using InstroScope for SCPI-based oscilloscopes - [Overview](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/overview.md): A Python library/framework for interfacing with hardware - [EtherNet/IP](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/protocols/ethernetip.md): Using EtherNet/IP for Allen-Bradley PLC tag communication - [Inter-Integrated Circuit (I2C)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/protocols/i2c/overview.md): Using I2CInterface for vendor-independent I2C communication - [System Definition](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/protocols/i2c/system-definition.md): Understanding SystemDefinition for I2CInterface configuration - [Modbus](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/protocols/modbus.md): Using ModbusDevice for Modbus TCP and RTU device communication - [Protocols](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/protocols/overview.md): Protocol-based instrument communication for industrial protocols - [Power Supply (PSU)](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/psu.md): Using InstroPSU for SCPI-based programmable power supplies - [PSU simulator](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/psu-simulator.md): Run and program the bundled SCPI power-supply simulator - [Publishers](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/publishers.md): How instro gets data to places - [Quickstart](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/quickstart.md): Drive a simulated power supply end-to-end in about five minutes. No hardware required - [Scope and applicability](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/scope.md): What instro is for, and when to use native interfaces instead - [VisaDriver](https://nominal-issue-234-simulated-eload.mintlify.site/instrumentation/transports/visa.md): VISA transport driver for building custom SCPI instrument drivers - [Migrate to instro (v1)](https://nominal-issue-234-simulated-eload.mintlify.site/migration/v1.md): Move your codebase from nominal-instro (<=0.6.x) to instro (>=0.7) ## Optional - [SDK Reference](https://nominal-io.github.io/instro/) - [GitHub](https://github.com/nominal-io/instro) - [Changelog](https://nominal-io.github.io/instro/changelog/)