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.

set_current_wait(current)[source]#

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

Parameters:

current (float) – The current to set.

Return type:

None

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_current_range(min_current, max_current)[source]#

Set the safe current range for the current channel.

Parameters:
  • min_current (float) – The desired minimum current in amperes.

  • max_current (float) – The desired maximum current in amperes.

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: {‘open’, ‘v_source’, ‘i_source’, ‘ground’}>

IOChannel.measure_mode()#

Sets/gets the measurement precision for a specified channel.

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

IOChannel.slew_rate()#

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

Properties:
  • unit: V/s

  • value: <Numbers 0.019<=v<=19999>

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 | list[float]#

Measures the current of the specified IO channel(s) on a specific slot.

Returns:

The measured current in Amperes. Returns a single float if io_channels is an int. Returns a list[float] if io_channels is an iterable.

Return type:

Union[float, list[float]]

Note

This method calls Cluster._measure_current using functools.partial

Note

This method calls Module.measure_current using functools.partial

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:

Note

This method calls Cluster._measure_voltage using functools.partial

Note

This method calls Module.measure_voltage using functools.partial

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_current_wait(current: float) None#

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

Parameters:

current (float) – The current to set.

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_current_range(min_current: float, max_current: float) None#

Set the safe current range for the current channel.

Parameters:
  • min_current (float) – The desired minimum current in amperes.

  • max_current (float) – The desired maximum current in amperes.

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.