Skip to main content

Instrument drivers for Qblox devices.

Project description


Welcome to Qblox Instruments

The Qblox instruments package contains everything to get started with Qblox instruments (i.e. Python drivers, documention and tutorials).

This software is free to use under the conditions specified in the license.
For more information, please contact





None yet. Why not be the first?


0.9.0 (28-02-2023)

  • 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. The wait_trigger instruction is also changed accordingly with a new address argument.

  • 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.

  • QCoDeS parameter name change: discretization_threshold_acq -> thresholded_acq_threshold

  • QCoDeS parameter name change: phase_rotation_acq -> thresholded_acq_rotation

  • Improved performance of the get_acquisitions method.

  • Fixed ability to exclude sequencer.sequence readout when creating a snapshot through QCoDeS.

0.8.2 (27-01-2023)

  • Add compatibility for Cluster release v0.3.1

  • Improved scope mode data handling.

0.8.1 (19-12-2022)

0.8.0 (09-12-2022)

  • Added support for the redesigned NCO.

  • Added support for the NCO phase compensation for propagation delays from output to input path.

  • Increased NCO range from +/-300 MHz to +/-500 MHz.

  • Added support for TTL trigger acqusitions.

  • Improved error handling for sequence retrieval.

  • Added support for attenuation control to dummy modules.

  • Added support to set acquisition data in dummy modules.

  • Updated the assemblers used by the dummy modules.

  • Added and updated test cases for new features.

  • Added NCO control tutorial notebook.

  • Added TTL trigger acquisition tutorial notebook.

  • Improved doc-strings.

  • Updated documentation and tutorials.

0.7.0 (04-08-2022)

  • Added command clear acquisition data

  • SPI Rack driver was updated to always unlock it at startup, not initialize the span by default, change the code for changing the span of the S4g and D5a and ensure no mismatch between the host computer and SPI rack on the span value before doing a current/voltage set operation.

  • Changed assembler character limit, and add code to strip the sequencer program from comments and unused information.

  • Updated tutorials to make them independent of the device type (ie QRM or QCM) and to divide them in a Pulsar and a Cluster section.

  • Changed QRM output offset range to 1Vpp.

0.6.1 (20-05-2022)

  • Added input and output attenuation control for RF-modules.

  • Added the ability to disable LOs in RF-modules.

  • Added a method to manually restart ADC calibration in QRM and QRM-RF modules. Be aware that this is a preliminary method that might change in the near future.

  • Changed the SPI Rack driver to eliminate unwanted voltage/current jumps by disabling the reset of voltages/currents on initialization and adding checks to prevent the user to set a value outside of the currently set span.

0.6.0 (29-03-2022)

This release introduces a significant refactor to Qblox Instruments as both a general restructure is introduced and the preliminary Cluster driver is replaced by the definitive driver. Unfortunately, this means that this release also introduces a few breaking changes. In exchange, we believe that this release prepares Qblox Instruments for the future.

  • Renamed all classes to be compliant with PEP8’s capswords format.

  • Restructured imports; all drivers are now imported directly from qblox_instruments as follows:
    • from qblox_instruments import Cluster, Pulsar, SpiRack

    • from qblox_instruments.qcodes_drivers.spi_rack_modules import D5aModule, S4gModule

  • With the new Cluster firmware release, the user now interacts with the Cluster as a single instrument instead of a rack of instruments. The new Cluster driver reflects this. It detects where and which modules are in the rack and automatically makes them accessible as an InstrumentChannel submodule accessible as Cluster.module<x>, where x is the slot index of the rack.

  • The Pulsar QCM and Pulsar QRM drivers have been combined into a single Pulsar driver that covers the functionality of both.

  • The SPI Rack driver driver has been split into a native and QCoDeS layer to improve separation of functionality.

  • Each sequencer’s parameters are now accessible through it’s own InstrumentChannel submodule. This means that parameters are now accessible as module.sequencer<x>.parameter, where x is the sequencer index.

  • Renamed get_system_status to get_system_state to be inline with other state method names.

  • The methods get_system_state and get_sequencer_state now return namedtuples of type SystemState and SequencerState respectively to ease handling of the returned statuses and accompanying flags.

  • Renamed the sequencer’s waveform_and_programs parameter to sequence.

  • The way to configure the driver as a dummy has been changed to use enums for module type selection.

  • Added keep alive pinging to the socket interface to keep the instrument connection from closing after a platform dependant idle period.

  • Fixed general code duplication problem between instruments.

  • Introduced qblox-cfg as the new configuration management tool with which to update the Cluster and Pulsar instruments. As of Pulsar firmware release v0.7.0 and Cluster firmware release v0.2.0, the configuration management tool is no longer shipped with the release, but instead qblox-cfg must be used. This new tool provides far more functionality and exposes the improved network configurability of the latest firmware releases.

  • On top of the new configuration management tool, qblox-pnp is also instroduced as the new network debug tool. This tool, in combination with the latest firmware releases, allows to easily find instruments in the network and to potentially recover them in case of network/IP configuration problems.

  • Improved unit test coverage.

  • Updated the documentation on Read the Docs to reflect the changes.

  • Added various improvements and fixes to the tutorials.

0.5.4 (22-12-2021)

  • Cleaned code to improve unit test code coverage.

0.5.3 (26-11-2021)

  • Improved __repr__ response from the QCoDeS drivers.

  • Added tutorials for multiplexed sequencing, mixer correction, RF-control and Rabi experiments.

  • Fixed empty acquisition list readout from dummy modules.

  • Added RF-module support to dummy modules.

0.5.2 (11-10-2021)

  • Device compatibility update.

0.5.1 (07-10-2021)

  • Device compatibility update.

  • Added channel map functionality to dummy layer.

0.5.0 (05-10-2021)

  • Increased sequencer support to 6 sequencers per instrument.

  • Added support for real-time mixer correction.

  • Renamed Pulsar QRM input gain parameters to be inline with output offset parameter names.

  • Updated the assemblers for the Pulsar QCM and QRM dummy drivers to support the phase reset instruction.

  • Added preliminary driver for the Cluster.

0.4.0 (21-07-2021)

  • Changed initial Pulsar QCM and QRM device instantiation timeout from 60 seconds to 3 seconds.

  • Added support for the new Pulsar QRM acquisition path functionalities (i.e. real-time demodulation, integration, discretization, averaging, binning).

  • Updated the assemblers for the Pulsar QCM and QRM dummy drivers.

  • Switched from using a custom function to using functools in the QCoDeS parameters.

0.3.2 (21-04-2021)

  • Added QCoDeS driver for D5A SPI-rack module.

  • Updated documentation on ReadTheDocs.

0.3.1 (09-04-2021)

  • Device compatibility update.

0.3.0 (25-03-2021)

  • Added preliminary internal LO support for development purposes.

  • Added support for Pulsar QCM’s output offset DACs.

  • Made IDN fields IEEE488.2 compliant.

  • Added SPI-rack QCoDeS drivers.

  • Fixed sequencer offset instruction in dummy assemblers.

  • Changed acquisition out-of-range result implementation from per sample basis to per acquisition basis.

0.2.3 (03-03-2021)

  • Small improvements to tutorials.

  • Small improvements to doc strings.

  • Socket timeout is now set to 60s to fix timeout issues.

  • The get_sequencer_state and get_acquisition_state functions now express their timeout in minutes iso seconds.

0.2.2 (25-01-2021)

  • Improved documentation on ReadTheDocs.

  • Added tutorials to ReadTheDocs.

  • Fixed bugs in Pulsar dummy classes.

  • Fixed missing arguments on some function calls.

  • Cleaned code after static analysis.

0.2.1 (01-12-2020)

  • Fixed get_awg_waveforms for Pulsar QCM.

  • Renamed get_acquisition_status to get_acquisition_state.

  • Added optional blocking behaviour and timeout to get_sequencer_state.

  • Corrected documentation on Read The Docs.

  • Added value mapping for reference_source and trigger mode parameters.

  • Improved readability of version mismatch.

0.2.0 (21-11-2020)

  • Added support for floating point temperature readout.

  • Renamed QCoDeS parameter sequencer#_nco_phase to sequencer#_nco_phase_offs.

  • Added support for Pulsar QCM input gain control.

  • Significantly improved documentation on Read The Docs.

0.1.2 (22-10-2020)

  • Fixed Windows assembler for dummy Pulsar

  • Fixed MacOS assembler for dummy Pulsar

0.1.1 (05-10-2020)

  • First release on PyPI

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qblox_instruments-0.9.0.tar.gz (1.3 MB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page