Skip to content

Release Notes

Release 2.15.0

Release date 14.09.2023

Notes & Important Changes

Functionality

  • Added support for multi-state discrimination on SHFQA and SHFQC readout units. See the new example notebook for a demonstration of how to use this feature for real-time active reset of a ququad. For details on how the feature works internally, have a look at tutorial in the SHFQA documentation .
  • Added support for the port_delay parameter for logical signal lines on SHFSG and SHFQC drive lines, which can be used to compensate for different signal runtimes.
  • Added support for multi-dimensional sweeps when using sequential averaging.
  • Added common functionality for analysis of experimental data, useful for analysis of simple tuneup experiments. This functionality was previously available through contrib.

Note

The recently added Qubit and Transmon are not yet considered stable and their APIs might still change in future versions. Comments and feedback regarding the current implementation of these objects and their use in your experiments are welcome.

Note

The OpenQASM importer is not yet considered stable and the API will likely change in future versions. Comments and feedback regarding its use and what additional functionality may be required are especially welcome.

Bug Fixes

  • Fixed a bug where it was not possible to use different length of the acquire command for the signal acquisition on a multiplexed readout line. Fixes this issue.
  • Fixed a bug in the parallel tuneup notebook where sweep parameters were not properly resolved when addressing multiple hardware oscillators.

Documentation

  • Updated all example notebooks to use the new analysis library instead of the deprecated functions from contrib.

Deprecation notice

  • Python 3.7 and 3.8 support was removed in release 2.3.0. Please upgrade to Python 3.9 or newer.
  • The descriptor keyword "instrument_list" has been replaced by "instruments" for consistency.
  • Using a near-time acquire loop through the acquire_loop_nt statement has been deprecated. Use a near-time sweep instead.

Known Issues

  • To account for the internal delay introduced by the analog to digital conversion in the frontend of the SHFQA, a minimum port_delay setting of 234ns is necessary.
  • Directly setting an instrument node via the set_node() command if that setting is also controlled through LabOne Q, for example as a calibration setting, may lead to unintended system states. It is recommended to use the LabOne Q calibration settings in such cases.
  • When running CW resonator spectroscopy with an SHFQA or SHFQC, it is necessary to set the port_delay calibration of the used acquire line to 250 ns. Have a look at the cw resonator spectroscopy notebook for an example.
  • When delaying logical signal lines of type rf_signal via the delay_signal calibration property, all rf_signals on the same sequencer core must be set to the same delay.
  • When delaying logical signal lines on the SHFQA via the delay_signal calibration property, the delays for the measure and acquire line must be the same; the measure pulse delay is not added to the acquire pulse delay as on the UHFQA. We recommend to use port_delay for now.
  • When creating a section with very short content (below the device’s minimum waveform length), the compiler may fail to map the experiment to valid SeqC, and will generate an error. As a workaround, manually add delays to the sequence.
  • When running an experiment with feedback, gaps between consecutive feedback events cannot be longer than approximately 17 seconds (2^32 sequencer cycles).

Release 2.14.0

Release date 31.08.2023

Notes & Important Changes

  • A patch has been released for LabOne 23.06 fixing a number of issues that also affected users of LabOne Q. Please download the new release from our Download center and ensure you update the firmware of all instruments through the LabOne user interface.

Functionality

  • Implemented a new background architecture for LabOne Q, improving the way the internal components interact with and depend on each other.
  • Added functionality to derive a new SweepParameter from an existing one using the array manipulation capabilities of numpy. Have a look at the API reference documentation here for details.
  • To improve readability, the console log output no longer contains the component information for each log message. If you require this information, have a look at the file log for the full information.
  • Improved the display of expected resource usage in the compiler log.
  • Improved log message output when the pulse sheet viewer needs to trigger recompilation of the experiment, e.g. when the number of displayed events has changed.
  • Added support for using the direct low-frequency path on SHFQA instruments. Use the calibration setting port_mode=PortMode.LF to use.

Bug Fixes

  • Fixed a bug where the interactive pulse sheet viewer did not work with device setups containing SHFPPC instruments.
  • Fixed a bug in the pulse inspector where specifying arguments may not have had the intended effect on the displayed pulse.
  • Improved the printout formatting when displaying the contents of LogicalSignals.

Documentation

-->

Release 2.13.0

Release date 17.08.2023

Notes & Important Changes

Functionality

  • Improved API for the pulse sheet viewer. Calling show_pulse_sheet now accepts the additional arguments interactive and max_events_to_publish. The interactive argument controls whether to run the pulse sheet viewer in interactive mode within the notebook itself, where then also the waveforms of individual pulses can be inspected. This argument defaults to False. max_events_to_publish controls the maximum number of events that are displayed in the pulse sheet viewer. For performance reasons, the default value here is set to 1000, for longer experiments, this may need to be adjusted.
    Additionally, the compiler by default not longer generates the event list for the pulse sheet viewer when compiling an experiment, this now only happens on demand. Adjusting the number of events may now trigger a recompilation of the experiment before the pulse sheet is shown.

Bug Fixes

  • Adjusted the printout of LabOne Q data objects to avoid some unwanted side effects.

Documentation

  • Updated the API reference documentation.

Release 2.12.0

Release date 04.08.2023

Notes & Important Changes

Functionality

  • Updated to LabOne 23.06. LabOne Q 2.12 requires LabOne 23.06. Please see the installation instructions for a link to update your LabOne version. Additionally, a firmware update with LabOne is required after updating to 23.06.
  • Removed the laboneq.contrib Qubit and QubitParameters classes. These were superseded by the new Qubit class added in 2.11.
  • Added a list of unfulfilled real-time start conditions to the warning printed by the LabOne Q controller when starting an experiment times out.

Bug Fixes

  • Fix serializing and deserializing of MixerType.
  • Fix real-time frequency sweeps when combined with oscillator switching.

Documentation

  • Added QASM examples to the manual.

Release 2.11.0

Release date 20.07.2023

Notes & Important Changes

Functionality

  • Added Qubit and Transmon objects. They represent a higher abstraction level on top of logical signals and are intended to represent actual physical qubits within LabOne Q. Qubit has been designed to represent a generic two-level system, while the Transmon implementation is more specific towards flux-tunable superconducting transmon qubits. Both inherit from the QuantumElement parent class, which can be used to derive your own type of qubit. Qubit and Transmon contain information about the logical signal lines as well as a dictionary of parameters used to control the respective qubits. The class methods Qubit.calibration() and Transmon.calibration() can be used to create Calibration objects derived from the qubit parameters and logical signals, which may directly be applied to a DeviceSetup or an Experiment. Have a look at this example notebook for an example how to use these new objects.
  • Added an importer for OpenQASM 3.0 programs to translate them into LabOne Q experiments. Currently the importer supports the following OpenQASM language constructs: box, delay, measure, reset as well as playback of single- and multi-qubit gates. Playback of parametrized gates is also possible. See the example notebooks in this folder for some demonstrations on how to use LabOne Q with OpenQASM programs.

Bug Fixes

  • Fixed a bug where specifying the LabOne dataserver port number as a string did not work as expected.
  • Corrected the default value for the beta parameters of the DRAG pulse in the pulse library to a more sensible value.

Documentation

  • Changed the documentation framework to make it more accessible and intuitive to use. GitHub example notebooks are now included in the How-to and Learning Guide sections, and the API Reference has been integrated in the main documentation. Feedback is welcome!
  • Added example notebooks demonstrating import of OpenQASM programs for a single step of a VQE algorithm as well as two qubit randomized benchmarking using either Qiskit input or a circuit compiled from the pyGSTi module.
  • Added an example notebook demonstrating design and execution of experiments on many Qubits in parallel. See this example notebook for a demonstration of a set of tune-up experiments for many qubits in parallel.
  • Adapted the propagation delay example notebook to sweep the calibration property port_delay instead of directly setting the instrument node.

Release 2.10.0

Release date 06.07.2023

Notes & Important Changes

Functionality

  • Added support for resetting instruments to a known state at session connection. Use the reset_devices argument at session.connect() to execute a factory reset of all connected instruments of the device setup. This can be useful if other interfaces or API calls are used beside LabOne Q to manipulate the state of the instruments.
  • Improved readability of the output generated for all LabOne Q data classes when using a print() statement.
  • Added the ability to use the measure() function as a method on a Section directly, not just on the level of a full Experiment.

Bug Fixes

  • When playing markers on logical signals that are mapped to QA channels, a warning will now be produced. QA channels do not have the ability to generate sample-precise marker outputs, use triggers instead.
  • Fixed a spurious compilation error, leading to incorrect sequencer code when using global delays.
  • Fixed a bug where nested frequency sweeps in real-time where not executed properly on SHFSG and SHFQC instruments.
  • Fixed a bug where readout pulses failed to play back when using a subset of multiplexed readout signals.

Release 2.9.0

Release date 27.06.2023

Notes & Important Changes

Functionality

  • When using .play(…​), markers may now be played without a pulse by specifying pulse=None.
  • Added support for directly measuring the power spectral density when in spectroscopy mode on the SHFQA. Use AcquisitionMode.SPECTROSCOPY_PSD for this.
  • Added support for OpenQASM delay instruction.
  • Added support of qubit objects in OpenQASM parser.
  • Added a key-value database for LabOne Q objects.
  • Added laboneq.dsl.inspect to make execution metadata available to the user.
  • Removed the need for an access token to run LabOne Q on real hardware.

Bug Fixes

  • Fixed a bug where signals that were played on QA output channels where missing in the output simulator.
  • Fixed a bug where the QA output channel was not switched off at the end of a CW spectroscopy experiment.
  • Added a warning message when attempting to use waveform compression on the SHFQA or UHFQA - waveform compression is not supported on these instruments.
  • Fixed a dependency issue when installing LabOne Q.
  • Made markers usable in play command without pulse information.
  • Fixed multiplexing on SHFQA instruments.

Documentation

  • Added a new demonstration notebook for basic experiments with color centers.
  • Added a new example notebook showing how to store and retrieve LabOne Q data objects like experiments in a database.
  • Added a first OpenQASM support example showing how to build and execute a parameterized VQE circuit.

  • Added a new demonstration notebook for basic experiments with color centers.

  • Added a new example notebook showing how to store and retrieve LabOne Q data objects like experiments in a database.
  • Added a first OpenQASM support example showing how to build and execute a parameterized VQE circuit.
  • Added documentation of automatic generation of a zero amplitude pulse when playing markers without pulse

Release 2.8.0

Release date 08.06.2023

Notes & Important Changes

Functionality

  • Added support for displaying enabled markers in the simulated output.
  • Added basic support for the native Python SQLite database to save and load any LabOne Q data objects.

Bug Fixes

  • Improved support for waveform compression also in cases where compressible and incompressible waveforms are mixed by the compiler.
  • Fixed an issue with serialization when using an SHFPPC in the device setup.
  • Improved the logic of setting the reference clocks on SHF instruments to reduce communication overhead for each experiment.

Documentation

Release 2.7.0

Release date 25.05.2023

Notes & Important Changes

Functionality

  • The playHold functionality introduced in Release 2.6.0 has been extended to improve performance for playback when using rf_signal.
  • LabOne Q now supports sweeping the port_delay property on all logical signal lines and the amplitude setting of the SHFQA readout via setup and experiment calibrations.
  • Added support for waveform compression also when playing pulses in parallel on two signal lines of type rf_signal with these signal lines sharing a sequencer core.

Bug Fixes

  • Spurious error when using feedback on HDAWG channels has been fixed

Release 2.6.0

Release date 11.05.2023

Notes & Important Changes

Functionality

  • Improved the efficiency of experiment playback and optimized the use of the waveform memory by implementing the use of the playHold functionality of the sequencer for SHFSG and HDAWG instruments. Using the playHold command in the sequencer enables the reduction of waveform memory usage for pulses where some parts of the waveform are constant. To use this functionality, supply the optional can_compress argument to a pulse functional defining a pulse.
  • Integrated a detailed timing model for local and global feedback paths when using real-time feedback with the match - case statement. The compiler will now enforce a minimum timing between an acquire statement and the following match - case condition, based on the ideal timing constraints from hardware specifications.
  • Added a check and an error message when local_oscillator frequencies are set to incompatible frequencies. The center frequencies on SHFSG, SHFQC and SHFQA channels can be set between 600 MHz and 8 GHz in steps of 100 MHz, when not using LF path.

Bug Fixes

  • Fixed an issue where the logger would fail if Unicode characters were part of the logging file path.

Release 2.5.0

Release date 27.04.2023

Notes & Important Changes

Functionality

  • Added support for the SHFPPC parametric pump controller in LabOne Q.
  • When using reset_oscillator_phase on an SHFSG or SHFQA, the overall timing of the shot and sweep repetition rate is now automatically enforced to be commensurate with the 100 MHz grid of the local oscillators in the SHF platform. This is to ensure better reproducibility of the phase reset in these cases.
  • When using voltage_offset on a signal line of type rf_signal, this signal line is now enabled by default already when calling session.connect(). Previously, signal lines were only enabled when executing an experiment using that signal line.

Documentation

Release 2.4.0

Release date 13.04.2023

Notes & Important Changes

Functionality

  • Added a check for compatibility of device firmware and LabOne dataserver version to increase stability.
  • Added support for switching off certain physical output channels through the session.disable_output() method. See the documentation for details on how to use - related to issue 22.

Bug Fixes

  • Improved the quality of compression for the sequencer code generated by the compiler to avoid issues with SHFQA and UHFQA running out of free registers. Related to issue 30 and issue 13.
  • Fixed the logic for switching off HDAWG output channels to ensure this only happens when strictly necessary - fixes issue 23.
  • Fixed an issue where signals on different AWG cores were not aligned in the output simulator for a standalone HDAWG setup.

Documentation

  • Added a new manual chapter detailing how to use triggers and markers in LabOne Q.
  • Moved commonly used convenience functionality for the example notebooks to contrib to enable simplified import from anywhere. See the example notebooks on how to use.

Release 2.3.0

Release date 30.03.2023

Notes & Important Changes

Functionality

  • Further increased performance of the compiler, especially for experiments involving a very large number of sections.
  • Added support for real-time feedback on setups including a PQSC. Use the Experiment.match_global statement to enable real-time feedback based on readout results on any quantum analyzer channel connected to any drive channel through a PQSC. Supported combinations of instruments are currently any combination of SHFQA, SHFSG and SHFQC.
  • Added a Experiment.match statement, that chooses automatically between global or local feedback paths. See this notebook on an example how to use.
  • Added support for marker output on logical signals of type rf_signal on HDAWG.
  • Added support for the keywords start and length when enabling markers. The marker high will be delayed by the value of start relative to the start of the pulse playback and the total duration of the marker output will be given by its length argument.
  • Enable more argument types for pulse functionals. It is now possible to use strings, integers, floats and booleans, as well as lists, dictionaries and numpy arrays of these base types as arguments for pulse functionals.
  • Introduced a check for duplicate ids when creating a device setup. DeviceSetup now raises a LabOneQException if instruments have no unique UIDs.
  • Enabled the command table by default also on the HDAWG, to reduce waveform memory usage and increase sequencer code efficiency.

Bug Fixes

  • Fixed a bug where the delay node of markers and triggers was not correctly reset when calling session.connect(), if changes where made in the LabOne GUI.
  • Fixed a bug where logical signals of type rf_signal where not supported in the Output Simulator when using the command table.

Documentation

  • Adapted the real-time feedback example to also support feedback through a PQSC.
  • Due to changes in the timing calculation in LabOne 23.02., adapted the necessary delay time for a standalone SHFQC when using real-time feedback.
  • Moved commonly used helper functions from the example folder into laboneq.contrib, see the example notebooks for usage.

Release 2.2.0

Release date 21.03.2023

Notes & Important Changes

  • LabOne Q release 2.2 requires version 23.02 of LabOne. Please download the latest release of LabOne from the Zurich Instruments Download center and make sure to update the firmware of all your instruments through the GUI before using them together with this release. Since also the core Python API has been updated with this release, we recommend to use a fresh Python environment when installing LabOne Q 2.2. For instructions, see the section on installation.

Functionality

  • Enabled the new scheduler by default. If required, it is still possible to use the legacy scheduler, by using the compiler_settings={"USE_EXPERIMENTAL_SCHEDULER": False} argument at session.compile().
  • Added a new Experiment.measure() method, unifying the readout pulse playback and acquire command for more streamlined experiment design.
  • Enable the use of markers for signal lines of type iq_signal on SHFSG and HDAWG. Use the marker argument of the play command to enable specific marker channels during the playback of that pulse.
  • Enable phase increments with the command table on HDAWG and SHFSG, significantly reducing the amount of waveforms required when changing pulse phases.
  • Increased efficiency when accessing the internal data structures used in the compiler, see also https://github.com/zhinst/laboneq/issues/19. This will speed up compilation times especially for experiments using a large number of sections.
  • Added methods to display pulse functionals directly in your notebook and analyze the expected response of a qubit as a function of its frequency. Have a look at this example notebook for how to use them.

Bug Fixes

  • Fixed an issue with the pulse sheet viewer not displaying any data, related to https://github.com/zhinst/laboneq/issues/28.
  • Fixed an issue with the generation of pulse sheets for some experiments, related to https://github.com/zhinst/laboneq/issues/29.
  • Fixed a rare failure in the event scheduler for certain experiments.

Release 2.1.0

Release date 02.03.2023

Notes & Important Changes

Functionality

  • Added a new scheduler for experiments. Currently this is not yet enabled by default, to enable use compiler_settings={"USE_EXPERIMENTAL_SCHEDULER": True} within session.compile().
  • Added the option to fix a section to the signal grid of the used device setup. Use the parameter section(on_system_grid=True) to force the section to start and end on the system grid. This can be useful in special cases where sequencer commands need to align to section boundaries.
  • When compiler setting <device>_MIN_PLAYWAVE_HINT is not multiple of device samples, it is now rounded up to the closest matching value instead of raising AssertionError.
  • Introduced a check and meaningful error message to catch unsupported use of sweep parameters at an early stage. As an example trying to sweep an amplitude in a near-time loop will trigger the exception.

Bug Fixes

  • Fixed a bug where putting a match / case statement within a sweep loop failed.
  • Fixed a bug where using a SweepParameter as a pulse_parameter of a pulse functional led to a compiler exception when running the experiment more than once.
  • Fixed a bug where unnecessary oscillator switching events where issued when multiple hardware oscillators on the same physical channel where used.
  • Fixed a bug that did not allow to set an experimental calibration when the underlying logical signal calibration was not defined.

Deprecation notice

  • Python 3.7 and 3.8 support is deprecated and will be removed in a future major release. It is recommended to upgrade to Python 3.9 or newer.
  • The descriptor keyword "instrument_list" has been replaced by "instruments" for consistency.

Known Issues

  • When running CW resonator spectroscopy with an SHFQA or SHFQC, it is necessary to set the port_delay calibration of the used acquire line to 250 ns. Have a look at the basic_experiments notebook for an example.
  • To avoid potential issues with synchronization in LabOne 22.08, it is advised not to use the reference clock out of the PQSC to distribute a clock signal to the UHFQA. Instead, use an external reference clock as a common clock source.
  • When delaying logical signal lines of type rf_signal via the delay_signal calibration property, all rf_signals on the same AWG must be set to the same delay.
  • When delaying logical signal lines on the SHFQA via the delay_signal calibration property, the delays for the measure and acquire line must be the same; the measure pulse delay is not added to the acquire pulse delay as on the UHFQA. We recommend to use port_delay for now.
  • When creating a section with very short content (below the device’s minimum waveform length), the compiler may fail to map the experiment to valid SeqC, and will generate an error. As a workaround, manually add delays to the sequence.

Release 2.0.0

Release date 17.02.2023

Notes & Important Changes

Functionality

  • Added support for adding instruments to the setup descriptor without any signal lines specified. For such instruments, a data server connection will be established when calling session.connnect() such that they are available to use with toolkit from within LabOne Q.
  • Added support for specifying one or multiple data servers in the setup descriptor.
  • Added direct support for virtual z-gates without playing a pulse at the same time. Use Experiment.play(pulse=None, increment_oscillator_phase=z_gate_phase) to increment the phase by a given value or Experiment.play(pulse=None, set_oscillator_phase=new_phase) to set the absolute oscillator phase.
  • Increased the number of sweep steps that are supported for a real-time frequency sweep on the HDAWG to 512.
  • Changed the compiler settings for the SHFSG to use command table by default and shorten the minimal waveform length from 1024 to 64. This should allow more efficient use of the waveform and instruction memory of the instrument. Refer to Tips & Tricks for more information on how to modify these settings.

Bug Fixes

  • Fixed a bug where real-time frequency sweeps failed when using a software oscillator.
  • Fixed a bug where a trigger node address on the SHFQA was incorrect.

API changes

  • Removed deprecated Session.run_all(), use Session.run() instead.
  • Removed deprecated Session.set() and Session.get().
  • Removed deprecated offset argument from laboneq.dsl.experiment.Experiment.section() method.
  • Removed deprecated pass_v3_to_compiler argument from Session. The argument had no functionality.
  • Renamed Experiment.set() to Experiment.set_node() & removed the key argument.
  • Removed do_simulation argument from Session.run(). The functionality is replace with laboneq.simulator.output_simulator.OutputSimulator.
  • Removed max_simulation_time instance variable from Session.

Release 1.7.0 - Stable release

Release date 02.02.2023

Notes & Important Changes

Functionality

  • Enabled real-time frequency sweeps on HDAWG. Due to technical limitations on this instrument, the number of real-time sweep steps is currently limited to a maximum of 401.
  • Introduced an error message if a duplicate section id is used in the experiment.

Bug Fixes

  • Fixed a bug where waveform replacement with pulse functionals that use the same parameter names did not work as expected.
  • Fixed a bug where waveforms were scaled incorrectly for playback in branching sections, leading to clipped output.
  • Fixed a bug where using pass in one arm of a match-case statement could have triggered a mixed-signals compiler error.

Documentation

  • Added a demonstration of real-time feedback on SHFQC. This notebook emulates active qubit reset and uses two different readout pulses to simulate the different qubit states. In the example code, the state discrimination parameters are first calibrated using optimal integration weights and the result is then used to demonstrate real-time feedback based on an arbitrary pattern of simulated qubit states.

Deprecation notice

  • The next upcoming release will remove some API functionality:
    • session.run_all(experiment) - use session.run(experiment) instead
    • the offset argument of section - use either constant length for the section or RepetitionMode.CONSTANT in the outer acquisition loop
    • session.set() and session.get() - in user functions, use the toolkit functionality to read out and set node values instead
    • experiment.set() will be renamed to experiment.set_node() and its key parameter will be removed
    • simulation of the output signals via the do_simulation parameter of session.run() as well as the output_signals property of the compiled experiment - use the new OutputSimulator class instead, as demonstrated in this example notebook

Release 1.6.0

Release date 12.01.2023

Notes & Important Changes

Functionality

  • Added support for waveform replacement on single rf_lines on HDAWG, see Issue 12.
  • Added a user-accessible compiler setting to change the resolution of phase setting when software modulation is used. Use compiler_settings={"PHASE_RESOLUTION_BITS": number_of_bits}, default is 12 bits of resolution.

Bug Fixes

  • Fix for bug "SHFQC: Number of measurements executed do not match defined", where the number of measurements executed on a SHFQC was not as expected.
  • Fixed a bug where the length setting in a play command was silently ignored if it was not a SweepParameter.
  • Fixed a bug where delays at the end of loops were silently ignored.
  • Fixed a bug where raw readout on the SHFQA did not give reproducible results.

Release 1.5.0

Release date 15.12.2022

Notes & Important Changes

  • Introduced a voltage_offset calibration property for logical signals of type rf_signal - use this to apply offsets to your single channel signals on the HDAWG.

Bug Fixes

  • Fixed an issue when deserializing pulse functionals without a mixer_type argument specified. When not specified, the mixer_type now defaults to IQ.
  • Fixed a bug where, when using software modulation, not all uploaded waveforms were properly modulated.
  • Fixed a bug where the raw readout results on the SHFQA depended on previous signals and did not always reflect the current state of the measurements.
  • Fixed a bug with phase increments of software modulated signals - the resolution of allowed increments was chosen too small, this will be a user accessible setting in the future.
  • Fixed a problem with the new output simulation not working properly for signals on SHFSG and SHFQA.

Release 1.4.0

Release date 01.12.2022

Notes & Important Changes

Functionality

  • Implemented a new, faster and more versatile output simulator. For examples on how to use it, see this example notebook.
  • Added the possibility to change output and input range settings on all channels of HDAWG and UHFQA instruments. Use the range calibration property of any logical signal or physical channel to set these values.
  • Implemented a new, more responsive pulse sheet viewer. As before use show_pulse_sheet("my_experiment", my_compiled_experiment) to generate an overview of events on all logical signals in a compiled experiment.
  • Further improved the speed of saving and loading any LabOne Q data objects.

Bug fixes

  • Fixed the issue that the SHFQC was only working with the six channel option.

Release 1.3.0

Release date 17.11.2022

Notes & Important Changes

Functionality

  • Added initial support for using trigger outputs, through the trigger argument of section - feedback welcome!
  • Replaced awg_module by the new LabOne standalone compiler, increasing the speed of session connection, sequencer code compilation and upload.
  • Because of the switch to the standalone compiler, LabOne 22.08 or later is required to run LabOne Q 1.3.0
  • Changed the way software modulation is applied to pulses on the UHFQA for consistency between UHFQA and SHFQA - this change may require recalibration of integration weights and thresholds on UHFQA setups after upgrading LabOne Q

Documentation

  • Added example notebook demonstrating playback of consecutive signals with different hardware modulation frequencies on SHFSG channels with the command table

Bug fixes

Release 1.2.0

Release date 03.11.2022

Notes & Important Changes

  • Added support for multiplexing of HW modulated signals on SHFSG. If your application would benefit from this feature, please contact us so that we can help you implement it.
  • Improved pulse library. Users can now easily extend the range of available pulse types by creating their own library. Our own standard library has been expanded as well, and will continue to grow in the future. A tutorial on our GitHub repository explains the most important features.
  • Pre-compensation is now configured via signal calibration. Delays are adapted accordingly.

Release 1.1.0

Release date 20.10.2022

Notes & Important Changes

  • Improved serialization and deserialization performance. Long arrays (e.g. waveforms) are now stored as binary blobs, reducing the size of generated JSON files.
  • The gaussian_q pulse shape has been removed. For generating a Gaussian pulse on the Q channel, use gaussian(amplitude=1j) instead.

Patch Release 1.0.3

Release date 10.10.2022

Notes & Important Changes

  • Pinned required retworkx version to 0.11 after breaking changes had been introduced with 0.12.

Patch Release 1.0.2

Release date 03.10.2022

Notes & Important Changes

  • Introduced an access token required for running LabOne Q during an initial managed beta phase. Please visit https://www.zhinst.com/ch/en/install-labone-q-today to get your access token today!
  • Fixed an issue with the assignment of center frequencies for the signal generator channels on an SHFQC

Release 1.0.0

Release date 27.09.2022

Notes & Important Changes

  • QCCS Software has been renamed to LabOne Q
  • LabOne Q now depends on LabOne release 22.08. We strongly recommend to perform a fresh install into a clean Python environment to ensure no clash of dependencies. Please also update the firmware of all devices to use to the newest version.
  • It is no longer possible to specify a too short repetition length when using RepetitionMode.CONSTANT, an exception will be raised in this case.
  • Hardware oscillator phase reset commands can now be issued for every iteration of sweep and averaging loops through the new parameter reset_oscillator_phase to make phases reproducible within each sweep step and averaging iteration. This new behavior is disabled by default.
  • The pulse length can now be swept as parameter of the Experiment.play command.
  • The parameters phase, set_oscillator_phase and increment_oscillator_phase of the Experiment.play command can now be swept.

Release 0.68

Release date 08.09.2022

Notes & Important Changes

  • The device setup now offers a new physical_channel_groups attribute. This new API complements logical_signal_groups, and allows more straightforward access to parameters of physical ports on each device, including when they are shared across multiple logical signals.
  • The CompiledExperiment class now has a publicly exposed API for serialization to JSON.
  • Setting do_simulation=True in session.run() no longer leads to an error.

Release 0.67

Release date 25.08.2022

Notes & Important Changes

  • The SHFQC can now be used as a standalone instrument, without the need for a PQSC.
  • State discrimination can be used on the SHFQA. To use, set the new threshold property on the logical signal used for data acquisition and set AcquisitionType.DISCRIMINATION within the acquire loop.
  • Using session.set(node_address, value) and session.get(node_address), it is now possible to set and read out the values of any instrument node from within a connected session directly.
  • Using session.devices[device_id] in a connected session returns a toolkit device object that enables to address the device directly using the same functionality know from the toolkit python package. For details on how to use the device object, please refer to the toolkit documentation at https://docs.zhinst.com/zhinst-toolkit/en/latest/
  • It is now possible to specify negative amplitudes in a sweep parameter
  • There are now two different ways to access the results object generated when running an experiment. The property session.results delivers a reference to the results object within the session and can be used e.g. from within user functions when reading out partial results. Calling session.get_results() returns a deep copy of the results object from within the session, to be used for saving the results. session.run(experiment) by default returns the reference via session.results.
  • In a near-time loop if any sweep steps exits with an error, it is now retried once and subsequently skipped at repeated error. The rest of the experiment may be executed normally.
  • For experiments that generate a lot of waveforms on the HDAWG it was possible in rare cases that waveform playback was not possible seamlessly due to memory restrictions on the instrument. This behavior is now detected by QCCS SW and reported as an error to the user, so the experiment can be redesigned.

Release 0.66

Release date 11.08.2022

Notes & Important Changes

  • When an error is encountered during a near-time loop, the affected step is repeated and the experiment does not fail.
  • Unintended gaps in the playback of pulses on the HDAWG are now detected and signaled to the user.

Release 0.65

Release date 28.07.2022

Notes & Important Changes

  • Waveform replacements of pulses works on all devices
  • SW modulation and HW modulation yield the same output on all devices
  • Mandatory first argument to the Experiment.call(…​) / Section.call(…​) was renamed from func to func_name - this need to be adjusted in user code, if passed as named and not positional argument

Release 0.64

Release date 14.07.2022

Notes & Important Changes

  • Session.run() now accepts both compiled and raw experiments. Session.run_all() has been deprecated and will be removed in a future version.
  • The output simulator does no longer run automatically when an experiment is executed. Trigger it manually by supplying do_simulation=True to Session.compile() or Session.run().
  • The output simulation can also be started without a session, by calling the CompiledExperiment.simulate_outputs() method.
  • The simulated output signals are now stored as part of the compiled experiment, and no longer directly as part of the results object. Find them in CompiledExperiment.output_signals with the same internal structure as previously.
  • The built-in result plotter (qccs.simple.Plotter) has been removed. For examples of how to access and plot the simulated output signals, see the example notebooks.
  • Mixer calibration on the HDAWG has been reworked and stabilized. This has not yet been extensively tested, feedback is welcome.

Release 0.63

Release date: 01.07.2022

Notes & Important Changes

  • Improved reliability of real-time frequency sweeps on SHFQA
  • Added support for real-time frequency sweeps on SHFSG
  • Logging contains number of sequencer code lines and number of waveform samples that will be uploaded to instruments
  • Logging levels are now adjustable

Release 0.62

Release date: 17.06.2022

Notes & Important Changes

  • Real-time frequency sweeps for resonator spectroscopy are now possible on SHFQA. Limitations apply, see below.
  • Small system support: A single HDAWG or SHFSG device can be used without a PQSC as a standalone device.
  • Waveforms in real-time loops can be exchanged to another one with the same length via a user function.
  • Integration kernels on SHFQA had inverted frequency compared to the readout pulse before, this has been corrected in this release - might require changes to user code
  • It is no longer possible to mix UHFQA and SHF instruments in the same experiment
  • Each near time execution step now has an automatic timeout implemented, based in the calculated real-time execution time of the step - this is to catch and prevent rare interrupts in execution

Release 0.61

Release date: 03.06.2022

Notes & Important Changes

  • Support for standalone SHFSG operation
  • In a setup with an SHF instrument (SHFSG, SHFQA,…​), the HDAWG sampling rate is switched to 2.0 GSa/s, allowing for a tighter combined section grid
  • Consecutive Sections with signals on only one instrument can have arbitrary lengths now and are not bound to the common section grid