# Nominal Instrumentation ## Docs - [AGENTS](https://instro.nominal.io/AGENTS.md) - [Nominal Instrumentation](https://instro.nominal.io/index.md): A Python library for interfacing with hardware test equipment - [Contrib drivers](https://instro.nominal.io/instrumentation/contrib.md): Drivers Nominal accepts on contributor verification rather than direct testing - [Custom Instruments](https://instro.nominal.io/instrumentation/custom-instruments.md): Build your own instrument type by subclassing `Instrument` - [Data Acquisition (DAQ)](https://instro.nominal.io/instrumentation/daq.md): Using InstroDAQ for vendor-independent data acquisition - [Digital Multimeter (DMM)](https://instro.nominal.io/instrumentation/dmm.md): Using InstroDMM for SCPI-based digital multimeters - [Driver Dependencies](https://instro.nominal.io/instrumentation/driver-dependencies.md): External vendor drivers and libraries required to use Nominal Instrumentation - [Electronic Load (ELoad)](https://instro.nominal.io/instrumentation/eload.md): Using InstroELoad for SCPI-based programmable electronic loads - [Examples](https://instro.nominal.io/instrumentation/examples.md): Full functional examples for Nominal Instrumentation - [A minimal custom `Instrument`, a simulated temperature controller whose reading lags the commanded setpoint](https://instro.nominal.io/instrumentation/examples/custom/simple_temp_controller.md) - [DAQ write analog loopback](https://instro.nominal.io/instrumentation/examples/daq/daq_analog_loopback.md) - [DAQ read analog HW timed](https://instro.nominal.io/instrumentation/examples/daq/daq_read_analog_hw_timed.md) - [DAQ read analog HW timed without a background daemon](https://instro.nominal.io/instrumentation/examples/daq/daq_read_analog_hw_timed_no_background.md) - [DAQ read analog SW timed](https://instro.nominal.io/instrumentation/examples/daq/daq_read_analog_sw_timed.md) - [DAQ read digital line](https://instro.nominal.io/instrumentation/examples/daq/daq_read_digital_line.md) - [Read a digital port (all lines as one N-bit integer)](https://instro.nominal.io/instrumentation/examples/daq/daq_read_digital_port.md) - [Relay Control for DAQs with relays native to them](https://instro.nominal.io/instrumentation/examples/daq/daq_relays.md) - [DAQ write analog SW timed](https://instro.nominal.io/instrumentation/examples/daq/daq_write_analog_sw_timed.md) - [Write digital line](https://instro.nominal.io/instrumentation/examples/daq/daq_write_digital_line.md) - [Write a digital port (all lines as one N-bit integer)](https://instro.nominal.io/instrumentation/examples/daq/daq_write_digital_port.md) - [A basic DMM reading](https://instro.nominal.io/instrumentation/examples/dmm/dmm_basic.md) - [ELoad: eload](https://instro.nominal.io/instrumentation/examples/eload/eload.md) - [I2C basic example](https://instro.nominal.io/instrumentation/examples/i2c/i2c_basic.md) - [I2C command example](https://instro.nominal.io/instrumentation/examples/i2c/i2c_command.md) - [ModbusDevice loopback test against a LabJack T4](https://instro.nominal.io/instrumentation/examples/modbus/labjack_t4_loopback_test.md) - [Minimal ModbusDevice example: read and write against the sim server](https://instro.nominal.io/instrumentation/examples/modbus/minimal_example.md) - [ModbusDevice feature showcase](https://instro.nominal.io/instrumentation/examples/modbus/modbus_example.md) - [Building a Modbus config programmatically (no JSON file)](https://instro.nominal.io/instrumentation/examples/modbus/programmatic_config_example.md) - [PSU without background daemon](https://instro.nominal.io/instrumentation/examples/psu/psu.md) - [PSU with background daemon](https://instro.nominal.io/instrumentation/examples/psu/psu_background_daemon.md) - [Publishers: publish buffered](https://instro.nominal.io/instrumentation/examples/publishers/publish_buffered.md) - [Publishers: publish custom](https://instro.nominal.io/instrumentation/examples/publishers/publish_custom.md) - [Publishers: publish file](https://instro.nominal.io/instrumentation/examples/publishers/publish_file.md) - [Publishers: publish queued](https://instro.nominal.io/instrumentation/examples/publishers/publish_queued.md) - [Test rack end-to-end demo](https://instro.nominal.io/instrumentation/examples/test_rack_example/test_rack.md) - [Exceptions](https://instro.nominal.io/instrumentation/exceptions.md): Handling Instro-specific errors - [Installation](https://instro.nominal.io/instrumentation/installation.md): Installing the Nominal Instrumentation library - [Library](https://instro.nominal.io/instrumentation/library.md): The `Instrument`, `Measurement`, and `Command` building blocks - [Overview](https://instro.nominal.io/instrumentation/overview.md): A Python library/framework for interfacing with hardware - [Inter-Integrated Circuit (I2C)](https://instro.nominal.io/instrumentation/protocols/i2c/overview.md): Using I2CInterface for vendor-independent I2C communication - [System Definition](https://instro.nominal.io/instrumentation/protocols/i2c/system-definition.md): Understanding SystemDefinition for I2CInterface configuration - [Modbus](https://instro.nominal.io/instrumentation/protocols/modbus.md): Using ModbusDevice for Modbus TCP and RTU device communication - [Protocols](https://instro.nominal.io/instrumentation/protocols/overview.md): Protocol-based instrument communication for industrial protocols - [Power Supply (PSU)](https://instro.nominal.io/instrumentation/psu.md): Using InstroPSU for SCPI-based programmable power supplies - [Publishers](https://instro.nominal.io/instrumentation/publishers.md): How Nominal Instrumentation gets data to places - [Quickstart](https://instro.nominal.io/instrumentation/quickstart.md): Drive a simulated power supply end-to-end in about five minutes. No hardware required - [Scope and Applicability](https://instro.nominal.io/instrumentation/scope.md): Understanding what Nominal Instrumentation is for, where it's applicable, and where it's not - [VisaDriver](https://instro.nominal.io/instrumentation/transports/visa.md): VISA transport driver for building custom SCPI instrument drivers - [Migrate to instro (v1)](https://instro.nominal.io/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/)