Acquire a QDAC-II sweep with Keysight DMMs

This example programs a two-dimensional QDAC-II sweep and records two voltage signals with Keysight 34461A multimeters. It also shows how one sweep generator can trigger several acquisition devices: both DMM nodes are children of the same QDAC-II root.

Build the sweep tree

from qcdrivers.buffered.keysight import NodeKeysightDMM
from qcdrivers.buffered.qdevil import NodeQDAC2
from qcdrivers.keysight.dmms import Keysight34461A

buffered_sweep_dmm = {
    "instrument": NodeQDAC2(inst=dac),
    "sweeps": [gate_sweep1, gate_sweep2],
    "output_trigger": 4,
    "trigger_type": "step",
    "trigger_width": 1e-3,
    "nodes": [
        {
            "instrument": NodeKeysightDMM(inst=dmm1),
            "dependent": [dmm_v1],
            "input_trigger": 1,
        },
        {
            "instrument": NodeKeysightDMM(inst=dmm2),
            "dependent": [dmm_v2],
            "input_trigger": 1,
        },
    ],
}

output_trigger selects the QDAC-II port wired to the DMMs. Each child then selects its corresponding input_trigger. With trigger_type="step", the DAC emits a pulse at every setpoint; trigger_width must satisfy the input requirements of both meters.

The delays on the two Sweep objects describe the fastest requested ramp. The DMM configuration may impose a slower practical limit, so start conservatively and shorten the delay only after checking that every point is returned.

Note

Use QCDrivers’ Keysight34461A for this example. Unlike the 34410A, the 34461A does not accept the same sample-time configuration for ramped measurements; the QCDrivers implementation avoids sending those unsupported settings.

Full example: buffered_qdac_with_keysight_dmm.py