See also

A Jupyter notebook version of this tutorial can be downloaded here.

image0

QRC advanced power settings#

In this tutorial, we show how to set a custom frequency plan for the QRC, enabling higher output power and input sensitivity.

Setup#

First, we are going to import the required packages and connect to the instrument.

[1]:
from __future__ import annotations

import matplotlib.pyplot as plt
import numpy as np
from qcodes.instrument import find_or_create_instrument

from qblox_instruments import Cluster, ClusterType

Scan For Clusters#

We scan for the available devices connected via ethernet using the Plug & Play functionality of the Qblox Instruments package (see Plug & Play for more info).

!qblox-pnp list

[2]:
cluster_ip = "10.10.200.42"
cluster_name = "cluster0"

Connect to Cluster#

We now make a connection with the Cluster.

[3]:
cluster: Cluster = find_or_create_instrument(
    Cluster,
    recreate=True,
    name=cluster_name,
    identifier=cluster_ip,
    dummy_cfg=(
        {
            2: ClusterType.CLUSTER_QCM,
            4: ClusterType.CLUSTER_QRM,
            6: ClusterType.CLUSTER_QCM_RF,
            8: ClusterType.CLUSTER_QRM_RF,
            10: ClusterType.CLUSTER_QTM,
            12: ClusterType.CLUSTER_QRC,
            16: ClusterType.CLUSTER_QSM,
        }
        if cluster_ip is None
        else None
    ),
)

cluster.reset()
print(cluster.get_system_status())
Status: OKAY, Flags: NONE, Slot flags: NONE

Get connected modules#

[4]:
# QRC modules
modules = cluster.get_connected_modules(lambda mod: mod.is_qrc_type)
# This uses the module of the correct type with the lowest slot index
module = list(modules.values())[0]

Frequency sweeps#

One of the most common experiments is to test the frequency response of the system, e.g. to find the resonance frequencies of a qubit or a resonator. For the purpose of this tutorial, we will sweep the full frequency range of the NCO. To improve SNR we can use a long integration time and multiple averages.

[5]:
MAXIMUM_SCOPE_ACQUISITION_LENGTH = 16384

module.sequencer0.integration_length_acq(MAXIMUM_SCOPE_ACQUISITION_LENGTH)
[6]:
module.disconnect_outputs()
module.disconnect_inputs()

# module.sequencer0.connect_sequencer("io0")
module.sequencer0.connect_out0("IQ")
module.sequencer0.connect_acq("in0")

module.sequencer0.nco_prop_delay_comp_en(True)

# The QRC has more input gain than other modules. To avoid overdriving the ADC, we set extra attenuation.
module.out0_att(20)
module.in0_att(20)

module.out0_in0_lo_freq(1e9)
module.sequencer0.nco_freq(50e6)

Following the RF control tutorial, we define a simple function that measures the amplitude in loopback vs the center frequency of the module. To avoid clipping the ADC when we increase sensitivity, we choose a very small signal amplitude.

[7]:
def measure_loopback() -> tuple[np.ndarray, np.ndarray]:
    """Measure frequency response in loopback across the whole frequency range."""
    sequencers = [(module.slot_idx, 0)]
    acquisitions = {"acq": {"num_bins": 1, "index": 0}}

    seq_prog = """
        move    1000,R0
        reset_ph
        set_awg_offs 10, 10          # set small signal
        upd_param 200
    loop:
        acquire  0,0,100
        sub      R0, 1, R0
        jnz      @loop
        stop
        """

    sequence = {
        "waveforms": {},
        "weights": {},
        "acquisitions": acquisitions,
        "program": seq_prog,
    }
    sequences = {
        (module.slot_idx, 0): sequence,
    }
    cluster.update_sequences(sequences, erase_existing=True)

    lo_data = []
    # 1 GHz to 10 GHz, in steps of 100 MHz
    freqs_mhz = np.arange(1000, 10100, 100)
    for freq in freqs_mhz:
        module.out0_in0_lo_freq(freq * 1e6)

        cluster.arm_sequencers(sequencers)
        cluster.start_sequencers(sequencers)

        cluster.wait_for_sequencers(sequencers, timeout=1)

        data = cluster.get_all_acquisitions(sequencers=sequencers)[0]

        data = data["acq"]["acquisition"]["bins"]["integration"]
        module.sequencer0.delete_acquisition_data("acq")

        lo_data.append(data["path0"][0] + 1j * data["path1"][0])
    lo_data_db = 20 * np.log10(np.abs(lo_data))
    return freqs_mhz, lo_data_db

To get a baseline, we perform the measurement with the standard frequency plan. We explicitly set the frequency plan to default first.

[8]:
module.user_freq_plan_switch(False)
freqs_mhz, lo_data = measure_loopback()
plt.plot(freqs_mhz, np.abs(lo_data))
plt.xlabel("Frequency [MHz]")
plt.ylabel("Amplitude [dB]")
[8]:
Text(0, 0.5, 'Amplitude [dB]')
../../../../_images/products_qblox_instruments_tutorials_QRC_900_qrc_advanced_16_1.png

To see what can be changed, we retrieve the currently active (i.e. the default) frequency plan from the module.

[9]:
module.get_current_frequency_plan()
[9]:
{'1000': {'Input DSA1': 0.0, 'Input DSA2': 12.0},
 '10000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 0.0},
 '10100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 3.5,
  'Output DSA': 0.0},
 '1100': {'Input DSA1': 0.0, 'Input DSA2': 11.0},
 '1200': {'Input DSA1': 0.0, 'Input DSA2': 10.5},
 '1300': {'Input DSA1': 0.0, 'Input DSA2': 10.0},
 '1400': {'Input DSA1': 0.0, 'Input DSA2': 10.0},
 '1500': {'Input DSA1': 0.0, 'Input DSA2': 10.0},
 '1600': {'Input DSA1': 0.0, 'Input DSA2': 9.5},
 '1700': {'Input DSA1': 0.0, 'Input DSA2': 9.5},
 '1800': {'Input DSA1': 0.0, 'Input DSA2': 9.0},
 '1900': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.0,
  'Output DSA': 9.0},
 '2000': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 9.0},
 '2100': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 9.0},
 '2200': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 9.5},
 '2300': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 9.5},
 '2400': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 9.5},
 '2500': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 7.0},
 '2600': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 7.5},
 '2700': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 6.5},
 '2800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 8.0},
 '2900': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 14.5,
  'Output DSA': 7.5},
 '3000': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 14.5,
  'Output DSA': 7.5},
 '3100': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 14.5,
  'Output DSA': 7.5},
 '3200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 3.5,
  'Output DSA': 10.0},
 '3300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '3400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 10.0},
 '3500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 11.0},
 '3600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 10.0},
 '3700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 3.0,
  'Output DSA': 10.0},
 '3800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '3900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '4000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '4100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 1.0,
  'Output DSA': 8.0},
 '4200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 8.0},
 '4300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.0},
 '4400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 7.5},
 '4500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 8.5},
 '4600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 9.5},
 '4700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.5},
 '4800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 9.5},
 '4900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 9.5},
 '500': {'Input DSA1': 0.0, 'Input DSA2': 13.0},
 '5000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.5},
 '5100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.5},
 '5200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 8.0},
 '5300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 8.0},
 '5400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 8.0},
 '5500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 4.0},
 '5600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 7.5},
 '5700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 7.5},
 '5800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 7.5},
 '5900': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 3.0},
 '600': {'Input DSA1': 0.0, 'Input DSA2': 13.0},
 '6000': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 2.0},
 '6100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.5,
  'Output DSA': 6.5},
 '6200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.5,
  'Output DSA': 6.5},
 '6300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.0,
  'Output DSA': 6.5},
 '6400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 7.0},
 '6500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 7.0},
 '6600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 6.5},
 '6700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.0,
  'Output DSA': 4.0},
 '6800': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 8.0},
 '6900': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 8.0},
 '700': {'Input DSA1': 0.0, 'Input DSA2': 13.0},
 '7000': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 8.0},
 '7100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 9.0},
 '7200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 6.0},
 '7300': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 4.0},
 '7400': {'DAC Current (uA)': 15500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 0.0},
 '7500': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 0.0},
 '7600': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 2.0},
 '7700': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 3.0},
 '7800': {'DAC Current (uA)': 15500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 0.0},
 '7900': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 0.0},
 '800': {'Input DSA1': 0.0, 'Input DSA2': 12.5},
 '8000': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 2.0},
 '8100': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 1.5},
 '8200': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 0.0},
 '8300': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 1.0},
 '8400': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 1.5},
 '8500': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 2.0},
 '8600': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 2.0},
 '8700': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 2.0},
 '8800': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 2.0},
 '8900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 3.0},
 '900': {'Input DSA1': 0.0, 'Input DSA2': 12.0},
 '9000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 3.0},
 '9100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 0.0},
 '9200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 0.0},
 '9300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 0.0},
 '9400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.5,
  'Output DSA': 8.0},
 '9500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 8.0},
 '9600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 8.0},
 '9700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 0.0},
 '9800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 0.0},
 '9900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 0.0}}

The frequency plan is a nested dictionary, with the center frequency in MHz as key. For each center frequency, there are up to four settings:

  • “DAC Current (uA)”: Changes output amplitude, maximum is 40500

  • Output DSA: Offset on the output attenuator. Decreasing this increases output amplitude.

  • Input DSA 1 and 2: Input attenuators to flatten input sensitivity. Decreasing these values increases sensitivity. When increasing these settings, it is recommended to max out DSA 2 first, and only then increase DSA 1.

Now we can update the frequency plan, increasing input sensitivity in the 1-2 GHz band:

[10]:
patch = {
    "1100": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1200": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1300": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1400": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1500": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1600": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1700": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1800": {"Input DSA1": 0.0, "Input DSA2": 0.0},
    "1900": {"DAC Current (uA)": 20500, "Input DSA1": 0.0, "Input DSA2": 0.0, "Output DSA": 9.0},
}

# We need to first switch to the custom frequency plan, and the update
module.user_freq_plan_switch(True)

# with `save=True`, the frequency plan would be persistent across reboot and reset.
module.set_user_freq_plan_patch(save=False, plan_json=patch)

Now we confirm that the frequency plan was updated, and that we are using the custom plan:

[11]:
print(module.user_freq_plan_switch())
module.get_current_frequency_plan()
True
[11]:
{'1000': {'Input DSA1': 0.0, 'Input DSA2': 12.0},
 '10000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 0.0},
 '10100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 3.5,
  'Output DSA': 0.0},
 '1100': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1200': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1300': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1400': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1500': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1600': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1700': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1800': {'Input DSA1': 0.0, 'Input DSA2': 0.0},
 '1900': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 9.0},
 '2000': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 9.0},
 '2100': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 9.0},
 '2200': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 9.5},
 '2300': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 9.5},
 '2400': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 9.5},
 '2500': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 7.0},
 '2600': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 7.5},
 '2700': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 6.5},
 '2800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 8.0},
 '2900': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 14.5,
  'Output DSA': 7.5},
 '3000': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 14.5,
  'Output DSA': 7.5},
 '3100': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 14.5,
  'Output DSA': 7.5},
 '3200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 3.5,
  'Output DSA': 10.0},
 '3300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '3400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 10.0},
 '3500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 11.0},
 '3600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 10.0},
 '3700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 3.0,
  'Output DSA': 10.0},
 '3800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '3900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '4000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 2.5,
  'Output DSA': 10.0},
 '4100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 1.0,
  'Output DSA': 8.0},
 '4200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 0.0,
  'Output DSA': 8.0},
 '4300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.0},
 '4400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 7.5},
 '4500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 8.5},
 '4600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 9.5},
 '4700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.5},
 '4800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 9.5},
 '4900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 9.0,
  'Output DSA': 9.5},
 '500': {'Input DSA1': 0.0, 'Input DSA2': 13.0},
 '5000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.5},
 '5100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 9.5},
 '5200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 8.0},
 '5300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 8.0},
 '5400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 8.0},
 '5500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 4.0},
 '5600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 7.5},
 '5700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 7.5},
 '5800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.5,
  'Output DSA': 7.5},
 '5900': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 8.0,
  'Output DSA': 3.0},
 '600': {'Input DSA1': 0.0, 'Input DSA2': 13.0},
 '6000': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 2.0},
 '6100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.5,
  'Output DSA': 6.5},
 '6200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.5,
  'Output DSA': 6.5},
 '6300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.0,
  'Output DSA': 6.5},
 '6400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 7.0},
 '6500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 7.0},
 '6600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 6.5},
 '6700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.0,
  'Output DSA': 4.0},
 '6800': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 8.0},
 '6900': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 8.0},
 '700': {'Input DSA1': 0.0, 'Input DSA2': 13.0},
 '7000': {'DAC Current (uA)': 35500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 8.0},
 '7100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 9.0},
 '7200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 6.0},
 '7300': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 4.0},
 '7400': {'DAC Current (uA)': 15500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 0.0},
 '7500': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 0.0},
 '7600': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 2.0},
 '7700': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 3.0},
 '7800': {'DAC Current (uA)': 15500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 0.0},
 '7900': {'DAC Current (uA)': 20500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.5,
  'Output DSA': 0.0},
 '800': {'Input DSA1': 0.0, 'Input DSA2': 12.5},
 '8000': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 2.0},
 '8100': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 1.5},
 '8200': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 0.0},
 '8300': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 1.0},
 '8400': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 1.5},
 '8500': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 2.0},
 '8600': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 2.0},
 '8700': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 7.0,
  'Output DSA': 2.0},
 '8800': {'DAC Current (uA)': 30500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 2.0},
 '8900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 3.0},
 '900': {'Input DSA1': 0.0, 'Input DSA2': 12.0},
 '9000': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 3.0},
 '9100': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 0.0},
 '9200': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 0.0},
 '9300': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.0,
  'Output DSA': 0.0},
 '9400': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.5,
  'Output DSA': 8.0},
 '9500': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 13.0,
  'Output DSA': 8.0},
 '9600': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 12.0,
  'Output DSA': 8.0},
 '9700': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 6.5,
  'Output DSA': 0.0},
 '9800': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 0.0},
 '9900': {'DAC Current (uA)': 40500,
  'Input DSA1': 0.0,
  'Input DSA2': 5.5,
  'Output DSA': 0.0}}

Finally, we repeat the measurement and compare to the baseline:

[12]:
freqs_mhz, lo_data_patched = measure_loopback()
plt.plot(freqs_mhz, np.abs(lo_data))
plt.plot(freqs_mhz, np.abs(lo_data_patched))
plt.xlabel("Frequency [MHz]")
plt.ylabel("Amplitude [dB]")
[12]:
Text(0, 0.5, 'Amplitude [dB]')
../../../../_images/products_qblox_instruments_tutorials_QRC_900_qrc_advanced_24_1.png

Stop#

Finally, let’s stop the sequencers if they haven’t already and close the instrument connection. One can also display a detailed snapshot containing the instrument parameters before closing the connection by uncommenting the corresponding lines.

[13]:
# Stop all sequencers.
module.stop_sequencer()

# Print status of sequencers 0 and 1 (should now say it is stopped).
print(module.get_sequencer_status(0))
print(module.get_sequencer_status(1))
print()
Status: OKAY, State: STOPPED, Exit Code: 0, Info Flags: FORCED_STOP, ACQ_SCOPE_DONE_PATH_0, ACQ_SCOPE_DONE_PATH_1, ACQ_BINNING_DONE, ACQ_SCOPE_DONE_PATH_2, ACQ_SCOPE_DONE_PATH_3, Warning Flags: NONE, Error Flags: ACQ_BINNING_FIFO_ERROR, Log: []
Status: OKAY, State: STOPPED, Exit Code: 0, Info Flags: NONE, Warning Flags: NONE, Error Flags: NONE, Log: []