Release Notes
Release 2.57.0
Release date 31.07.2025
Requires: LabOne 25.07
Includes: Applications Library 2.11.0
Notes & Important Changes
Functionality
- LabOne Q now supports LabOne 25.07. With this update, ZSync capable instruments are expected to take less time in establishing a connection. Issues with time-outs when connecting after booting-up an instrument should be resolved, as well as the corresponding ZSYNCLINKLOST firmware errors.
- Added the
custom
attribute toQuantumParameters
, which is a dictionary of custom parameters with attribute-style access. This is convenient for fast prototyping and testing. For example, one can writeq = QuantumElement("q0"); q.parameters.custom.x = 5
. - Changed the default layout of the
QPUTopology.plot
method fromplanar
tospring
. This improves the flexibility of theplot
method, since not all graphs are possible to plot using theplanar
layout. The default value of thedisconnected
argument has been changed fromTrue
toFalse
, to improve plot readability. Additionally, added optional arguments to theplot
method to adjust the figure size (figsize
), fix node positions (fixed_pos
), set equal aspect ratio (equal_aspect
), and show edge tags (show_tags
). This provides increased control over the plot's appearance. - The deprecation status of the attributes
device_setup
and experiment inCompiledExperiment
was removed. The attributes will not be removed until further notice. - Added a way to conveniently retrieve quantum elements from the QPU by user-defined group. The
QPU
class was previously initialized asQPU(quantum_elements, quantum_operations)
, wherequantum_elements
may be a single quantum element or a sequence of quantum elements. In addition, we now allow thequantum_elements
argument to have the typedict[str, QuantumElement | Sequence[QuantumElement]]
, such that we group the quantum elements into a dictionary keyed by the group name. This provides users with an efficient method to retrieve all quantum elements of a specific kind, as attributes ofqpu.groups
. For example, one can writeqpu = QPU({"qubits": [q0, q1, q2], "couplers": [c01, c02]}, qop); qpu.groups.qubits; qpu.groups.couplers
. - Improved the stability of the
QPUTopology.add_edge
method by raising an error if the source/target nodes do not exist in the QPU. - When outputs of HDAWG instruments are used as individual signals (instead of pairing them into IQ signals), and the calibration of such signals sets the modulation mode to
ModulationType.AUTO
, then software modulation will be used. Previously,ModulationType.AUTO
resolved to hardware modulation for such signals.
Note
LabOne Q has ended support and testing for Python version 3.9 with version 2.53. Please make sure to upgrade your Python environments to a supported version before upgrading.
Note
Including the instrument options when constructing the DeviceSetup
is now a strict requirement since version 2.52.0.
Specify your instrument configuration through either the 'options' field in the 'instruments' list when using a device setup descriptor,
or by specifying the device_options
argument when constructing your setup programmatically.
Alternatively, you can use the generate_device_setup
helper function available under contrib
,
which has the option to query the instruments for installed options automatically.
This function is already used in the majority of our publicly available examples.
Applications Library
- Allowed
cancellation_source
inTWPAParameter
to be specified by a string. This fixes deserialization ofTWPAParameter
s.
Deprecation notice
Note
Support for LabOne 25.04 is deprecated and will be removed at 2.59.0.
Note
Removed DSL features and attributes which were deprecated in 2.29 or before (i.e. more than six months ago).
Note
The deprecated Results.compiled_experiment
attribute has been removed.
Note
The Qubit
and Transmon
classes are not yet considered stable and their APIs might still change in future versions.
Their parent QuantumElement
class has been updated with version 2.44, making it much simpler to create your own implementation of a qubit object.
Note
The temporary_modify
task from the Applications library has been deprecated. Please use temporary_qpu
and, if needed,
temporary_quantum_elements_from_qpu
instead.
Bug Fixes
- A bug causing
DeviceSetup.reset_calibration()
to clear only the physical channel calibration is fixed. Now it clears both logical signal calibrations and physical channel calibrations. - Fixed a bug where sweeping the pulse parameters in near-time did not create the correct waveforms.
- Fixed a bug in the
QPU.override_quantum_elements
method, so that the quantum elements in the returned QPU, and the quantum elements in the returned QPU topology graph, are now the same objects. - Fixed a bug where the sine generators used for hardware modulation on HDAWG instruments had a 90 degree phase difference between the two outputs of a single core, when they were configured as two independent signals (
rf_signal
). This does not affect IQ signals. - Fixed deserialization of
TWPAParameter
s from LabOne Q Applications by allowingcancellation_source
be specified as a string.
Documentation
- Removed support for RF signal types on SHF device outputs, with only IQ signals now supported on SG channels.
- Removed the deprecated ZSync specification from device setups used in examples.
- Removed the specifying of
repetition_time
from multi-program QASM examples. Therepetition_time
argument became optional in LabOne Q 2.56.0.
Known Issues
- Using
OpenQASMTranspiler.batch_experiment
with QASM programs that contain native measurement operations will lead to an unexpected shape of the returned data. To ensure the correct shape, measurement operations should be removed from the OpenQASM program, and.batch_experiment
should be called with the option fieldadd_measurement=True
, which will add the measurement operations to the LabOne QExperiment
during the import step (see our tutorial for more details). - Using the internal scope to acquire raw traces on multiple channels of an SHFQA in a single experiment is only possible if the timing of all acquisitions is equal between instrument channels.
- Using runtime checks of the sequencer playback through the
disable_runtime_checks=False
argument ofsession.connect()
, is currently not possible when the experiment contains real-time feedback or is using the on-device PRNG. In the latter case, unintended error messages may be produced if the option is used. - When using the pipeliner in an experiment by specifying a
chunk_count
parameter in a sweep, the number ofacquire
commands in each chunk currently needs to be equal. Typically this means that the number of sweep steps within each chunk has to be the same. - When using
OutputSimulator
or pulse sheet viewer with an experiment using the pipeliner or near-time sweeping, currently only the first sequence step will be displayed. - When delaying logical signal lines of type
rf_signal
via thedelay_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 useport_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 in these cases, manually add delays to the sequence.
Previous versions
- Release 2.56.0
- Release 2.55.0
- Release 2.54.0
- Release 2.53.0
- Release 2.52.0
- Release 2.51.0
- Release 2.50.0
- Release 2.49.0
- Release 2.48.0
- Release 2.47.0
- Release 2.46.0
- Release 2.45.0
- Release 2.44.0
- Release 2.43.0
- Release 2.42.0
- Release 2.41.0
- Release 2.40.0
- Release 2.39.0
- Release 2.38.0
- Release 2.37.0
- Release 2.36.0
- Release 2.35.0
- Release 2.34.0
- Release 2.33.1
- Release 2.33.0
- Release 2.32.0
- Release 2.31.0
- Release 2.30.0
- Release 2.29.0
- Release 2.28.0
- Release 2.27.1
- Release 2.27.0
- Release 2.26.0
- Release 2.25.0
- Release 2.24.0
- Release 2.23.0
- Release 2.22.0
- Release 2.21.0
- Release 2.20.1
- Release 2.20.0
- Release 2.19.0
- Release 2.18.0
- Release 2.17.0
- Release 2.16.0
- Release 2.15.0
- Release 2.14.0
- Release 2.13.0
- Release 2.12.0
- Release 2.11.0
- Release 2.10.0
- Release 2.9.0
- Release 2.8.0
- Release 2.7.0
- Release 2.6.0
- Release 2.5.0
- Release 2.4.0
- Release 2.3.0
- Release 2.2.0
- Release 2.1.0
- Release 2.0.0
- prior to Release 2.0.0