What’s New in the SHFQA User Manual

Release 23.06

Release date: 30-Jun-2023

  • Device

    • Feature: Added option to load factory defaults in Device Tab.

  • In/Out

    • Feature: Added switchable signal path, RF (0.5 - 8.5 GHz) path and LF (DC - 800 MHz) path. Added nodes for switching between RF and LF paths of the QA channel input and output, respectively, as
      /DEV…​/QACHANNELS/n/INPUT/RFLFPATH (default is 1, RF path) and /DEV…​/QACHANNELS/n/OUTPUT/RFLFPATH (default is 1, RF path). Furthermore, the node /DEV…​/QACHANNELS/n/OUTPUT/RFLFINTERLOCK (default is 0, output RF/LF path is configured independently) allows to enable an interlock , where the RF/LF path setting of the output is always configured according to the one of the input.

    • Bugfix: Fixed a bug where an over-range condition for the input and output channels was reported during ADC calibration (during startup).

  • QA Setup

    • Bugfix: Fixed a bug where the spectroscopy delay node /DEV…​/QACHANNELS/n/SPECTROSCOPY/DELAY didn’t accept 0 ns after it was set to 4 ns.

  • Generator

    • Feature: Added an optional synchronization check which ensures that all participants have reported their readiness before a program or internal triggers are executed.

    • Bugfix: Fixed a bug in the sequencer, where playZero commands got skipped when multiple successive playZero commands were used with large sample counts (e.g. 131056).

Release 23.02

Release date: 28-Feb-2023

  • In/Out

    • Node: Added node
      /DEV…​/QACHANNELS/n/INPUT/ADCOVERRANGECOUNT, allowing to separately monitor ADC overrange conditions.

    • Bugfix: Fixed a bug causing overrange conditions during the ADC calibration at startup.

  • QA Setup

    • Feature: Added power-spectral-density (PSD) measurement capability to the spectroscopy mode. The PSD measurement gets controlled via the node tree branch /DEV…​/QACHANNELS/n/SPECTROSCOPY/PSD.

    • API: Added a zhinst-toolkit example for PSD measurement in GitHub.

    • API: Added a parameter "wait_after_integration" in zhinst-utils ShfSweeper class, see Table 1 in the tutorial Continuous Resonator Spectroscopy.

    • API: Changed the default integration delay in zhinst-utils ShfSweeper class from 0 ns to 224 ns, see Table 1 in the tutorial Continuous Resonator Spectroscopy.

  • DIO

    • Feature: Added the internal trigger unit, which allows to generate a number of triggers with configurable hold-off time. The configuration is done via the nodes under /DEV…​/SYSTEM/INTERNALTRIGGER/ branch or the DIO tab in the GUI. The "Internal Trigger" can be selected as trigger source of the Scope, QA Readout Pulse Generator, and for Spectroscopy mode.

    • Bugfix: Fixed a bug causing broken DIO interface when switching between LVCMOS and LVDS outputs.

  • Scope: Fixed a bug causing a wrong effective scope trigger delay at startup.

Release 22.08

Release date: 31-Aug-2022

  • In/Out

    • LabOne GUI: Fixed a bug, where the error "The sigin ADC reported unexpected dataconverter errors!" was issued during an over range condition at the QA channel inputs.

    • LabOne GUI: Added overload status display of the Input signal from the front panel and the Output signal before DAC.

  • QA Setup: Added support for real-time multistate discrimination, accessible through the new node branch: /DEV…​/QACHANNELS/n/READOUT/MULTISTATE/. The feature allows to discriminate the states of up to 16 qubits, 8 qutrits or 5 ququads or of any combination of these in real-time through the command startQA in the sequencer.

  • QA Result: Improved the maximal repetition rate, with which the QA readout can be started without missing triggers to 1/(440 ns).

  • DIO: Changed keyword arguments of node /DEV…​/DIOS/0/MODE to enable control of DIO values by the sequencer from chanNseq or channelN_sequencer to qachanNseq or qachannelN_sequencer.

  • Generator

    • LabOne GUI: Added Waveform Viewer sub-tab to display waveforms of readout and integration weights or spectroscopy envelope.

    • LabOne GUI: Removed one trigger selection Sequencer n Trigger Out from the Trigger sub-tab of Sequencer n.

    • Node: Node /DEV…​/QACHANNELS/n/GENERATOR/ELF/DATA accepts raw data as 8-, 16-, and 64-bit integer vectors in addition to 32-bit words.

  • User Manual: Changed the LabOne API used in the Tutorial Session from Zurich Instruments Python to Zurich Instruments Toolkit.

Release 22.02

Release date: 28-Feb-2022

  • In/Out: Added 2 recommendations to the user manual, warm up the instrument with inputs and outputs are both enabled for 2 hours, and do not change center frequency or input range while running the Python API ShfSweeper class.

  • QA Setup:

    • LabOne GUI: Fixed a bug such that readout waveforms and integration weights can always be uploaded after clearing all memory slots even when there is no change. (patch release)

    • LabOne GUI: Fixed a bug such that readout waveform and integration weights are parametrically generated based on sampling rate of 2.0 GSa/s instead of 1.8 GSa/s. (patch release)

    • LabOne GUI: Added CSV envelope waveform upload feature in Pulse Spectroscopy mode.

    • LabOne GUI: Added new phase parameters for Parametric generation of readout and integration weight waveforms in Readout mode.

    • LabOne GUI: Added waveform vectors clearing feature in Readout mode.

    • Node tree: Added new node /DEV…​/QACHANNELS/n/READOUT/INTEGRATION/CLEARWEIGHT to clear all uploaded integration weight vectors.

  • QA Result:

    • LabOne GUI and API: Changed result vector of integration unit which was not triggered to "NaN" (Not a Number).

    • LabOne GUI and API: Fixed a bug such that the instrument can run continuously even result length of all channels are set to the maximum value. (patch release)

  • Scope:

    • LabOne GUI: Added Scope tab.

    • LabOne GUI and API: Added continuous mode. Scope gets automatically re-enabled after each acquired scope shot. The node /DEV…​/SCOPES/0/SINGLE is used to switch between continuous mode (0, default) and single-shot (1). In addition, if /DEV…​/SCOPES/0/TRIGGER/ENABLE is set to 0 (default), the scope gets automatically re-triggered.

    • LabOne API: Fixed the issue that samples were always scaled by the number of averages, even when the averaging was switched off.

  • DIO: LabOne GUI: Added Trigger and Marker sub-tabs.

  • Generator:

    • LabOne GUI: Added User Register.

    • LabOne GUI: Enabled Generator Sequencer Status display.

    • SeqC: Added commands resetOscPhase(), setUserReg(), getUserReg() configFreqSweep() and setSweepStep(). to the Sequencer.

    • SeqC: Enabled triggering of all individual integration units and its combination using the bit mask, for example by combining two constants "QA_INT_0 | QA_INT_1" using the bit-wise OR operator "|".

    • Node tree: Added new node /DEV…​/QACHANNELS/n/GENERATOR/CLEARWAVE to clear all uploaded readout waveform vectors.

    • Corrected rounding of uploaded waveform samples. This will make a change of the signal output by 1 least-significant bit, corresponding to a fraction \(2^{-17}\) of the full scale amplitude.

  • ShfSweeper Python class: LabOne API: Updated the ShfSweeper Python class in zhinst.utils.shf_sweeper to use the fast sequencer-based sweep by default. Users can set the use_sequencer attribute in the SweepConfig to False to return to the previous host-based approach.

Release 21.08

Release date: 27-Aug-2021

  • Sweeper: Added a feature to realize pulsed spectroscopy.

  • DIO: Enabled full DIO support. Added new node /DEV…​/DIOS/0/MODE to select mode, and introduced the following SeqC commands: setDIO(), getDIO(), waitDIOTrigger(), and getDIOTriggered().

  • Sequencer: Modified the behaviour of the startQA() SeqC command: The "trigger" argument now controls the trigger signal instead of the marker output.

  • Firmware Update: Firmware can now be updated via USB.

  • User Manual: Added tutorials for spectroscopy and qubit readout measurement.

  • LabOne GUI: Added Readout Pulse Generator Sequencer tab.

  • LabOne GUI: Added Quantum Analyzer Result Logger tab.

  • LabOne API: Moved Python API examples to GitHub, https://github.com/zhinst/labone-api-examples.

  • LabOne API: Added EnvelopeConfig in zhinst.utils.shf_sweeper for configuring the envelope for pulsed spectroscopy.

  • LabOne API: Renamed pointwise to sequential, sweepwise to cyclic, dwell_time to integration_time and num_samples to num_averages in zhinst.utils.shf_sweeper.

  • Added new nodes to select either "cyclic" or "sequential" averaging of results: /DEV…​/QACHANNELS/n/READOUT/RESULT/MODE and /DEV…​/QACHANNELS/n/SPECTROSCOPY/RESULT/MODE.

  • LabOne API: Added a new node /DEV…​/SCOPES/0/SINGLE to switch between single-shot and continuous mode, only single-shot is available in this release (patch release).

  • LabOne API: Added new nodes
    /DEV…​/QACHANNELS/n/SPECTROSCOPY/ENVELOPE/ branch to enable multiplication of the oscillator signal with a complex envelope for pulsed spectroscopy.


  • LabOne API: Renamed

  • LabOne API: Renamed /DEV…​/SYSTEM/SWTRIGGER/ branch to


  • LabOne API: Removed the node /DEV…​/QACHANNELS/n/READOUT/RESULT/RESET. Instead, a running measurement can now be stopped by writing 0 to the node /DEV…​/QACHANNELS/n/READOUT/RESULT/ENABLE.

Release 21.02

Release date: 28-Feb-2021

  • Initial release of SHFQA user manual.