Acquire a Basel DAC sweep with a UHFLI¶
This setup uses the Basel DAC as the sweep generator and a UHFLI as the acquisition device. The DAC synchronization output provides the hardware trigger, so the sweep tree follows the same root-to-child direction.
Build the sweep tree¶
from qcdrivers.buffered.basel import NodeBaselDAC
from qcdrivers.buffered.zurich import NodeUHFLI
buffered_sweep = {
"instrument": NodeBaselDAC(inst=dac),
"sweeps": [gate_sweep],
"nodes": [
{
"instrument": NodeUHFLI(inst=lockin),
"dependent": [lockin_r, lockin_p],
"demod_channels": [0],
"grid_mode": "exact",
"input_trigger": get_trigger_channel(gate),
"trigger_level": 0.3,
"trigger_delay": 2e-6,
}
],
}
measure.run([buffered_sweep], dependents=[], **run_dict)
The child node settings describe what the UHFLI should acquire:
dependentcontains the amplitude and phase parameters to store.demod_channelsidentifies the demodulators behind those parameters.input_triggerselects the trigger input wired to the active DAC board.grid_mode="exact"requests one sample for every sweep point.trigger_delayaligns acquisition with the updated DAC output.
Configure the sample rate of every selected demodulator before running the sweep. For the lab wiring used by the example, the trigger inputs should use 1 kΩ impedance. Close any open LabOne DAQ module so it does not conflict with the acquisition started by Qanary.
For a two-dimensional scan, use the same point delay on both axes, place the inner sweep last, and trigger from the DAC board that drives that inner axis.
Full example: buffered_basel_with_uhfli.py