.. _whatsNew: What's New ========== .. note:: If you are updating from a firmware version earlier than 0.9.0, please be aware that a manual reboot will be required as part of the update procedure. For more details, please consult the Breaking Changes section in the :ref:`fw_0_8_0` and :ref:`fw_0_9_0` release notes. .. _fw_0_12_0: Qblox Instruments: 0.17.0 (2025-06-03) -------------------------------------- **Firmware Update** - 0.12.0 (`Cluster `__) **Python Driver** - 0.17.0 (`PyPI link `__) **Quantify-Scheduler** - 0.24.0 (`PyPI link `__) ✨ New Features ****************** - Reduced communication overhead by removing redundant error checks. - Note that default behavior of the debug level has been slightly changed, see :class:`qblox_instruments.types.DebugLevel` for details. - Note that setting a non-default value for the debug level does not improve performance. Disabling error checks is not recommended. - Added :meth:`Cluster.check_error_queue` for checking and printing system errors. - Added error flag when the trigger network calibration fails (for instance due to an incorrect module insertion). 🐞 Bugfixes ****************** - Fixed a bug causing network connection fails for QCM/QRM modules after a firmware update. - Fixed QTM dummy module, it can now run sequences and retrieve dummy data. 🚩 Known Issues ****************** - Marker output temporarily returns to high state after transition to low state. This is observed when enabling marker override and setting the marker state to low using the qcodes parameter ``Sequencer.marker_ovr_value(0)``. In this case, the marker state goes to low state for `~78 ns`, jumps back to high for `~68 us` and goes back to low after. Using markers via q1asm is unaffected. - Misleading error message when exceeding waveform maximum amplitude by a factor between 1.0 and 2.0. One would get: ``UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 253: invalid start byte``. Affects QRM and QRM-RF. Deprecations ****************** - ``qblox_instruments.generic_func`` - Relevant enums can now be found in ``qblox_instruments.native.definitions``. - The module will be removed after September 2025. Documentation Updates *********************** - Added application example for `g2 correlations. `__ - Added tutorial for `count based feedback. `__ Quantify Highlights *********************** - ✨ **New features** - Allow >100us integration time when measuring spin qubits. - Allow voltage offsets on ports that are not used for pulse compensation. - :meth:`!from_json_file` and :meth:`!to_json_file` methods now also work on classes that are derived from :class:`!QuantumDevice` and :class:`!DeviceElement`. - The device elements json configuration file are now easier to read: the nested fields are implemented as actual json fields instead of long single strings. - Configuration for :class:`!QuantumDevice`, :class:`!DeviceElement` and :class:`!QbloxHardwareCompilationConfig` can now be loaded from (and respectively dumped into) yaml files, using the :meth:`!from_yaml_file` and :meth:`!to_yaml_file` methods. - 🐞 Bug Fixes - :class:`!quantify_scheduler.InstrumentCoordinator` now returns an empty :class:`!DataArray` when no timetags are recorded in :class:`!TimetagTrace` .. _fw_0_11_0: Qblox Instruments: 0.16.0 (2025-04-01) -------------------------------------- **Firmware Update** - 0.11.0 (`Cluster `__) **Python Driver** - 0.16.0 (`PyPI link `__) **Quantify-Scheduler** - 0.23.0 (`PyPI link `__) 💥 Breaking changes ******************* - python 3.8 is not supported for `qblox-instruments` versions 0.16.0 and higher. ✨ New Features ****************** - **Improved Numerically Controlled Oscillator (NCO)** - NCO operations can now be placed on a 1 ns time-grid (like all other real-time instructions). - The minimum time between NCO frequency updates has been reduced to 4ns (from the previous limit of 8ns). Phase changes and other parameter operation instructions updates can be done every 4ns, as before. - **Truth Table feature** is now available for the QTM through the following API commands: - :meth:`IOChannel.truth_table_en()` - :meth:`IOChannel.thresholded_acq_trigger_en()` - :meth:`IOChannel.truth_table_data()` .. seealso:: You can find a demonstration on how to use this feature `here. `__ - ``qblox-cfg`` **CLI update:** - Possibility to select a specific set of modules and proceed to their update. See ``qblox-cfg --help`` for more info. - **New** ``qblox_instruments`` **API commands implemented to the** :class:`qblox_instruments.Cluster` **class:** - :meth:`~Cluster.shutdown_module`, :meth:`~Cluster.shutdown_modules` → shuts down specific set of modules or all connected modules - :meth:`~Cluster.reboot_module`, :meth:`~Cluster.reboot_modules` → reboots the module(s) in the given slot(s) - :meth:`~Cluster.powerup_module`, :meth:`~Cluster.powerup_modules` → powers up the module(s) in the given slot(s) - :meth:`~Cluster.get_hardware_revisions` → returns a table with the various hardware details of the current module. 🐞 Bugfixes ****************** - Fixed: Sideband calibration with :meth:`Sequencer.sideband_cal` only worked on sequencer 0. It now works on all sequencers. - Fixed an acquisition time bug limiting its maximal value. The new maximum value is now correct, and equal to ``16.77ms`` - Non-standard behavior of the phase offset when used with negative frequencies has been rectified. Whereas before the NCO simply flipped the sign of the Q signal (output was :math:`I - iQ` instead of :math:`I + iQ`), it now implements the standard behavior of :math:`\exp(2 \pi f i t + i \phi )`, where :math:`f` can be positive or negative. - Fixed edge case where the IQ mixer auto-calibration procedure of RF modules failed to find the correct calibration values. - Fixed ``Network timeout`` error when running high repetition rates fixed for the QTM. Documentation Updates *********************** - **New color center example** Significantly improved the quantify application example for `color centers. `__ - **Improved application examples** Added plotting, simulated data and improved visualization tools in many `application examples. `__ - **Version warning banner** starting from 0.14.2, a warning banner is shown when browsing an old version of the documentation. Quantify Highlights *********************** - ✨ **New features** - Implemented :class:`!RFSwitchToggle` operation to turn RF modules outputs ON for a specific duration. - Together with the new hardware config setting ``"rf_output_on": False``, this operation will suppress the noise floor of RF modules whenever there is no output. - Added :class:`!WeightedThresholdedAcquisition` acquisition protocol (similar to :class:`!ThresholdedAcquisition` but with the ability to supply weights during the integration). - Added GUI visualization to :class:`!Schedule.compiled_instructions`. - **Spin platforms:** - Better implementation of CZ gate for spin. - Added a :class:`!ChargeSensor` element to the spin back-end. - **NV centers platforms:** - Added new pulse shape available for NV centers backend (*Hermite* and *Gauss*). - Added ``S`` (aka ``Z90``) and ``T`` (aka ``Z45``) gates to the gate library, as well as their Hermitian conjugates. - Ability to set a time reference relative to another channel of the same module when using ``TimeTag`` acquisitions. - Ability to synchronize time with external triggers when using ``TimeTag`` acquisitions. - Added :class:`!DualThresholdedTriggerCount` operation for QTM modules: can take two counts thresholds and can subsequently send triggers on 4 different addresses. Offers broader possibilities of logical operations implementation. - 🚀 **Enhancements** - All Schedule operations are now allowed to be set on a 1 ns time-grid (minimum duration of 4 ns still applies). - ``delete_acquisition_data`` is now called only for the sequencers that have acquisitions in the current program. - 💥 **Breaking Changes** - **Dropping the support for python 3.8.** - 🐞 Bugfixes - :class:`!AcquisitionManager` now correctly calculates sum with ``BinMode.SUM`` for :class:`!TriggerCount` acquisition with the QTM. - ``Schedule.to_json()`` now also works for :class:`!Schedule` containing ``ReferenceMagnitude``. - Compiling schedules containing :class:`!MarkerPulse`` no longer raises ``NCO frequency cannot be 'None' it must be int or float``. .. _fw_0_10_0: Qblox Instruments: 0.15.0 (2025-01-10) -------------------------------------- **Firmware Update** - 0.10.0 (`Cluster `__) **Python Driver** - 0.15.0 (`PyPI link `__) **Quantify-Scheduler** - 0.22.2 (`PyPI link `__) **Quantify-Core** - 0.7.9 (`PyPI link `__) New Features ****************** - **Improved temperature control and fan noise** Cluster’s thermal setpoints have been reviewed and updated. For systems that are partially populated, reduced fan speeds and associated sound pressure levels are expected. The degree of reduction will depend on module density and placement. For fully populated systems, no improvement in fan speed or sound levels is anticipated. - Added a firmware- and hardware compatibility check in-cluster, disallowing the user from using modules of different software versions unless in debug mode. - Require confirmation for ``qblox-pnp`` commands that make bulk configuration changes to all devices on the network - Add time in cluster with timestamping functionality to configure the time source for timetagging. - Add preliminary QTM calibration interface and loopback output mode. - Add QTM :meth:`IOChannel.binned_acq_count_source`, :meth:`IOChannel.binned_acq_on_invalid_count`, and :meth:`IOChannel.binned_acq_on_invalid_threshold` parameters. - Add ``qblox-cfg`` support for extended instruments. - Changed SYNQ party line timing to increase the number of Clusters that are synchronizable. Deprecations ***************** Please see :ref:`deprecated` for more information. - Renamed :class:`!QcmQrmDummyTransport` to :class:`~qblox_instruments.ieee488_2.ModuleDummyTransport`. :class:`!QcmQrmDummyTransport` will be removed after April 2025. - :class:`!SystemState`, :class:`!SystemStatusOld`, and :meth:`!get_system_state` are deprecated and removed from the codebase. - :class:`!SequencerState`, :class:`!SequencerStatusOld`, :meth:`!get_sequencer_state`, and :meth:`!get_acquisition_state` are deprecated and removed from the codebase. Bugfixes ****************** - Fix the network calibration failure status flag so that it is rendered correctly. - Fixed spurious TDC deadline faults from QTM when switching reference clock. Known Issues ****************** - Sideband calibration with :meth:`Sequencer.sideband_cal` only works on sequencer 0. Workaround: Use sequencer 0 to calibrate the desired NCO frequency, and transfer the values to the desired sequencer. Documentation Updates *********************** - **New url** The documentation is now hosted on the qblox domain under ``__. Forwarding from the read the docs page is in place. Quantify Highlights *********************** - **Friendly imports** To reduce the number of imports in your code, we have added friendly import paths for common quantify operations and other classes: .. code-block:: python from quantify_scheduler import Schedule, QuantumDevice, ScheduleGettable, ... from quantify_scheduler.operations import Measure, DRAGPulse, ConditionalOperation, Trace, ... - **Spin qubit support** We added new operations and features to better support spin qubits in quantify. - *New operations* We have added a few more operations specific for spin-based elements. These include: ``quantify_scheduler.operations.SpinEdge``, ``quantify_scheduler.operations.SpinInit``, ``quantify_scheduler.operations.SpinPSB`` - *Crosstalk compensation* We have added support for cross talk compensation to compensate unwanted interference and interactions between qubits. - **More serialization features** We have added more (de)serialization features to allow for more flexible and reusable schedules. We can now use ``to_json``, ``from_json``, ``to_json_file`` and ``from_json_file`` on ``QuantumDevice``, ``DeviceElement`` (e.g. ``BasicTransmonElement``, ``BasicNVCenterElement`` and ``BasicSpinElement``) and ``Schedule`` objects. - **Reloading hardware config** In addition to serializing the quantum device, we can now also (re)load hardware configurations from JSON files using ``quantum_device.hardware_config.load_from_json_file("path/to/hardware_config.json")`` and serialize with ``quantum_device.hardware_config.write_to_json_file("path/to/hardware_config.json")`` - **Improved hardware compilation config** The Qblox hardware compilation configuration is now versioned to make it easier for us to make changes without breaking existing code. v0.2 brings a behavioral change compared to v0.1 (and unversioned), where Measure operations will require to have both input and output channels specified. - **Supporting xarray** ``ScheduleGettable`` optionally returns ``xarray.DataSet`` .. _fw_0_9_2: Qblox Instruments: 0.14.2 (2024-11-11) -------------------------------------- **Firmware Update** - 0.9.2 (`Cluster `__) **Python Driver** - 0.14.2 (`PyPI link `__) **Quantify-Scheduler** - 0.21.1 (`PyPI link `__) **Quantify-Core** - 0.7.9 (`PyPI link `__) Bugfixes: ****************** - Fixed issue where an experiment with many acquisitions at a high rate could cause a module to disconnect from the cluster. Documentation Updates: *********************** - **Application examples** Divided the application examples into full notebooks and short examples. Examples are now filtered by qubit type. .. _fw_0_9_1: Qblox Instruments: 0.14.1 (2024-09-13) -------------------------------------- **Firmware Update** - 0.9.1 (`Cluster `__) **Python Driver** - 0.14.1 (`PyPI link `__) **Quantify-Scheduler** - 0.21.1 (`PyPI link `__) **Quantify-Core** - 0.7.6 (`PyPI link `__) New Features ****************** - **Automatic Mixer Calibration**: Added convenience features. - `module.out{x}_lo_freq`` can be set with an optional keyword argument cal_type which can be one of "off", "lo only" and "lo and sidebands". - New parameter `module.out{x}_lo_freq_cal_type_default`` can set the default cal_type. - `sequencer.nco_freq`` can be set with an optional keyword argument cal_type which can be one of "off", "sideband". - New parameter `sequencer.nco_freq_cal_type_default`` can set the default cal_type. Bugfixes: ****************** - Disabled AMC ADC clock which was causing cross talk on output channels in baseband module. - Fixed LO frequency not correctly setup after running AMC calibration. - Fixed RF spurs from AMC by keeping the AMC ADC clock off except during calibration and disabling outputs during calibration. Documentation Updates: *********************** - **Application examples** Expanded the library of superconducting qubit application examples. Notably including randomized benchmarking. Quantify Highlights: *********************** - **1ns time grid** In some cases it is required that NCO operation be allowed on the 1 ns timegrid instead of the NCO 4 ns timegrid. In this case, the user can set the hardware option `allow_off_grid_nco_ops`` to True. (By default, the compiler acts as if it was False.) - **Performance increase** For schedules with loops and acquisitions, the compilation time improved up to 70 %. .. _fw_0_9_0: Qblox Instruments: 0.14.0 (2024-08-12) -------------------------------------- **Firmware Update** - 0.9.0 (`Cluster `__) **Python Driver** - 0.14.0 (`PyPI link `__) **Quantify-Scheduler** - 0.21.0 (`PyPI link `__) **Quantify-Core** - 0.7.6 (`PyPI link `__) Breaking Changes ***************** - **Reboot Behavior After Firmware Update** : A firmware update to v0.9.0, from any prior version (including from v0.8.0) requires a manual reboot from the user. Please note that this is only a one-time procedure and a manual reboot will not be required for any future firmware upgrades while upgrading from v0.9.0. Please also note that, an update from v0.9.0 to v0.9.0 will also not require a manual reboot. New Features ****************** - **Real Time Pulse Predistortions (RTP)** Added support of real-time predistortions (RTP) in our :ref:`qcm_description` modules. The journey of a signal to the device under test (DUT) is inherently imperfect, as electronic components in the signal path—such as DACs, wirebonds, and bias Ts—distort the pulse. To mitigate these distortions, we have now integrated, independently controllable, physical filters in the real-time path of each output of the QCM. This enhancement allows pulses to be pre-distorted, ensuring that the waveforms generated with your QCM closely match the waveforms that actually reach your DUT. Each QCM output features: - *Four Exponential Overshoot/Undershoot Filters*: These filters help to correct for overshoots and undershoots in the pulse, which are common sources of signal distortion due to impedance mismatches in the input path. - *One Finite Impulse Response (FIR) Filter*: The FIR filter enables arbitrary predistortion of the waveform using 32 coefficients, corresponding to a 32 ns filter window. To delve deeper into this feature, you can read more about it :ref:`rtp`. For a step-by-step guide on how to implement RTP, please refer to this `tutorial. `__ - **Automatic Mixer Calibration**: Added support to allow automated calibration of the up-conversion mixer. This feature uses the internal circuitry of RF modules hence no external cabling is required on the output channels. We expect a typical suppression of 35 dBc for LO and sideband tones when calibrating a tone with 30 percent IF power. .. seealso:: You can find a demonstration on how to use this feature `here. `__ - **More QTM memory**: QTM scope/trace memory quadrupled to 2048 timetags in trace mode or 131us in scope mode. Bugfixes: ****************** - Fixed QTM channel LEDs not updating - Fixed QTM get scope data race condition - Fixed overtemperature flags not being set until critical temperature is reached - Fixed rare random 1ns offsets on DAC channels after a reset - Fixed module reset being called twice - Fixed QRM baseband reset not resetting input offsets - Improved overtemperature measurements and limits - Fixed an issue where updating the firmware may require manually rebooting the cluster Documentation Updates: *********************** - **Module specific tutorials** Use tabs to show tutorials filtered by module type. - **Downloadable tutorials** Downloadable versions of tutorials come bundled with all figures and helper files. - **SPI rack** Expanded documentation for the SPI rack. - **Quantify tutorials** Placed links to quantify tutorials more prominently. Quantify Highlights: *********************** - **1ns time grid** For the Qblox backend, operations are now allowed to live on a 1 ns time grid, except NCO-related instructions (set_ph, set_ph_delta, reset_ph and set_freq) that still require to start on a 4 ns time grid. - **Python support** Quantify-Scheduler is now compatible with Python 3.10, 3.11 and 3.12. The current Zhinst backend still requires 3.8 or 3.9. - **Performance increase** The time between uploading and executing Schedules to a Qblox Cluster has reduced, leading to an execution speedup for experiments. - **New acquisition protocols** `LongTimeTrace`, `TimetagTrace` and `Timetag` - **Passing device parameters to Gates** We now allow to write e.g. `Measure("q0", freq=8e6)` - **Spin backend support** new device element `BasicSpinElement` .. _fw_0_8_0: Qblox Instruments: 0.13.0 (2024-05-01) -------------------------------------- **Firmware Update** - 0.8.0 (`Cluster `__) **Python Driver** - 0.13.0 (`PyPI link `__) Breaking Changes ***************** - **Reboot Behavior After Firmware Update** : A firmware update to v0.8.0 from any version requires a manual reboot from the user. New Features ****************** - **QTM Firmware Support** : Added firmware support for our new Qubit Time-tagging Module. - **New i2c-tools Version**: qblox-instruments now requires python package i2c-tools v4.3 (updated from v3.1.2). - **Improved delay compensation**: Upper limit of :meth:`~Sequencer.nco_prop_delay_comp` increased from 50ns to 109ns. Bugfixes: ****************** - **qblox-pnp list Parsing** : Fixed bug on `qblox-pnp` device list parsing. .. _fw_0_7_0: Qblox Instruments: 0.12.0 (2024-03-25) -------------------------------------- **Firmware Update** - 0.7.0 (`Cluster `__) **Python Driver** - 0.12.0 (`PyPI link `__) Breaking Changes ***************** - **SystemStatus** : :class:`!qblox_instruments.native.generic_func.SystemStatus` has been changed from an `enum` to a `namedtuple` composed of SystemStatuses, SystemStatusFlags and SystemStatusSlotFlags `enums`. The old `SystemStatus` enum was kept as `SystemStatusOld` enum for backwards compatibility until removal. Please see :ref:`deprecated` for more information. Deprecations ****************** - **System, Sequencer & Acquisition statuses Flags** : The methods :meth:`!qblox_instruments.native.generic_func.get_system_state`, :meth:`!qblox_instruments.native.generic_func.get_sequencer_state` and :meth:`!qblox_instruments.native.generic_func.get_acquisition_state` are deprecated and will all respectively change to the following: :meth:`!qblox_instruments.native.generic_func.get_system_status`, :meth:`!qblox_instruments.native.generic_func.get_sequencer_status` and :meth:`!qblox_instruments.native.generic_func.get_acquisition_status`. Please have a look at :ref:`deprecated` to learn more. New Features ****************** - **CMM Module Firmware Mismatch Flag** : Previously, only the firmware version of the `CMM `_ was verified to match the version of qblox-instruments. However, it did not check whether the firmware of the other modules matched that of the CMM. Now, during the initialization of the Cluster object, an error will be raised if the firmware of the CMM does not correspond to any of the other modules in the Cluster. Bugfixes: ****************** - **QCM-RF AFE H LO Enable:** The QCM-RF modules with the latest analog front end (AFE) revision H had a bug wherein the Local Oscillators (LOs) were not enabled by default and you had to explicitly enable the LOs using the methods: :meth:`~QCM_RF.out0_lo_en` and :meth:`~QCM_RF.out1_lo_en`. In firmware version 0.7.0 LOs are enabled by default. - **QCM-RF AFE H Channel Mapping:** In QCM-RF modules with AFE revision H, an error was triggered when utilizing the channel map convenience function ``QCM-RF.sequencer0.connect_sequencer('out0')``. While ``QCM-RF.sequencer0.connect_out0('IQ')`` functioned properly, but these two methods are functionally equivalent. This issue has been addressed and resolved in firmware version 0.7.0. .. seealso:: Please have a look at :ref:`sequence_processor_multiplexing` for more detailed instructions on how to control the channel mapping. - **QCM Offset Fix:** When using a QCM the output DAC offset :meth:`~QCM.out0_offset` would reset to 0V when changing the channel map. Now, changing channel map does not effect the output voltage. - **TTL Burst Patch**: Previously, when doing a TTL acquisition and forwarding the result using trigger based feedback, an error was raised when triggers were closer than 200 ns from each other. Instead of raising an error and stopping the experiment, now the sequencer flags the trigger address (`missed_tgr_addr` available via `get_sequencer_status`) where the trigger was possibly missed while the experiment continues. Documentation Updates: *********************** - **Product Specifications and Technical Compliance:** :ref:`spec_compliance` is a page where you can find information about the product specifications of the Cluster and the relevant technical compliance. - **Deprecations Page:** :ref:`deprecated` is a page to inform users of the features and public interface methods of qblox-instruments driver that are deprecated and marked for removal in a future release. - **Troubleshooting Page**: :ref:`troubleshooting` page with FAQs and typical troubleshooting steps when encountering issues using the Cluster and qblox-instruments driver. .. _fw_0_6_0: Qblox Instruments: 0.11.0 (2023-08-03) -------------------------------------- **Firmware Update** - 0.6.0 (`Cluster `__) **Python Driver** 0.11.0 (`PyPI link `__) Breaking Changes ****************** - Channel map settings: The architecture to map the sequencer output paths to module output channels have undergone major refactoring. The users are now able to map any sequencer path to any output/input channel. As a result, the public interface commands to setting channel map have changed. .. code-block:: python # QCM Baseband instrument.sequencer{0..5}.connect_out{0..3}('I') # E.g : qcm.sequencer0.connect_out0("I") instrument.sequencer{0..5}.connect_out{0..3}('Q') # E.g : qcm.sequencer1.connect_out0("Q") # QRM baseband instrument.sequencer{0..5}.connect_out{0,1}('I') instrument.sequencer{0..5}.connect_out{0,1}('Q') instrument.sequencer{0..5}.connect_acq_I('in0') instrument.sequencer{0..5}.connect_acq_Q('in1') # QCM_RF instrument.sequencer{0..5}.connect_out{0,1}('IQ') # QRM_RF instrument.sequencer{0..5}.connect_out0('IQ') instrument.sequencer{0..5}.connect_acq('in0') .. seealso:: There are convenience functions in place to connect sequencers to multiple output/input channels at once. Please have a look at :ref:`sequence_processor_multiplexing` for more info on how this can be done. New Features ****************** - Settable ADC Offset : The ADC (Analog-to-Digital Converter) of the readout modules have an inherent DC offset that depends on temperature. This release allows the user to manually compensate for this by setting an offset via a QCoDeS command. Please have a look at the API reference (:meth:`~QRM.in0_offset`) for details. .. seealso:: `Tutorial on characterizing ADC offsets `__ - Active Low Marker Channels: The markers can now be set at an active-low state. When enabled, the markers will stay at a 3.3 V unless it is set using ``set_mrk`` Q1ASM command or :meth:`~Sequencer.marker_ovr_value()` QCoDeS command in which case the corresponding marker will output 0V. E.g: :meth:`~QRM.marker0_inv_en`. Bugfixes: ****************** - Fixed set/get values for certain QCoDeS parameters for a dummy cluster. Please have a look at this `gitlab issue `__ for the list of all affected parameters. .. _fw_0_5_0: Qblox Instruments: 0.10.0 (2023-05-05) -------------------------------------- **Firmware Update** - 0.5.0 (`Cluster `__) **Python Driver** 0.10.0 (`PyPI link `__) Breaking Changes ****************** None New Features ****************** - 1ns timegrid : Changed resolution of the sequencer's real-time timegrid from 4 ns to 1 ns for all real-time instructions, except for the instructions that operate on the NCOs (``set_freq``, ``reset_ph``, ``set_ph``, ``set_ph_delta``). For now, the NCO instructions still operate on the 4 ns timegrid. .. note:: The minimum duration for the real time instructions must still be greater than 4 ns. Scope acquisitions can be started on a 1 ns time resolution. When doing hardware averaged scope acquisitions, the acquisition duration should be a multiple of 4ns. - Dummy Acquisition: The data acquisition can now be mocked by the dummy driver at runtime as compared to the previous version where the dummy data was passed to the acquisition dictionary during compile time. - Added the option to control the brightness of the front-panel LEDs. The brightness can be set to four settings: high, medium, low, off ( See :meth:`Cluster.led_brightness`). Bugfixes: ****************** - ADC Calibration: Cause for sporadic failures of ADC calibration (runtime exceptions and data glitches) was found and fixed. ADC Calibration now also runs in the background calling for less user intervention to calibrate it. (See :meth:`~qblox_instruments.scpi.Cluster.start_adc_calib`). - Fan speed : Fan speed getting stuck issue due to the presence of at least one baseband module in the cluster, is fixed. - Continuous Output mode : Introduced in the previous firmware release (Cluster fw 0.4.0), the issue with no continuous signal from even outputs is fixed with this release. .. _fw_0_4_0: Qblox Instruments: 0.9.0 (2023-02-28) ------------------------------------- **Firmware Update** - 0.4.0 (`Cluster `__) **Python Driver** 0.9.0 (`PyPI link `__) Breaking Changes ****************** - Q1ASM instruction change : ``wait_trigger `` --> ``wait_trigger , `` - QCoDeS parameter name change: ``discretization_threshold_acq`` --> ``thresholded_acq_threshold``. - QCoDeS parameter name change: ``phase_rotation_acq`` --> ``thresholded_acq_rotation``. New Features ****************** - Added new feedback functionality to allow sequencer-to-sequencer, module-to-module and Cluster-to-Cluster feedback. To support this, new Q1ASM instructions are added to the instruction set. Please have a look at the Feedback section on the RTD for more info and Conditional Playback Tutorial to see it in action. .. seealso:: `Conditional Playback Tutorial `_ .. note:: The external trigger input is now also connected to the new trigger network for feedback purposes and must be mapped to this network using the associated parameters (please look at ``wait_trigger`` Q1ASM command in the :ref:`sequence_processor` section for more details). - Reduced back-to-back acquisition latency for binned acquisitions to 300ns from 1200ns. Bugfixes ****************** 1. Fixed bug that prevented excluding :meth:`!Sequencer.sequence` when creating a snapshot through QCoDeS. As with the previous driver release, It can only be queried using :meth:`!Sequencer.sequence.cache`.