Changelog

Version 2.1.0

  • Ability to choose frequency of external reference clock: see the optional argument ext_ref_clk to Pulsed and Lockin

pulsed module: presto.pulsed

  • Fix a bug that caused the experiment to terminate too early or to never terminate when running long sequences with lots of averages.

  • A single sequence (without accounting for repetitions and averages) can now run for ≈6.5 days, up from ≈8.6 seconds.

Pulsed class: presto.pulsed.Pulsed

  • Fix printing of estimated time left in a measurement when running from within some Python IDEs, e.g. Spyder.

  • Set tolerance for event times to 1% of get_clk_T, rather than fixed at 1 ps.

  • Method run:

    • Better handling of startup time for a sequence: fixes an inconsistency with requirements on the period argument.

    • Raise an error if the user runs a sequence without setting up the scale look-up table on an output port and group used by some template, or if the frequency/phase look-up table was non set up when some templates are used as envelopes.

  • The parameter output_port to setup_template can now be set to a list to more conveniently output the same pulse on multiple output ports.

  • Improve error messages when using not supported combinations of adc_mode, adc_fsample, dac_mode and dac_fsample

LongDrive class: presto.pulsed.LongDrive

lockin module: presto.lockin

Lockin class: presto.lockin.Lockin

  • Fix bug in tune_perfect

  • Improve error messages when using not supported combinations of adc_mode, adc_fsample, dac_mode and dac_fsample


Version 2.0.0

This is the first major-version change since the previous Vivace API. This new API is compatible with both Vivace and Presto microwave platforms, and follows the same overall programming interface. There are, however, many differences that break backwards compatibility. See below for a summary of such changes.

hardware module: presto.hardware

New module to control configurations common to all modes of operation. Accessible as the hardware attribute of any instance of Pulsed, Lockin or Test.

pulsed module: presto.pulsed

Pulsed class: presto.pulsed.Pulsed

  • The class constructor takes 4 new optional arguments: adc_mode, adc_fsample, dac_mode and dac_fsample. These configure the Converter modes and Converter rates for the input analog-to-digital (ADC) and output digital-to-analog (DAC) converters. With these options it is possible to enable digital up- and downconversion using the built-in digital IQ mixers.

  • The methods next_frequency, next_scale, select_frequency and select_scale take a new optional argument group. If not specified, both output groups on output_ports are affected.

  • The method run (previously perform_measurement) does not return the result of store events: use get_store_data after running the experiment. To get the result of match events, use get_template_matching_data (same as before).

  • Method setup_freq_lut:

    • the old carrier argument (1 or 2) is replaced by the new group argument (0 or 1)

    • new argument phases_q must be specified when using the built-in digital IQ mixers for digital upconversion

    • the optional argument repeat_count is removed

  • Method setup_long_drive:

    • the old carrier argument (1 or 2) is replaced by the new group argument (0 or 1)

    • the optional argument use_scale is removed: all output templates are subject to the output scaler for the appropriate port and group

  • Method setup_scale_lut:

    • new mandatory argument group (0 or 1)

    • the optional argument repeat_count is removed

  • Method setup_template:

    • new mandatory argument group (0 or 1)

    • new argument template_q must be specified when using the built-in digital IQ mixers for digital upconversion

    • the optional argument use_scale is removed: all output templates are subject to the output scaler for the appropriate port and group

    • the optional argument envelope is now a boolean. To specify which signal generator to use when envelope=True, use the group argument (0 or 1)

  • New methods:

  • Deprecated methods:

    • perform_measurement: use run instead

  • Some methods are moved to the new Hardware class, which is available as the hardware attribute to any instance of Pulsed:

LongDrive class: presto.pulsed.LongDrive

Other

utils module: presto.utils

  • New function rotate_opt

  • The function untwist_downconversion now follows a different convention. The new convention is consistent with the built-in digital IQ mixers. It might or might not be consistent with the convention used by an external analog IQ mixer.

version module: presto.version

  • New attributes:

  • Removed functions:

    • get_variant_firmware

    • get_version_all

    • get_version_api

    • get_version_clock

    • get_version_firmware

    • get_version_server