# PSU (Power Supply Unit)

Programmable power supplies.

## Instrument and Abstract Driver

| [`InstroPSU`](https://dev.nominal.io/instro/ref/instruments/instro.psu.InstroPSU.md#instro.psu.InstroPSU "instro.psu.InstroPSU") | Power-supply instrument. |
| --- | --- |
| [`PSUDriverBase`](https://dev.nominal.io/instro/ref/instruments/instro.psu.PSUDriverBase.md#instro.psu.PSUDriverBase "instro.psu.PSUDriverBase") | Base class for PSU drivers. |

## Vendor Drivers

| Vendor | Model | Description |
| --- | --- | --- |
| B&K Precision | [`9115`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.bk_9115.BK9115.md#instro.psu.drivers.bk_9115.BK9115 "instro.psu.drivers.bk_9115.BK9115") | B&K Precision 9115-series single-channel PSU. |
| B&K Precision | [`914X`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.bk_914x.BK914X.md#instro.psu.drivers.bk_914x.BK914X "instro.psu.drivers.bk_914x.BK914X") | B&K Precision 914X-series multi-channel PSU. |
| GW Instek | [`GPD-3303D`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.gw_instek_gpd3303.GWInstekGPD3303.md#instro.psu.drivers.gw_instek_gpd3303.GWInstekGPD3303 "instro.psu.drivers.gw_instek_gpd3303.GWInstekGPD3303") | GW Instek GPD-3303D 2-channel PSU over its USB virtual COM port. |
| Keysight | [`E36100`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.keysight_e36100.KeysightE36100.md#instro.psu.drivers.keysight_e36100.KeysightE36100 "instro.psu.drivers.keysight_e36100.KeysightE36100") | Keysight E36100-series single-channel PSU. |
| Keysight | [`N5700`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.keysight_n5700.KeysightN5700.md#instro.psu.drivers.keysight_n5700.KeysightN5700 "instro.psu.drivers.keysight_n5700.KeysightN5700") | Keysight N5700-series PSU via the TDK Lambda Genesys SCPI interface. |
| Rigol | [`DP800`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.rigol_dp800.RigolDP800.md#instro.psu.drivers.rigol_dp800.RigolDP800 "instro.psu.drivers.rigol_dp800.RigolDP800") | Rigol DP800-series multi-channel PSU (DP811/DP821/DP831/DP832). |
| Siglent | [`SPD3303`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.siglent_spd3303.SiglentSPD3303.md#instro.psu.drivers.siglent_spd3303.SiglentSPD3303 "instro.psu.drivers.siglent_spd3303.SiglentSPD3303") | Siglent SPD3303-series PSU. |
| TDK Lambda | [`Genesys`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.tdk_lambda_genesys.TDKLambdaGenesys.md#instro.psu.drivers.tdk_lambda_genesys.TDKLambdaGenesys "instro.psu.drivers.tdk_lambda_genesys.TDKLambdaGenesys") | TDK Lambda Genesys-family single-channel PSU. |

## Simulated Drivers

| [`VirtualPSU`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.virtual.VirtualPSU.md#instro.psu.drivers.virtual.VirtualPSU "instro.psu.drivers.virtual.VirtualPSU") | PSU simulated in-process: no transport, server, or hardware. |
| --- | --- |
| [`SimulatedPSU`](https://dev.nominal.io/instro/ref/instruments/instro.psu.drivers.simulated.SimulatedPSU.md#instro.psu.drivers.simulated.SimulatedPSU "instro.psu.drivers.simulated.SimulatedPSU") | Client for the in-process simulated PSU SCPI server. |

## Types & Configuration

| [`OperatingMode`](https://dev.nominal.io/instro/ref/instruments/instro.psu.types.OperatingMode.md#instro.psu.types.OperatingMode "instro.psu.types.OperatingMode") | PSU regulation state: which quantity is currently being held constant, unregulated, or off. |
| --- | --- |
| [`PSUConfig`](https://dev.nominal.io/instro/ref/instruments/instro.psu.config.PSUConfig.md#instro.psu.config.PSUConfig "instro.psu.config.PSUConfig") | Validated config for constructing an InstroPSU from JSON. |
| [`VisaDriverConfig`](https://dev.nominal.io/instro/ref/instruments/instro.psu.config.VisaDriverConfig.md#instro.psu.config.VisaDriverConfig "instro.psu.config.VisaDriverConfig") | Driver config for a VISA-connected PSU. |
| [`resolve_psu_from_config`](https://dev.nominal.io/instro/ref/instruments/instro.psu.config.resolve_psu_from_config.md#instro.psu.config.resolve_psu_from_config "instro.psu.config.resolve_psu_from_config") | Resolve a validated PSUConfig into the `(name, driver, num_channels, config_publishers, poll_interval)` InstroPSU needs. |

### Shared configuration

| Class | Description |
| --- | --- |
| [`DeviceInfo`](https://dev.nominal.io/instro/ref/library/instro.lib.types.DeviceInfo.md#instro.lib.types.DeviceInfo "instro.lib.types.DeviceInfo") | Device metadata. |
| [`TimingConfig`](https://dev.nominal.io/instro/ref/library/instro.lib.config.TimingConfig.md#instro.lib.config.TimingConfig "instro.lib.config.TimingConfig") | Timing configuration for instrument background polling. |
| [`NominalCorePublisherConfig`](https://dev.nominal.io/instro/ref/library/instro.lib.config.NominalCorePublisherConfig.md#instro.lib.config.NominalCorePublisherConfig "instro.lib.config.NominalCorePublisherConfig") | Publisher config for streaming to a Nominal Core dataset. |
| [`FilePublisherConfig`](https://dev.nominal.io/instro/ref/library/instro.lib.config.FilePublisherConfig.md#instro.lib.config.FilePublisherConfig "instro.lib.config.FilePublisherConfig") | Publisher config for writing measurements to a local file. |

---

Errors raised by these methods are documented in [Exceptions](https://dev.nominal.io/instro/ref/library/exceptions.md).
