Output API#

IOChannel#

The IOChannel module is responsible for adding the parameters of a single digital in/output within a module.

class IOChannelQSM(parent, name, io_channel_idx)[source]#

Bases: Component, ParentAttributeRegistrationMixin

QSM channel representation for the Source Measurement Unit.

Combines all channel specific parameters and functions into a single QCoDes InstrumentChannel.

__init__(parent, name, io_channel_idx)[source]#

Creates an IO channel class and adds all relevant parameters for the channel.

Parameters:
  • parent (Instrument | InstrumentChannel) – The QCoDeS class to which this IO channel belongs.

  • name (str) – Name of this IO channel

  • io_channel_idx (int) – The index of this IO channel in the parent instrument, representing which IO channel is controlled by this class.

get_io_channel_config()[source]#

Get configuration parameters for the given I/O channel.

Return type:

dict[str, Any]

Returns:

dict[str, Any] A JSON object with instrument-specific content.

measure_current()[source]#

Returns the current measured for a specified channel.

Return type:

float

Returns:

float The measured current for the specified channel in amperes.

measure_voltage()[source]#

Returns the voltage measured for a specified channel.

Return type:

float

Returns:

float The measured voltage for the specified channel in volts.

Raises:

ValueError – If the io channel number is not 0 or 4.

set_io_channel_config(config)[source]#

Set configuration parameters for the given I/O channel.

Parameters:

config (dict[str, Any]) – A JSON object with instrument-specific content.

Return type:

None

set_safe_voltage_range(min_voltage, max_voltage)[source]#

Set the safe voltage range for the current channel.

Parameters:
  • min_voltage (float) – The desired minimum voltage in volts.

  • max_voltage (float) – The desired maximum voltage in volts.

Return type:

None

set_voltage_instant(voltage)[source]#

Sets the voltage for a specified channel immediately, bypassing ramping constraints.

Return type:

None

Returns:

None

set_voltage_wait(voltage)[source]#

Sets the voltage for a specified channel and blocks execution until the voltage stabilizes at the requested value.

Parameters:

voltage (float) – The voltage to set.

Return type:

None

property io_channel_idx: int#

Get IO channel index.

Returns:

int IOChannelQSM index

Cluster QSM IOChannel parameters#

IOChannel.source_mode()#

Sets/gets the output sourcing behavior for a specified channel.

Properties:
  • value: <Enum: {‘v_source’, ‘open’, ‘i_source’, ‘ground’}>

IOChannel.measure_mode()#

Sets/gets the measurement precision for a specified channel.

Properties:
  • value: <Enum: {‘automatic’, ‘fine_picoampere’, ‘fine_nanoampere’, ‘coarse’}>

IOChannel.slew_rate()#

Sets/gets the slew rate for output adjustment for the specified channel.

Properties:
  • unit: V/s

  • value: <Numbers>

IOChannel.integration_time()#

Sets/gets the integration time for the specified channel.

Properties:
  • unit: s

  • value: <Numbers 0.0001<=v<=10, Multiples of 0.0001>

IOChannel.coarse_voltage()#

Sets/gets the coarse voltage for the specified channel.

Properties:
  • unit: V

  • value: <Numbers -10.0<=v<=10.0>

IOChannel.fine_voltage()#

Sets/gets the fine voltage for the specified channel.

Properties:
  • unit: V

  • value: <Numbers 0<=v<=0.0025>

IOChannel.low_pass_filter_cutoff()#

Sets/gets the output low-pass filter mode for a specified channel.

Properties:
  • unit: Hz

  • value: <Enum: {<FilterMode.FREQ_10_KHZ: 10000>, <FilterMode.FREQ_10_HZ: 10>, <FilterMode.FREQ_250_KHZ: 250000>}>

IOChannel.get_io_channel_config() dict[str, Any]#

Get configuration parameters for the given I/O channel.

Returns:

A JSON object with instrument-specific content.

Return type:

dict[str, Any]

IOChannel.measure_current() float#

Returns the current measured for a specified channel.

Returns:

The measured current for the specified channel in amperes.

Return type:

float

IOChannel.measure_voltage() float#

Returns the voltage measured for a specified channel.

Returns:

The measured voltage for the specified channel in volts.

Return type:

float

Raises:

ValueError – If the io channel number is not 0 or 4.

IOChannel.reset_io_channel_output() None#

Resets the output for a specified QSM channel to zero.

Raises:

Exception – Invalid input parameter type.

Note

This method calls Cluster.reset_io_channel_output using functools.partial

Note

This method calls Module.reset_io_channel_output using functools.partial

IOChannel.set_io_channel_config(config: dict[str, Any]) None#

Set configuration parameters for the given I/O channel.

Parameters:

config (dict[str, Any]) – A JSON object with instrument-specific content.

IOChannel.set_safe_voltage_range(min_voltage: float, max_voltage: float) None#

Set the safe voltage range for the current channel.

Parameters:
  • min_voltage (float) – The desired minimum voltage in volts.

  • max_voltage (float) – The desired maximum voltage in volts.

IOChannel.set_voltage_instant(voltage: float) None#

Sets the voltage for a specified channel immediately, bypassing ramping constraints.

Return type:

None

IOChannel.set_voltage_wait(voltage: float) None#

Sets the voltage for a specified channel and blocks execution until the voltage stabilizes at the requested value.

Parameters:

voltage (float) – The voltage to set.