What’s New#
Qblox Instruments: 0.12.0 (25-03-2024)#
Firmware Update
0.7.0 (Cluster)
Python Driver
0.12.0 (PyPI link)
Breaking Changes#
SystemStatus :
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 Deprecated code suggestions for more information.
Deprecations#
System, Sequencer & Acquisition statuses Flags : The methods
qblox_instruments.native.generic_func.get_system_state()
,qblox_instruments.native.generic_func.get_sequencer_state()
andqblox_instruments.native.generic_func.get_acquisition_state()
are deprecated and will all respectively change to the following:qblox_instruments.native.generic_func.get_system_status()
,qblox_instruments.native.generic_func.get_sequencer_status()
andqblox_instruments.native.generic_func.get_acquisition_status()
.Please have a look at Deprecated code suggestions 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:
out0_lo_en()
andout1_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')
. WhileQCM-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.See also
Please have a look at Multiplexing for more detailed instructions on how to control the channel mapping.
QCM Offset Fix: When using a QCM the output DAC offset
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: Technical Specifications is a page where you can find information about the product specifications of the Cluster and the relevant technical compliance.
Deprecations Page: Deprecated code suggestions 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: Troubleshooting page with FAQs and typical troubleshooting steps when encountering issues using the Cluster and qblox-instruments driver.
Qblox Instruments: 0.11.0 (03-08-2023)#
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.
# 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')
See also
There are convenience functions in place to connect sequencers to multiple output/input channels at once. Please have a look at 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 (
in0_offset()
) for details.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 ormarker_ovr_value()
QCoDeS command in which case the corresponding marker will output 0V. E.g: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.
Qblox Instruments: 0.10.0 (05-05-2023)#
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
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
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.
Qblox Instruments: 0.9.0 (28-02-2023)#
Firmware Update
0.4.0 (Cluster)
Python Driver
0.9.0 (PyPI link)
Breaking Changes#
Q1ASM instruction change :
wait_trigger <wait_time_in_ns>
–>wait_trigger <trigger_address>, <wait_time_in_ns>
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.
See also
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 Q1 Sequence Processor section for more details).Reduced back-to-back acquisition latency for binned acquisitions to 300ns from 1200ns.
Bugfixes#
Fixed bug that prevented excluding
Sequencer.sequence()
when creating a snapshot through QCoDeS. As with the previous driver release, It can only be queried usingSequencer.sequence.cache()
.