qcodespp.instrument_drivers.QDevil.QDAC2_Array

Classes

Module Contents

class qcodespp.instrument_drivers.QDevil.QDAC2_Array.Array_Arrangement_Context(qdacs: QDac2_Array, contacts: Dict[str, Dict[str, int]], output_triggers: Dict[str, Dict[str, int]] | None = None, internal_triggers: Sequence[str] | None = None)
__enter__()
__exit__(exc_type, exc_val, exc_tb)
property contact_names: Sequence[str]
Returns:

Sequence[str]: Channel names

channel(contact: str) qcodespp.instrument_drivers.QDevil.QDAC2.QDac2Channel
Args:

contact (str): Name

Returns:

QDac2Channel: Instrument channel

qdac_names() Sequence[str]
virtual_voltage(contact: str) float
Args:

contact (str): Name of contact

Returns:

float: Voltage before correction

set_virtual_voltages(contacts_to_voltages: Dict[str, float]) None
currents_A(nplc: int = 1, current_range: str = 'low') Sequence[float]

Measure currents on all contacts

The order is that of contacts()

Args:

nplc (int, optional): Number of powerline cycles to average over current_range (str, optional): Current range (default low)

leakage(modulation_V: float, nplc: int = 2) numpy.ndarray

Run a simple leakage test between the contacts

Each contact is changed in turn and the resulting change in current from steady-state is recorded. The resulting resistance matrix is calculated as modulation_voltage divided by current_change.

Args:

modulation_V (float): Virtual voltage added to each contact nplc (int, Optional): Powerline cycles to wait for each measurement

Returns:

ndarray: contact-to-contact resistance in Ohms

class qcodespp.instrument_drivers.QDevil.QDAC2_Array.QDac2_Array(controller: qcodespp.instrument_drivers.QDevil.QDAC2.QDac2, listeners: Sequence[qcodespp.instrument_drivers.QDevil.QDAC2.QDac2])

A collection of interconnected QDAC-IIs

The instruments are required to be connected as described in section 5.5 ‘Synchronization of multiple QDAC-II units’ in the manual. The sync cables must be left in place after sync, so that the clock is continuously distributed, and the Controller can trigger all Listerners by sending pulses from Ext Out 4 to all Ext In 3 simultaneously.

property trigger_out: int
property common_trigger_in: qcodespp.instrument_drivers.QDevil.QDAC2.ExternalInput
property controller: str
Returns:

str: Name of Controller

property names: FrozenSet[str]
Returns:

FrozenSet[str]: Names of all QDAC-IIs in the array

allocate_trigger() qcodespp.instrument_drivers.QDevil.QDAC2.QDac2Trigger_Context

Allocate internal trigger on the Controller

Returns:

QDac2Trigger_Context: context manager

connect_external_trigger(port: int, trigger: qcodespp.instrument_drivers.QDevil.QDAC2.QDac2Trigger_Context, width_s: float = 1e-06) None

Route internal trigger to external trigger

Args:

port (int): External output trigger number trigger (QDac2Trigger_Context): Internal trigger width_s (float, optional): Output trigger width in seconds (default 1ms)

trigger(internal_trigger: qcodespp.instrument_drivers.QDevil.QDAC2.QDac2Trigger_Context)

Fire an internal trigger on the Controller

Args:

QDac2Trigger_Context: internal trigger

sync() None

Synchronizes the array of QDAC-IIs

The Listeners will stop using their own clock and start using the Controller’s clock.

arrange(contacts: Dict[str, Dict[str, int]], output_triggers: Dict[str, Dict[str, int]] | None = None, internal_triggers: Sequence[str] | None = None) Array_Arrangement_Context

An arrangement of contacts across several QDAC-II instruments

The arrangement is a collection of QDac2.arrangement, one for each instrument but with a dedicated controller.

See QDac2.arrangement() for further documentation. Note that an array arrangement does not (yet) support corrections between contacts (which the indiviual arrangements on each instrument does).

Args:

contacts (Dict[str,Dict[str, int]]): Instrument name to contact-name/channel pairs output_triggers (Dict[str,Dict[str, int]], optional): Instrument name to name/output-trigger pairs internal_triggers (Sequence[str], optional): List of names of internal triggers to allocate on the controller

Returns:

Array_Arrangement_Context: context manager