Instrument Drivers¶

Base Instrument¶

class zhinst.toolkit.control.drivers.base.BaseInstrument(name: str, device_type: zhinst.toolkit.interface.interface.DeviceTypes, serial: str, discovery=None, **kwargs)

High-level controller for all Zurich Instrument devices.

It can be used by itself or inherited for device specific controllers. It provides information and functionality common to all devices, such as a name, serial number, device type, interface, options, etc.

The instrument holds a DeviceConnection which handles all the communication with the data server. It also initializes a NodeTree that is used to access all the settings in the device’s nodetree.

>>> import zhinst.toolkit as tk
>>> ...
>>> inst = tk.BaseInstrument("myDevice", tk.DeviceTypes.HDAWG, "dev8000", interface="USB")
>>> inst.setup()
Successfully connected to data server at localhost 8004 api version: 6
>>> inst.connect_device()
Successfully connected to device DEV8000 on interface USB
>>> inst.nodetree
<zhinst.toolkit.control.node_tree.NodeTree object at 0x000001640D222CC8>

Parameters
• name (str) – Identifier for the instrument.

• device_type (DeviceType) – Type enum of the device type.

• serial (str) – Serial number of the device, e.g. ‘dev2281’. The serial number can be found on instrument back panel.

• discovery – An instance of ziDiscovery to lookup the device

nodetree

A Nodetree object contains a data structure that recreates the nodetree hierarchy of the instrument settings. The leaves of the tree are Parameters that can be called to get and set the according value from the device. The Nodetree can be used to navigate all available device settings without having to know the exact node path of the setting. Alternatively, the node can always be accessed using the _set(…) and _get(…) methods.

Type

zhinst.toolkit.control.node_tree.NodeTree

name

Identifier for the instrument.

Type

str

device_type

Type enum of the device type.

Type

DeviceType

serial

Serial number of the device.

Type

str

interface

Type of the device interface used, can be specified as a keyword argument to __init__().

Type

str

options

Options installed on the instrument.

Type

list

is_connected

A flag that shows if the device has established a connection to the data server.

Type

bool

Raises

ToolkitError – If no serial serial is given or it is not of string type

_get(command: str, valueonly: bool = True)

Getter for the instrument.

This method gets a node value from the device, specified by a node string. Passes the arguments to the getter of the DeviceConnection and the ZIConnection. Eventually this method wraps around daq.get(…) in zhinst.ziPython.

>>> hdawg._get("sigouts/0/on")
1


The method also supports wildcards in the node path that can be specified with ‘ * ‘ as a placeholder. The flag valueonly can be used to get the exact node of the values.

>>> hdawg._get("sigouts/*/on")
[1, 0, 0, 0, 0, 0, 0]
>>> hdawg._get("sigouts/*/on", valueonly=False)
{'sigouts/0/on': 1,
'sigouts/1/on': 0,
'sigouts/2/on': 0,
'sigouts/3/on': 0,
'sigouts/4/on': 0,
'sigouts/5/on': 0,
'sigouts/6/on': 0,
'sigouts/7/on': 0}

Parameters
• command (str) – A node string to the parameter.

• valueonly (bool) – A flag to select if only the value should be returned or a dict with node/value pairs (default: True)

Raises

ToolkitError – if called and the device is not yet connected to the data server.

Returns

The value of the parameter corresponding to the specified node. If valueonly=False the value is returned in a dict with the node as a key.

_set(*args, sync=False)

Setter for the instrument.

This method sets a node value to the device, specified by a node string. Passes the arguments to the setter of the DeviceConnection and the ZIConnection.

The keyword argument sync is set to False by default and this method eventually wraps around daq.set(…) in zhinst.ziPython.

>>> hdawg._set("sigouts/0/on", 1)


If the keyword argument sync is set to True, this method eventually wraps around one of the three daq.syncSet…(…) methods in zhinst.ziPython.

>>> hdawg._set("sigouts/0/on", 1, sync=True)
1


The method also supports wildcards in the node path that can be specified with ‘ * ‘ as a placeholder.

>>> hdawg._set("sigouts/*/on", 1)


Instead of specifying a single node path and a value, the user is free to pass a list of node / value pairs to the method to apply several settings at once with one call of the method.

>>> settings = [
>>>     ("sigouts/0/on", 1),
>>>     ("sigouts/0/range", 0.75),
>>>     ("sigouts/0/offset", 0.5),
>>>     ("sigouts/0/filter", 0),
>>>     ...
>>> ]
>>> hdawg._set(settings)


If the keyword argument sync is set to True in this case, a global synchronisation between the device and the data server will be performed automatically using daq.sync() in zhinst.ziPython.

>>> hdawg._set(settings, sync=True)

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after setting the node (default: False).

Raises

ToolkitError – If called and the device in not yet connected to the data server.

Returns

The value set on the device as returned from one of the API’s syncSet…(…) methods, if a single node path and a value is passed and sync is set to True.

connect_device(nodetree: bool = True) → None

Connects the device to the data server.

This method connects the device to the data server of its connection, initializes the NodeTree and applies initial device settings. A data server connection needs to be set up beforehand by calling setup().

Parameters

nodetree (bool) – If True, the NodeTree object will be initialized after connecting the device, otherwise not (Default: True).

factory_reset(sync=True) → None

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after loading the factory preset (default: True).

setup(connection: zhinst.toolkit.control.connection.ZIConnection = None) → None

Sets up the data server connection.

The details of the connection (host, port, api_level) can be specified as keyword arguments in the __init__() method. Alternatively, the user can pass an existing ZIConnection to the data server to be used for the instrument.

Parameters

connection (ZIConnection) – An existing data server connection. If specified, this data server will be used to establish a DeviceConnection (default: None).

sync()

Perform a global synchronisation between the device and the data server.

Eventually wraps around the daq.sync() of the API.

Raises

ToolkitError – If called and the device in not yet connected to the data server.

HDAWG¶

class zhinst.toolkit.HDAWG(name: str, serial: str, discovery=None, **kwargs)

Bases: zhinst.toolkit.control.drivers.base.base.BaseInstrument

High-level driver for Zurich Instruments HDAWG.

Inherits from BaseInstrument and defines device specific methods and properties. The four AWG Cores of the HDAWG can be accessed through the property awgs that is a list of four AWGCore s that are specific for the device and inherit from the AWGCore class.

>>> from zhinst.toolkit import HDAWG
>>> ...
>>> hd = HDAWG("hdawg 1", "dev8030")
>>> hd.setup()
>>> hd.connect_device()
>>> hd.nodetree
<zhinst.toolkit.tools.node_tree.NodeTree object at 0x0000021E467D3BA8>
nodes:
- stats
- oscs
- status
- sines
- awgs
- dio
- system
- sigouts
- triggers
- features
- cnts
parameters:
- clockbase

Parameters
• name (str) – Identifier for the HDAWG.

• serial (str) – Serial number of the device, e.g. ‘dev8000’. The serial number can be found on the back panel of the instrument.

• discovery – an instance of ziDiscovery

awgs

A list of four device-specific AWG Cores of type zhinst.toolkit.control.drivers.hdawg.AWG.

Type

list

allowed_sequences

A list of SequenceType s that the instrument supports.

Type

list

allowed_trigger_modes

A list of TriggerMode s that the instrument supports.

Type

list

ref_clock

Clock source used as the frequency and time base reference. Either 0: “internal”, 1: “external” or 2: “zsync”. 0: “internal: Internal 10 MHz clock 1: “external: An external clock. Provide a clean and stable 10 MHz or 100 MHz reference to the appropriate back panel connector. 2: “zsync: A ZSync clock is intended to be used.

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock_status

Status of the reference clock. Either 0: “locked”, 1: “error” or 2: “busy”.

Type

zhinst.toolkit.control.node_tree.Parameter

connect_device(nodetree: bool = True) → None

Connects the device to the data server and initializes the AWGs.

Keyword Arguments

nodetree (bool) – A flag that specifies if all the parameters from the device’s nodetree should be added to the object’s attributes as zhinst-toolkit Parameters. (default: True)

enable_manual_mode() → None

Disconnect from PQSC

This method sets the reference clock source and DIO settings to factory default states and the instrument is disconnected from the PQSC.

enable_qccs_mode() → None

Configure the instrument to work with PQSC

This method sets the reference clock source and DIO settings correctly to connect the instrument to the PQSC.

factory_reset(sync=True) → None

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after loading the factory preset (default: True).

num_awg_cores()

Find the number of AWG Cores available in the instrument.

AWGCore for the HDAWG¶

class zhinst.toolkit.control.drivers.hdawg.AWG(parent: zhinst.toolkit.control.drivers.base.base.BaseInstrument, index: int)

Bases: zhinst.toolkit.control.drivers.base.awg.AWGCore

Device-specific AWG Core for HDAWG.

This class inherits from the base AWGCore and adds zhinst-toolkit Parameter s such as output, modulation frequency or gains. It also applies sequence specific settings for the HDAWG, depending on the type of SequenceProgram on the AWG Core.

>>> hd.awgs[0]
<zhinst.toolkit.hdawg.AWG object at 0x0000021E467D3320>
parent  : <zhinst.toolkit.hdawg.HDAWG object at 0x0000021E467D3198>
index   : 0
sequence:
type: None
('target', 'hdawg')
('clock_rate', 2400000000.0)
('period', 0.0001)
('trigger_mode', 'None')
('repetitions', 1)
('alignment', 'End with Trigger')
...

>>> hd.awgs[0].outputs(["on", "on"])
>>> hd.awgs[0].single(True)
>>> hd.awgs[0].enable_iq_modulation()
>>> hd.awgs[0].modulation_freq(123.45e6)
>>> hd.awgs[0].gain1()
1.0


Command table data can be specified and uploaded to the AWG core as follows:

>>> command_table = []
>>> command_table.append(
>>>    {
>>>        "index": 0,
>>>        "waveform": {"index": 0},
>>>        "amplitude0": {"value": 1.0, "increment": False},
>>>    }
>>> )
>>> command_table.append(
>>>    {
>>>        "index": 1,
>>>        "waveform": {"index": 0},
>>>        "amplitude0": {"value": 0.5, "increment": False},
>>>    }
>>> )


See more about AWG Cores at zhinst.toolkit.control.drivers.base.AWGCore.

ct

A device-specific CommandTable for the HDAWG.

Type

zhinst.toolkit.control.drivers.hdawg.CT

output1

State of the output 1, i.e. one of {‘on’, ‘off’}.

Type

zhinst.toolkit.control.node_tree.Parameter

output2

State of the output 2, i.e. one of {‘on’, ‘off’}.

Type

zhinst.toolkit.control.node_tree.Parameter

modulation_freq

Frequency of the modulation in Hz if IQ modulation is enabled.

Type

zhinst.toolkit.control.node_tree.Parameter

modulation_phase_shift

Phase shift in degrees between I and Q quadratures if IQ modulation is enabled (default: 90).

Type

zhinst.toolkit.control.node_tree.Parameter

gain1

Gain of the output channel 1 if IQ modulation is enabled. Must be between -1 and +1 (default: +1).

Type

zhinst.toolkit.control.node_tree.Parameter

gain2

Gain of the output channel 2 if IQ modulation is enabled. Must be between -1 and +1 (default: +1).

Type

zhinst.toolkit.control.node_tree.Parameter

single

State of the AWG single shot mode, i.e. one of {True, False} (default: True).

Type

zhinst.toolkit.control.node_tree.Parameter

zsync_register_mask

Register mask configuration to select only the portion of interest of the register output forwarded from the PQSC to the HDAWG. Can be between 0 and 15 (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

zsync_register_shift

Register shift configuration to select only the portion of interest of the register output forwarded from the PQSC to the HDAWG. Can be between 0 and 3 (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

zsync_register_offset

Register offset configuration to select the base index of the command table to be addressed. Can be between 0 and 1023 (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

zsync_decoder_mask

Decoder mask configuration to select only the portion of interest of the decoder output forwarded from the PQSC to the HDAWG. Can be between 0 and 255 (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

zsync_decoder_shift

Decoder shift configuration to select only the portion of interest of the decoder output forwarded from the PQSC to HDAWG. Can be between 0 and 7 (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

zsync_decoder_offset

Decoder offset configuration to select the base index of the command table to be addressed. Can be between 0 and 1023 (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

disable_iq_modulation() → None

Disables IQ modulation on the AWG Core.

Resets the settings of the sine generators and the AWG modulation.

enable_iq_modulation() → None

Enables IQ Modulation on the AWG Core.

This method applies the corresponding settings for IQ modulation using one of the internal oscillators and two sine generators. The sines are used to modulate the AWG output channels. The parameters modulation_freq, modulation_phase_shift and gain1, gain2 correspond to the settings of the oscillator and the sine generators.

UHFQA¶

class zhinst.toolkit.UHFQA(name: str, serial: str, discovery=None, **kwargs)

Bases: zhinst.toolkit.control.drivers.base.base.BaseInstrument

High-level driver for the Zurich Instruments UHFQA Quantum Analyzer.

Inherits from BaseInstrument and adds an AWGCore and a list of ReadoutChannels. They can be accessed as properties of the UHFQA.

>>> import zhinst.toolkit as tk
>>> ...
>>> uhfqa = tk.UHFQA("uhfqa", "dev2000")
>>> uhfqa.setup()
>>> uhfqa.connect_device()
>>> ...
>>> uhfqa.nodetree
<zhinst.toolkit.tools.node_tree.NodeTree object at 0x0000021091FFC898>
nodes:
- stats
- osc
- triggers
- status
- dio
- auxin
- scope
- system
- sigins
- sigouts
- features
- auxouts
- awg
- qa
parameters:
- clockbase


A measurement using the AWG Core could look like this:

>>> uhfqa.awg.set_sequence_params(...)
>>> uhfqa.channels[0].enable()
>>> uhfqa.qa_delay(8) # adjust quantum analyzer delay
>>> ...
>>> uhfqa.arm(length=100, averages=1)   # arm the QA Readout, set length and averages
>>> uhfqa.awg.run()                     # start the AWG
>>> uhfqa.awg.wait_done()               # wait until AWG is finished
>>> result = uhfqa.channels[0].result() # get the result vector

Parameters
• name (str) – Identifier for the UHFQA.

• serial (str) – Serial number of the device, e.g. ‘dev2000’. The serial number can be found on the back panel of the instrument.

• discovery – an instance of ziDiscovery

awg

A device-specific AWGCore for the UHFQA.

Type

zhinst.toolkit.control.drivers.uhfqa.AWG

channels

A list of ten zhinst.toolkit.control.drivers.uhfqa.ReadoutChannel s that each represent the digital signal processing path on the instrument.

Type

list

allowed_sequences

A list of SequenceType s that the instrument supports.

Type

list

allowed_trigger_modes

A list of TriggerMode s that the instrument supports.

Type

list

integration_time

The time in seconds used for signal integration. The value must be greater than and multiple of 2.222 ns. The maximum value when using weighted integration is ca. 2.275 us (default: 2.0 us).

Type

zhinst.toolkit.control.node_tree.Parameter

integration_length

The integration length in number of samples. The value must be gerater than and multiple of 4. The maximum value when using weighted integration is 4096 samples (default: 4096).

Type

zhinst.toolkit.control.node_tree.Parameter

result_source

This parameter selects the stage in the signal processing path that is used as the source for the QA results. It can be one of {“Crosstalk”, “Threshold”, “Rotation”, “Crosstalk Correlation”, “Threshold Correlation”, “Integration”}.

Type

zhinst.toolkit.control.node_tree.Parameter

averaging_mode

Mode of averaing in the QA Result Acquisition. Either “Sequential” or “Cyclic”. “Sequential”: The first point of the Result vector is the average of the first N results where N is the value of the result averages setting. The second point is the average of the next N results, and so forth. “Cyclic”: The first point in the Result vector is the average of the results 1, M+1, 2M+1, …, where M is the value of the result length setting. The second point is the average of the results number 2, M+2, 2M+2, …, and so forth.

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock

Clock source used as the frequency and time base reference. Either 0: “internal” or 1: “external”. 0: “internal: Internal 10 MHz clock 1: “external: An external 10 MHz clock. Provide a clean and stable 10 MHz reference to the appropriate back panel connector.

Type

zhinst.toolkit.control.node_tree.Parameter

arm(length=None, averages=None) → None

Prepare UHFQA for result acquisition.

This method enables the QA Results Acquisition and resets the acquired points. Optionally, the result length and result averages can be set when specified as keyword arguments. If they are not specified,they are not changed.

Parameters
• length (int) – If specified, the length of the result vector will be set before arming the UHFQA readout (default: None).

• averages (int) – If specified, the result averages will be set before arming the UHFQA readout (default: None).

connect_device(nodetree: bool = True) → None

Connects the device to the data server and initializes the AWG.

Parameters

nodetree (bool) – A flag that specifies if all the parameters from the device’s nodetree should be added to the object’s attributes as zhinst-toolkit Parameters (default: True).

crosstalk_matrix(matrix=None)

Sets or gets the crosstalk matrix of the UHFQA as a 2D array.

Parameters

matrix (2D array) – The 2D matrix used in the digital signal processing path to compensate for crosstalk between the different channels. The given matrix can also be a part of the entire 10 x 10 matrix. Its maximum dimensions are 10 x 10 (default: None).

Returns

If no argument is given the method returns the current crosstalk matrix as a 2D numpy array.

Raises

ValueError – If the matrix size exceeds the maximum size of 10 x 10

disable_readout_channels(channels: List = range(0, 10)) → None

Disables weighted integration on the specified readout channels.

Parameters

channels (list) – A list of indices of channels to disable. (default: range(10))

Raises

ValueError – If the channel list contains an element outside the allowed range.

enable_manual_mode() → None

Disconnect from the PQSC.

This method sets the reference clock source and DIO settings to factory default states and the instrument is disconnected from the PQSC.

enable_qccs_mode() → None

Configure the instrument to work with PQSC.

This method sets the reference clock source and DIO settings correctly to connect the instrument to the PQSC.

enable_readout_channels(channels: List = range(0, 10)) → None
Enable weighted integration on the specified readout

channels.

Parameters

channels (list) – A list of indices of channels to enable. (default: range(10))

Raises

ValueError – If the channel list contains an element outside the allowed range.

factory_reset(sync=True) → None

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after loading the factory preset (default: True).

qa_delay(value=None)

Set or get the adjustment in the the quantum analyzer delay.

Parameters

value (int) – Number of additional samples to adjust the delay (default: None)

Returns

The adjustment in delay in units of samples.

Raises

ValueError – If the adjusted quantum analyzer delay is outside the allowed range.

AWGCore for the UHFQA¶

class zhinst.toolkit.control.drivers.uhfqa.AWG(parent: zhinst.toolkit.control.drivers.base.base.BaseInstrument, index: int)

Bases: zhinst.toolkit.control.drivers.base.awg.AWGCore

Device-specific AWG Core for UHFQA.

Inherits from AWGCore and adds zhinst-toolkit Parameter s like output or gains. This class also specifies sequence specific settings for the UHFQA.

>>> uhf.awg
<zhinst.toolkit.control.drivers.uhfqa.AWG object at 0x000001E20BD98908>
parent  : <zhinst.toolkit.control.drivers.uhfqa.UHFQA object at 0x000001E20BC754C8>
index   : 0
sequence:
type: SequenceType.NONE
('target', <DeviceTypes.UHFQA: 'uhfqa'>)
('clock_rate', 1800000000.0)
('period', 0.0001)
('trigger_mode', <TriggerMode.NONE: 'None'>)
('trigger_samples', 32)
('repetitions', 1)
('alignment', <Alignment.END_WITH_TRIGGER: 'End with Trigger'>)
...

>>> uhf.awg.outputs(["on", "on"])
>>> uhf.awg.single(True)
>>> uhf.awg.gain1()
1.0

output1

The state of the output of channel 1. Can be one of {‘on’, ‘off’}.

Type

zhinst.toolkit.control.node_tree.Parameter

output2

The state of the output of channel 2. Can be one of {‘on’, ‘off’}.

Type

zhinst.toolkit.control.node_tree.Parameter

gain1

Gain of the output channel 1. The value must be between -1 and +1 (default: +1).

Type

zhinst.toolkit.control.node_tree.Parameter

gain2

Gain of the output channel 2. The value must be between -1 and +1 (default: +1).

Type

zhinst.toolkit.control.node_tree.Parameter

single

State of the AWG single shot mode, i.e. one of {True, False} (default: True).

Type

zhinst.toolkit.control.node_tree.Parameter

compile() → None

Wrap the ‘compile(…)’ method of the parent class AWGCore.

update_readout_params() → None

This method gets the frequency, amplitude and phase shift values from the readout channels and uses them to update the sequence parameters.

Raises

ToolkitError – If the selected sequence type is not ‘Readout’

class zhinst.toolkit.control.drivers.uhfqa.ReadoutChannel(parent: zhinst.toolkit.control.drivers.base.base.BaseInstrument, index: int)

Bases: object

Implements a Readout Channel for UHFQA.

This class represents the signal processing chain for one of the ten ReadoutChannels of a UHFQA. One channel is typically used for dispersive resonator readout of superconducting qubits.

>>> ch = uhfqa.channels[0]
>>> uhfqa.result_source("Threshold")
>>> ...
>>> ch.enable()
>>> ch
rotation          : 0.0
threshold         : 0.0
phase_shift       : 0
>>> ch.rotation(123.4)
>>> ch.threshold(-56.78)
>>> ...
>>> ch.result()
array([0.0, 1.0, 1.0, 1.0, 0.0, ...])


The readout channel can be enabled with enable() which means that the weighted integration mode is activated and integration weights are set to demodulate the signal at the given readout frequency. If the channel is enabled, the readout parameters are also used for signal generation in the AWGCore if the sequence type is set to ‘Readout’.

index

The index of the Readout Channel from 1 - 10.

Type

int

rotation

The rotation applied to the signal in IQ plane. The angle is specified in degrees.

Type

zhinst.toolkit.control.nodetree.Parameter

threshold

The signal threshold used for state discrimination in the thresholding unit.

Type

zhinst.toolkit.control.nodetree.Parameter

result

This read-only Parameter holds the result vector for the given readout channel as a 1D numpy array.

Type

zhinst.toolkit.control.nodetree.Parameter

Raises

ValueError – If the channel index is not in the allowed range.

disable() → None

Disable weighted integration for this channel.

This method also resets the corresponding integration weights.

enable() → None

Enable weighted integration for this channel.

This enables weighted integration mode and sets the corresponding integration weights to demodulate at the given readout frequency.

enabled() → bool

Returns if weighted integration is enabled.

int_weights_envelope(envelope=None)

Set or get the envelope multiplied with the integration weights.

Parameters

envelope (list or double) – Envelope value or list of values to be multiplied with the integration weights. Each value must be between 0.0 and 1.0 (default: 1.0).

Raises

ToolkitError – If integration weight envelope is given as a list or array but the length of the list does not match the integration length.

phase_shift(ph=None)

Sets or gets the readout phase shift for this channel.

Additional phase shift in the signal generation between I and Q quadratures. (default: 0)

readout_amplitude(amp=None)

Sets or gets the readout amplitude for this channel.

The amplitude of the readout pulse is used for signal generation of the readout tone if the channel is enabled and if the AWG SequenceProgram is of type ‘Readout’ (default: 1.0).

readout_frequency(freq=None)

Sets or gets the readout frequency for this channel.

Readout frequency in Hz of the readout channel. If the AWG SequenceProgram is of type “Readout”, this Parameter is used to generate a readout tone at the given readout frequency for all readout channels that are enabled. This frequency is also used in the signal acquisition for digital demodulation if the readout channel is enabled. The frequency must be positive.

SHFQA¶

class zhinst.toolkit.SHFQA(name: str, serial: str, discovery=None, **kwargs)

Bases: zhinst.toolkit.control.drivers.base.base.BaseInstrument

High-level driver for the Zurich Instruments SHFQA Quantum Analyzer.

Inherits from BaseInstrument and defines device specific methods and properties. All QAChannels of the SHFQA can be accessed through the property qachannels that is a list of four QAChannel s that are specific for the device and inherit from the SHFQAChannel class. Similarly, the Scope of the SHFQA can be accessed through the property scope

>>> from zhinst.toolkit import SHFQA
>>> ...
>>> shf = SHFQA("shfqa 1", "dev12000")
>>> shf.setup()
>>> shf.connect_device()
>>> shf.nodetree
<zhinst.toolkit.control.node_tree.NodeTree object at 0x00000224288A97C8>
nodes:
- stats
- status
- system
- features
- qachannels
- scope
- dio
parameters:
- clockbase

Parameters
• name (str) – Identifier for the SHFQA.

• serial (str) – Serial number of the device, e.g. ‘dev12000’. The serial number can be found on the back panel of the instrument.

• discovery – an instance of ziDiscovery

qachannels

A list of four device-specific SHFQAChannels of type zhinst.toolkit.control.drivers.shfqa.QAChannel.

Type

list

scope

A device-specific SHFScope.

Type

zhinst.toolkit.control.drivers.shfqa.Scope

allowed_sequences

A list of SequenceType s that the instrument supports.

Type

list

allowed_trigger_modes

A list of TriggerMode s that the instrument supports.

Type

list

sw_trigger

Issues a single software trigger event

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock

The intended reference clock source to be used as the frequency and time base reference. When the source is changed, all the instruments connected with ZSync links will be disconnected. The connection should be re-established manually. Can be either 0: “internal” or 1: “external”.

0: “internal”: Internal 10 MHz clock

1: “external”: An external clock. Provide a clean and stable 10 MHz or 100 MHz reference to the appropriate back panel connector.

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock_actual

The actual reference clock source. Can be either 0: “internal” or 1: “external”.

0: “internal”: Internal 10 MHz clock

1: “external”: An external clock.

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock_status

Status of the reference clock. Can be either 0: “locked”, 1: “error” or 2: “busy”.

Type

zhinst.toolkit.control.node_tree.Parameter

check_ref_clock(blocking: bool = True, timeout: int = 30, sleep_time: int = 1) → None

Check if reference clock is locked successfully.

Parameters
• blocking (bool) – A flag that specifies if the program should be blocked until the reference clock is ‘locked’. (default: True)

• timeout (int) – Maximum time in seconds the program waits when blocking is set to True (default: 30).

• sleep_time (int) – Time in seconds to wait between requesting the reference clock status (default: 1)

Raises

ToolkitError – If the device fails to lock on the reference clock.

clear_trigger_loopback()

Stop the the internal loopback trigger pulse.

connect_device(nodetree: bool = True) → None

Connects the device to the data server.

Parameters

nodetree (bool) – A flag that specifies if all the parameters from the device’s nodetree should be added to the object’s attributes as zhinst-toolkit Parameters. (default: True)

factory_reset(sync=True) → None

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after loading the factory preset (default: True).

num_integrations_per_qachannel()

Find the number of integration units per qachannel.

num_qachannels()

Find the number of qachannels available in the instrument.

set_trigger_loopback()

Start a trigger pulse using the internal loopback.

A 1kHz continuous trigger pulse from marker 1 A using the internal loopback to trigger in 1 A.

QAChannel for the SHFQA¶

class zhinst.toolkit.control.drivers.shfqa.QAChannel(parent: zhinst.toolkit.control.drivers.base.base.BaseInstrument, index: int)

Bases: zhinst.toolkit.control.drivers.base.shf_qachannel.SHFQAChannel

Device-specific QAChannel for SHFQA.

This class inherits from the base SHFQAChannel and adds zhinst-toolkit Parameter s such as output, input or center frequency. The Generator of a QAChannel can be accessed through the property generator which is a Generator specific for the device and inherits from the SHFGenerator class. The Sweeper of a QAChannel can be accessed through the property sweeper that is a Sweeper specific for the device and inherits from the SHFSweeper class.

See more about SHF QAChannels at zhinst.toolkit.control.drivers.base.SHFQAChannel.

generator

A device-specific SHFGenerator for the SHFQA.

Type

zhinst.toolkit.control.drivers.shfqa.Generator

readout

A device-specific SHFReadout for the SHFQA.

Type

zhinst.toolkit.control.drivers.shfqa.Readout

sweeper

A device-specific SHFSweeper for the SHFQA.

Type

zhinst.toolkit.control.drivers.shfqa.Sweeper

input

State of the input, i.e. one of {‘on’, ‘off’}.

Type

zhinst.toolkit.control.node_tree.Parameter

input_range

Maximal range in dBm of the signal input power. The instrument selects the closest available range with a resolution of 5 dBm.

Type

zhinst.toolkit.control.node_tree.Parameter

output

State of the output, i.e. one of {‘on’, ‘off’}.

Type

zhinst.toolkit.control.node_tree.Parameter

output_range

Maximal range in dBm of the signal input power. The instrument selects the closest available range with a resolution of 5 dBm.

Type

zhinst.toolkit.control.node_tree.Parameter

center_freq

The center frequency in Hz of the analysis band. Must be between 1 GHz and 8 GHz.

Type

zhinst.toolkit.control.node_tree.Parameter

mode

Select between Spectroscopy and Qubit Readout modes

“spectroscopy”: the Signal Output is connected to the Oscillator, with which also the measured signals are correlated.

“readout”: the Signal Output is connected to the Readout Pulse Generator, and the measured signals are correlated with the Integration Weights before state discrimination.

Type

zhinst.toolkit.control.node_tree.Parameter

Generator for the SHFQA¶

class zhinst.toolkit.control.drivers.shfqa.Generator(parent: zhinst.toolkit.control.drivers.base.shf_qachannel.SHFQAChannel)

Bases: zhinst.toolkit.control.drivers.base.shf_generator.SHFGenerator

Device-specific Generator for SHFQA.

This class inherits from the base SHFGenerator and adds zhinst-toolkit Parameter s such as digital trigger sources or single. It also applies sequence specific settings for the SHFQA, depending on the type of SequenceProgram on the SHF Generator.

>>> shf.qachannels[0].generator
<zhinst.toolkit.control.drivers.shfqa.Generator object at 0x0000017E57BEEE48>
parent  : <zhinst.toolkit.control.drivers.shfqa.QAChannel object at 0x0000017E57BE9748>
index   : 0
sequence:
type: SequenceType.NONE
('target', <DeviceTypes.SHFQA: 'shfqa'>)
('clock_rate', 2000000000.0)
('period', 0.0001)
('trigger_mode', <TriggerMode.SEND_TRIGGER: 'Send Trigger'>)
('trigger_samples', 32)
('repetitions', 1)
('alignment', <Alignment.END_WITH_TRIGGER: 'End with Trigger'>)
...

>>> shf.qachannels[0].output('on')
>>> shf.qachannels[0].output_range(10)
>>> shf.qachannels[0].generator.single(True)
>>> shf.qachannels[0].generator.dig_trigger1_source('chan0trigin0')
'chan0trigin0'


See more about SHFGenerators at zhinst.toolkit.control.drivers.base.SHFGenerator.

single

State of the Generator single shot mode, i.e. one of {True, False} (default: True).

Type

zhinst.toolkit.control.node_tree.Parameter

dig_trigger1_source

Selects the source of the Digital Trigger 1 (default: ‘chan0trigin0’).

To list the available options:

>>> shf.qachannels[0].generator.dig_trigger1_source

Type

zhinst.toolkit.control.node_tree.Parameter

dig_trigger2_source

Selects the source of the Digital Trigger 2 (default: ‘chan0trigin0’).

To list the available options:

>>> shf.qachannels[0].generator.dig_trigger2_source

Type

zhinst.toolkit.control.node_tree.Parameter

playback_delay

A common delay for the start of the playback for all Waveform Memories. The resolution is 2 ns (default: 0.0).

Type

zhinst.toolkit.control.node_tree.Parameter

Sweeper for the SHFQA¶

class zhinst.toolkit.control.drivers.shfqa.Sweeper(parent: zhinst.toolkit.control.drivers.base.shf_qachannel.SHFQAChannel)

Bases: zhinst.toolkit.control.drivers.base.shf_sweeper.SHFSweeper

Device-specific Sweeper for SHFQA.

This class inherits from the base SHFSweeper and adds zhinst-toolkit Parameter s such as integration time or oscillator_gain.

A typical sweeper configuration for a simple spectroscopy measurement would look like this:

>>> sweeper = shf.qachannels[0].sweeper
>>> # Trigger settings
>>> sweeper.trigger_source("channel0_trigger_input0")
>>> sweeper.trigger_level(0)
>>> sweeper.trigger_imp50(1)
>>> # Sweep settings
>>> sweeper.oscillator_gain(0.8)
>>> sweeper.start_frequency(0)
>>> sweeper.stop_frequency(200e6)
>>> sweeper.num_points(51)
>>> sweeper.mapping("linear")
>>> # Averaging settings
>>> sweeper.integration_time(100e-6)
>>> sweeper.num_averages(2)
>>> sweeper.averaging_mode("sequential")


See more about SHF Sweepers at zhinst.toolkit.control.drivers.base.SHFSweeper.

integration_time

Integration length in Spectroscopy mode in unit of seconds. Note that setting the integration_time automatically updates the integration_length. The integration time has a minimum value and a granularity of 2 ns. Up to 16.7 ms can be recorded (default: 512e-9).

Type

zhinst.toolkit.control.node_tree.Parameter

integration_length

Integration length in Spectroscopy mode in number of samples. Note that setting the integration_length automatically updates the integration_time. The integration length has a minimum value and a granularity of 4 samples. Up to 33.5 MSa (2^25 samples) can be recorded (default: 1024).

Type

zhinst.toolkit.control.node_tree.Parameter

integration_delay

Sets the delay of the integration in Spectroscopy mode with respect to the Trigger signal. The resolution is 2 ns (default: 0).

Type

zhinst.toolkit.control.node_tree.Parameter

oscillator_gain

Gain of the digital Oscillator. The gain is defined relative to the Output Range of the QAChannel. Must be between 0 and 1.0 (default: 1.0).

Type

zhinst.toolkit.control.node_tree.Parameter

oscillator_freq

Controls the frequency of each digital Oscillator. Must be between 0 and 1e9 (default: 10e6).

Type

zhinst.toolkit.control.node_tree.Parameter

trigger_source

Selects the source of the trigger for the integration and envelope in Spectroscopy mode (default: “chan0trigin0”).

To list the available options:

>>> shf.qachannels[0].sweeper.trigger_source

Type

zhinst.toolkit.control.node_tree.Parameter

averaging_mode(mode=None)

Set or get the averaging mode for the sweeper.

Parameters

mode (str) –

Averaging mode for the sweeper. Can be either “sequential” or “cyclic” (default: None).

”sequential”: A frequency point is measured the number of times specified by the number of averages setting. In other words, the same frequency point is measured repeatedly until the number of averages is reached and the sweeper then moves to the next frequency point.

”cyclic”: All frequency points are measured once from start frequency to stop frequency. The sweeper then moves back to start frequency and repeats the sweep the number of times specified by the number of averages setting.

mapping(map=None)

Set or get the mapping configuration for the sweeper.

Parameters

map (str) – Mapping that specifies the distances between frequency points of the sweeper. Can be either “linear” or “log” (default: None).

num_averages(num=None)

Set or get the number of averages for the sweeper.

Number of averages specifies how many times a frequency point will be measured and averaged.

Parameters

num (int) – Number of times the sweeper measures one frequency point (default: None).

num_points(num=None)

Set or get the number of points for the sweeper.

Parameters

num (int) – Number of frequency points to sweep between start and stop frequency values (default: None).

output_freq()

Get the output frequency.

Returns

The carrier frequency in Hz of the microwave signal at the Out connector. This frequency corresponds to the sum of the Center Frequency and the Offset Frequency.

start_frequency(freq=None)

Set or get the start frequency for the sweeper.

Parameters

freq (float) – Start frequency in Hz of the sweeper (default: None).

stop_frequency(freq=None)

Set or get the stop frequency for the sweeper.

Parameters

freq (float) – Stop frequency in Hz of the sweeper (default: None).

trigger_imp50(imp50=None)

Set or get the trigger input impedance setting for the sweeper.

Parameters

imp50 (bool) – Trigger input impedance selection for the sweeper. When set to True, the trigger input impedance is 50 Ohm. When set to False, it is 1 kOhm (default: None).

trigger_level(level=None)

Set or get the trigger level for the sweeper.

Parameters

level (float) – Trigger level of the sweeper (default: None).

Scope for the SHFQA¶

class zhinst.toolkit.control.drivers.shfqa.Scope(parent: zhinst.toolkit.control.drivers.base.base.BaseInstrument)

Bases: zhinst.toolkit.control.drivers.base.shf_scope.SHFScope

Device-specific Scope for SHFQA.

This class inherits from the base SHFScope and adds zhinst-toolkit Parameter s such as channels, input_selects, trigger_source, trigger_delay, etc…

channel1

Enable recording for Scope channel 1. Can be either ‘on’ or ‘off’ (default: ‘off’).

Type

zhinst.toolkit.control.node_tree.Parameter

channel2

Enable recording for Scope channel 2. Can be either ‘on’ or ‘off’ (default: ‘off’).

Type

zhinst.toolkit.control.node_tree.Parameter

channel3

Enable recording for Scope channel 3. Can be either ‘on’ or ‘off’ (default: ‘off’).

Type

zhinst.toolkit.control.node_tree.Parameter

channel4

Enable recording for Scope channel 4. Can be either ‘on’ or ‘off’ (default: ‘off’).

Type

zhinst.toolkit.control.node_tree.Parameter

input_select1

Select the scope input signal for channel 1 (default: ‘chan0sigin’).

To list the available options:

>>> shf.scope.input_select1

Type

zhinst.toolkit.control.node_tree.Parameter

input_select2

Select the scope input signal for channel 2 (default: ‘chan0sigin’).

To list the available options:

>>> shf.scope.input_select2

Type

zhinst.toolkit.control.node_tree.Parameter

input_select3

Select the scope input signal for channel 3 (default: ‘chan0sigin’).

To list the available options:

>>> shf.scope.input_select3

Type

zhinst.toolkit.control.node_tree.Parameter

input_select4

Select the scope input signal for channel 4 (default: ‘chan0sigin’).

To list the available options:

>>> shf.scope.input_select4

Type

zhinst.toolkit.control.node_tree.Parameter

trigger_source

Select the scope trigger source signal (default: ‘chan0trigin0’).

To list the available options:

>>> shf.scope.trigger_source

Type

zhinst.toolkit.control.node_tree.Parameter

trigger_delay

The delay of a Scope measurement. A negative delay results in data being acquired before the trigger point. The resolution is 2 ns (default: 0.0).

Type

zhinst.toolkit.control.node_tree.Parameter

length

Length of the recorded Scope shot in number of samples It has a minimum value and a granularity of 16. Up to 262.1 kSa (2^18 samples) can be recorded (default: 32). (default: 32).

Type

zhinst.toolkit.control.node_tree.Parameter

time

Time base of the Scope (default: ‘2 GHz’).

To list the available options:

>>> shf.scope.time

Type

zhinst.toolkit.control.node_tree.Parameter

PQSC¶

class zhinst.toolkit.PQSC(name: str, serial: str, discovery=None, **kwargs)

Bases: zhinst.toolkit.control.drivers.base.base.BaseInstrument

High-level driver for the Zurich Instruments PQSC.

>>> import zhinst.toolkit as tk
>>> pqsc = tk.PQSC("pqsc", "dev10000")
>>> pqsc.setup()
>>> pqsc.connect_device()
>>> pqsc.nodetree
>>> ...

Parameters
• name (str) – Identifier for the PQSC.

• serial (str) – Serial number of the device, e.g. ‘dev1234’. The serial number can be found on the back panel of the instrument.

• discovery – an instance of ziDiscovery

ref_clock

The intended reference clock source to be used as the frequency and time base reference. When the source is changed, all the instruments connected with ZSync links will be disconnected. The connection should be re-established manually. Can be either 0: “internal” or 1: “external”.

0: “internal”: Internal 10 MHz clock

1: “external”: An external clock. Provide a clean and stable 10 MHz or 100 MHz reference to the appropriate back panel connector.

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock_actual

The actual reference clock source. Can be either 0: “internal” or 1: “external”.

0: “internal”: Internal 10 MHz clock

1: “external”: An external clock.

Type

zhinst.toolkit.control.node_tree.Parameter

ref_clock_status

Status of the reference clock. Can be either 0: “locked”, 1: “error” or 2: “busy”.

Type

zhinst.toolkit.control.node_tree.Parameter

progress

The fraction of the triggers generated so far.

Type

zhinst.toolkit.control.node_tree.Parameter

repetitions

The number of triggers sent over ZSync ports. Must be between 1 and 4.3M (default: 1).

Type

zhinst.toolkit.control.node_tree.Parameter

holdoff

The time in seconds between repeated triggers sent over ZSync ports. Hold-off time has a minimum value and a granularity of 100 ns. Note that the PQSC is disabled at the end of the hold-off time after sending out the last trigger. Therefore, the hold-off time should be long enough such that the PQSC is still enabled when the feedback arrives. Otherwise, the feedback cannot be processed (default: 100e-9).

Type

zhinst.toolkit.control.node_tree.Parameter

arm(sync=True, repetitions: int = None, holdoff: float = None) → None

Prepare PQSC for triggering the instruments.

This method configures the execution engine of the PQSC and clears the register bank. Optionally, the number of triggers and hold-off time can be set when specified as keyword arguments. If they are not specified, they are not changed.

Note that the PQSC is disabled at the end of the hold-off time after sending out the last trigger. Therefore, the hold-off time should be long enough such that the PQSC is still enabled when the feedback arrives. Otherwise, the feedback cannot be processed.

Parameters
• sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after stopping the PQSC and clearing the register bank (default: True).

• repetitions (int) – If specified, the number of triggers sent over ZSync ports will be set (default: None).

• holdoff (double) – If specified, the time between repeated triggers sent over ZSync ports will be set. It has a minimum value and a granularity of 100 ns (default: None).

arm_and_run(repetitions: int = None, holdoff: float = None) → None

Arm the PQSC and start sending out triggers.

Simply combines the methods arm and run. A synchronisation is performed between the device and the data server after arming and running the PQSC.

Parameters
• repetitions (int) – If specified, the number of triggers sent over ZSync ports will be set (default: None).

• holdoff (double) – If specified, the time between repeated triggers sent over ZSync ports will be set. It has a minimum value and a granularity of 100 ns (default: None).

check_ref_clock(blocking: bool = True, timeout: int = 30, sleep_time: int = 1) → None

Check if reference clock is locked successfully.

Keyword Arguments
• blocking (bool) – A flag that specifies if the program should be blocked until the reference clock is ‘locked’. (default: True)

• timeout (int) – Maximum time in seconds the program waits when blocking is set to True (default: 30).

• sleep_time (int) – Time in seconds to wait between requesting the reference clock status (default: 1)

Raises

ToolkitError – If the device fails to lock on the reference clock.

check_zsync_connection(ports=0, blocking=True, timeout=30) → None

Check if the ZSync connection on the given port is successful.

This function checks the current status of the instrument connected to the given port.

Parameters
• ports (list) or (int) – The port numbers to check the ZSync connection for. It can either be a single port number given as integer or a list of several port numbers. (default: 0)

• blocking (bool) – A flag that specifies if the program should be blocked until the status is ‘connected’. (default: False)

• timeout (int) – Maximum time in seconds the program waits when blocking is set to True. (default: 30)

Raises

ToolkitError – If ZSync connection to the instruments on the specified ports is not established.

connect_device(nodetree: bool = True) → None

Connects the device to the data server.

Parameters

nodetree (bool) – A flag that specifies if all the parameters from the device’s nodetree should be added to the object’s attributes as zhinst-toolkit Parameters. (default: True)

factory_reset(sync=True) → None

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after loading the factory preset (default: True).

run(sync=True) → None

Start sending out triggers.

This method activates the trigger generation to trigger all connected instruments over ZSync ports.

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after enabling the PQSC (default: True).

stop(sync=True) → None

Stop the trigger generation.

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after disabling the PQSC (default: True).

wait_done(timeout: float = 10, sleep_time: float = 0.005) → None

Wait until trigger generation and feedback processing is done.

Parameters
• timeout (float) – The maximum waiting time in seconds for the PQSC (default: 10).

• sleep_time (float) – Time in seconds to wait between requesting PQSC state

Raises

TimeoutError – If the PQSC is not done sending out all triggers and processing feedback before the timeout.

UHFLI¶

class zhinst.toolkit.UHFLI(name: str, serial: str, discovery=None, **kwargs)

Bases: zhinst.toolkit.control.drivers.base.base.BaseInstrument

High-level driver for Zurich Instruments UHFLI Lock-In Amplifier.

Inherits from BaseInstrument and adds a DAQModule, a SweeperModule and an AWGCore (if option installed). The modules can be accessed as properties of the UHFLI.

>>> import zhinst.toolkit as tk
>>> uhfli = tk.UHFLI("uhfli", "dev1111")
>>> uhfli.setup()
>>> uhfli.connect_device()
>>> uhfli.nodetree
>>> ...

>>> signal = uhfli.daq.signals_add("demod1", "r")
>>> uhfli.daq.measure()
...
>>> result = uhfli.daq.results[signal]

>>> signal = uhfli.sweeper.signals_add("demod1")
>>> uhfli.sweeper.sweep_parameter("frequency")
>>> uhfli.sweeper.measure()
...
>>> result = uhfli.sweeper.results[signal]

name

Identifier for the UHFLI.

Type

str

serial

Serial number of the device, e.g. ‘dev1234’. The serial number can be found on the back panel of the instrument.

Type

str

daq

Data Acquisition Module of the instrument.

Type

zhinst.toolkit.control.drivers.base.DAQModule

sweeper

Sweeper Module of the instrument.

Type

zhinst.toolkit.control.drivers.base.SweeperModule

awg

AWG Module of the instrument if the the option is installed.

Type

zhinst.toolkit.control.drivers.uhfqa.AWG

connect_device(nodetree: bool = True) → None

Establishes a device connection.

Connects the device to a data server and initializes the DAQModule, SweeperModule and AWG (if option installed).

Keyword Arguments

nodetree (bool) – A flag that specifies if all the parameters from the device’s nodetree should be added to the object’s attributes as zhinst-toolkit Parameters. (default: True)

factory_reset(sync=True) → None

Parameters

sync (bool) – A flag that specifies if a synchronisation should be performed between the device and the data server after loading the factory preset (default: True).

MFLI¶

class zhinst.toolkit.MFLI(name: str, serial: str, discovery=None, **kwargs)

Bases: zhinst.toolkit.control.drivers.base.base.BaseInstrument

High-level driver for the Zurich Instruments MFLI Lock-In Amplifier.

Inherits from BaseInstrument and adds a DAQModule and a SweeperModule. They can be accessed as properties of the MFLI.

>>> import zhinst.toolkit as tk
>>> mfli = tk.MFLI("mfli", "dev1234")
>>> mfli.setup()
>>> mfli.connect_device()
>>> mfli.nodetree
...

>>> signal = mfli.daq.signals_add("demod1", "r")
>>> mfli.daq.measure()
...
>>> result = mfli.daq.results[signal]

>>> signal = mfli.sweeper.signals_add("demod1")
>>> mfli.sweeper.sweep_parameter("frequency")
>>> mfli.sweeper.measure()
...
>>> result = mfli.sweeper.results[signal]

Parameters
• name (str) – Identifier for the MFLI.

• serial (str) – Serial number of the device, e.g. ‘dev1234’. The serial number can be found on the back panel of the instrument.

• discovery – an instance of ziDiscovery

name

Identifier for the MFLI.

Type

str

serial

Serial number of the device, e.g. ‘dev1234’. The serial number can be found on the back panel of the instrument.

Type

str

daq

Data Acquisition Module of the instrument.

Type

zhinst.toolkit.control.drivers.base.DAQModule

sweeper

Sweeper Module of the instrument.

Type

zhinst.toolkit.control.drivers.base.SweeperModule

connect_device(nodetree: bool = True) → None

Establishes the device connection.

Connects the device to the data server and initializes the DAQ Module and Sweeper Module.

Keyword Arguments

nodetree (bool) – A flag that specifies if all the parameters from the nodetree should be added to the object’s attributes as zhinst-toolkit Parameters. (default: True)

factory_reset(sync=True) → None