Metadata-Version: 2.1
Name: qblox_instruments
Version: 0.7.0
Summary: Instrument drivers for Qblox devices.
Home-page: https://gitlab.com/qblox/packages/software/qblox_instruments
Download-URL: https://gitlab.com/qblox/packages/software/qblox_instruments/-/archive/v0.7.0/qblox_instruments-v0.7.0.zip
Author: Qblox BV
Author-email: support@qblox.com
License: BSD 4-Clause
Keywords: Qblox,QCoDeS,instrument,driver
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Provides-Extra: dev
Provides-Extra: docs
License-File: LICENSE
License-File: AUTHORS.rst

|
|

.. figure:: https://cdn.sanity.io/images/ostxzp7d/production/f9ab429fc72aea1b31c4b2c7fab5e378b67d75c3-132x31.svg
    :width: 400px
    :target: https://qblox.com
    :align: center
    :alt: Qblox

|
|

.. image:: https://gitlab.com/qblox/packages/software/qblox_instruments/badges/master/pipeline.svg
    :target: https://gitlab.com/qblox/packages/software/qblox_instruments/pipelines/

.. image:: https://gitlab.com/qblox/packages/software/qblox_instruments/-/jobs/artifacts/master/raw/pylint/pylint.svg?job=pylint
    :target: https://gitlab.com/qblox/packages/software/qblox_instruments/pipelines/

.. image:: https://gitlab.com/qblox/packages/software/qblox_instruments/badges/master/coverage.svg
    :target: https://gitlab.com/qblox/packages/software/qblox_instruments/pipelines/

.. image:: https://readthedocs.com/projects/qblox-qblox-instruments/badge/?version=master
    :target: https://qblox-qblox-instruments.readthedocs-hosted.com/en/master/?badge=master

.. image:: https://img.shields.io/pypi/v/qblox-instruments.svg
    :target: https://pypi.org/pypi/qblox-instruments

.. image:: https://img.shields.io/badge/License-BSD%204--Clause-blue.svg
    :target: https://gitlab.com/qblox/packages/software/qblox_instruments/-/blob/master/LICENSE

|

############################
Welcome to Qblox Instruments
############################

| The Qblox instruments package contains everything to get started with Qblox instruments (i.e. Python drivers, `documention and tutorials <https://qblox-qblox-instruments.readthedocs-hosted.com/en/master/>`_).

----------------------------

| This software is free to use under the conditions specified in the `license <https://gitlab.com/qblox/packages/software/qblox_instruments/-/blob/master/LICENSE>`_.
| For more information, please contact `support@qblox.com <support@qblox.com>`_.

----------------------------


=======
Credits
=======

Developers
----------------

Qblox:
    * Jordy Gloudemans <jgloudemans@qblox.com>
    * Damien Crielaard <dcrielaard@qblox.com>
    * Diogo Valada <dvalada@qblox.com>
    * Damaz de Jong <ddejong@qblox.com>

External:
    * Pieter Eendebak <pieter.eendebak@tno.nl>

Contributors
------------

None yet. Why not be the first?


=======
History
=======

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.

.. note::

    * Compatible with Pulsar QCM firmware v0.7.2 and Pulsar QRM firmware v0.7.2.
    * Compatible with Cluster firmware v0.2.2.

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.

.. note::

    * Compatible with Pulsar QCM firmware v0.7.1 and Pulsar QRM firmware v0.7.1.
    * Compatible with Cluster firmware v0.2.1.

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.

.. note::

    * Compatible with Pulsar QCM firmware v0.7.0 and Pulsar QRM firmware v0.7.0.
    * Compatible with Cluster firmware v0.2.0.

0.5.4 (22-12-2021)
------------------

* Cleaned code to improve unit test code coverage.

.. note::

    * Compatible with Pulsar QCM device firmware v0.6.3 and Pulsar QRM device firmware v0.6.3.
    * Compatible with Cluster CMM device firmware v0.1.1, Cluster QCM device firmware v0.1.5 and Cluster QRM device firmware v0.1.5.

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.

.. note::

    * No Pulsar or Cluster device firmware compatibility changes.

0.5.2 (11-10-2021)
------------------

* Device compatibility update.

.. note::

    * Compatible with Pulsar QCM device firmware v0.6.2 and Pulsar QRM device firmware v0.6.2.
    * Compatible with Cluster CMM device firmware v0.1.0, Cluster QCM device firmware v0.1.3 and Cluster QRM device firmware v0.1.3.

0.5.1 (07-10-2021)
------------------

* Device compatibility update.
* Added channel map functionality to dummy layer.

.. note::

    * Compatible with Pulsar QCM device firmware v0.6.1 and Pulsar QRM device firmware v0.6.1.
    * Compatible with Cluster CMM device firmware v0.1.0, Cluster QCM device firmware v0.1.2 and Cluster QRM device firmware v0.1.2.

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.

.. note::

    * Compatible with Pulsar QCM device firmware v0.6.0 and Pulsar QRM device firmware v0.6.0.
    * Compatible with Cluster CMM device firmware v0.1.0, Cluster QCM device firmware v0.1.1 and Cluster QRM device firmware v0.1.1.

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.

.. note::

    * Compatible with Pulsar QCM device firmware v0.5.2 and Pulsar QRM device firmware v0.5.0.

0.3.2 (21-04-2021)
------------------

* Added QCoDeS driver for D5A SPI-rack module.
* Updated documentation on ReadTheDocs.

.. note::

    * No Pulsar device firmware compatibility changes.

0.3.1 (09-04-2021)
------------------

* Device compatibility update.

.. note::

    * Compatible with Pulsar QCM device firmware v0.5.1 and Pulsar QRM device firmware v0.4.1.

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.

.. note::

    * Compatible with Pulsar QCM device firmware v0.5.0 and Pulsar QRM device firmware v0.4.0.

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.

.. note::

    * No Pulsar device firmware compatibility changes.

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.

.. note::

    * No Pulsar device firmware compatibility changes.

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.

.. note::

    * No Pulsar device firmware compatibility changes.

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.

.. note::

    * Compatible with Pulsar QCM device firmware v0.4.0 and Pulsar QRM device firmware v0.3.0.

0.1.2 (22-10-2020)
------------------

* Fixed Windows assembler for dummy Pulsar
* Fixed MacOS assembler for dummy Pulsar

.. note::

    * No Pulsar device firmware compatibility changes.

0.1.1 (05-10-2020)
------------------
* First release on PyPI

.. note::

    * Compatible with Pulsar QCM device firmware v0.3.0 and Pulsar QRM device firmware v0.2.0.
