Skip to content

Dummy platform support for QubitTuneup#23

Open
al100-aleo wants to merge 9 commits into
toolsforexperiments:mainfrom
al100-aleo:dummy-platform-protocol-support
Open

Dummy platform support for QubitTuneup#23
al100-aleo wants to merge 9 commits into
toolsforexperiments:mainfrom
al100-aleo:dummy-platform-protocol-support

Conversation

@al100-aleo

@al100-aleo al100-aleo commented Jul 14, 2026

Copy link
Copy Markdown

What these changes do:

  • Allow a user to run QubitTuneup.execute() using the Dummy platform and loading in (additional) dummy parameters into the instrumentserver.

Why this was done:

  • Running QubitTuneup.execute() previously failed on the verification stage because though the CorrectionParameters classes contained qick platform getters and setters, in order to run on the Dummy platform, the corresponding dummy platform getters and setters that were missing needed to be added.

What specifically was done:

  • Removed "+ self.readout_lo()" after "frequencies" from the sweep function in res_spec.py (though readout_lo didn't change the function because it was initialized to zero and then added to another quantity). It was unregistered and thus a work-around would be to either remove it (which is implemented here) or register it (but that might run into issues when the qick platform is selected because qick may not provide a readout_lo value).

  • Added corresponding '_dummy_getter' and '_dummy_setter' within the Corrections parameters, since the qick setters and getters were all written already and the paths are platform-independent; i.e. the dummy setters and getters are added by duplicating these existing paths in res_spec.py, res_spec_vs_gain.py, sat_spec.py, power_rabi.py, pi_spec.py, res_spec_after_pi.py, t1.py, t2r.py, and t2e.py.

  • Similar to above, added '_dummy_getter' and '_dummy_setter' to SaturationSpecDriveGain in parameters.py.

  • Added 56 corrections.* parameters and 6 measurement parameters to the dummy parameter json file located at src/cqedtoolbox/protocols/configs/parameter-manager_dummy-config.json. To implement this, create a file in your working directory where you uv run the instrument server configuration and title the file parameter_manager-parameter_manager.json, and populate the file with the contents from this parameter-manager_dummy-config.json file. These 56+ or so parameters are the ones getting passed through the dummy getters/setters recently added.

    • If you look at what this dummy config json file includes, you will see these newly specified parameters needed include (note that these aren't the exact path names, which should be taken from the dummy getters/setters that these parameters are passed to):
      • readout.f (corresponds to readout_frequency)
      • readout.resonator_spec_vs_gain_steps
      • qubit.f (corresponds to qubit_frequency)
      • q01.pi_spec_start (corresponds to start_pi_spec_frequency)
      • q01.pi_spec_end (corresponds to end_pi_spec_frequency)
      • resonator_spec_snr (this is a threshold value)
      • res_spec_max_window_shifts
      • res_spec_sampling_factor (this is an increase factor)
      • res_spec_max_sampling_increases
      • res_spec_averaging_factor (this is an increase factor)
      • res_spec_max_averaging_increases
      • res_spec_max_fit_param_error
      • and so forth for sat_spec values, power_rabi values, etc
      • Notable values that stray from this pattern include:
        • power_rabi_delay_factor
        • power_rabi_max_delay_increases
        • power_rabi_gain_shrink_factor
        • res_spec_after_pi_detuning_threshold
        • sat_spec_single_peak_snr
        • sat_spec_single_peak_max_reductions
        • t2e_max_echos
  • Changed the Res Spec Max Window shifting parameter to zero in the dummy parameter json file because there was no need to shift the window for the dummy platform (which was already looking at the correct window).

  • Changed the _SIM_PHI value in res_spec.py from 0 to 0.4, which helped with plotting in ResonatorSpectroscopyVsGain, which allowed the complete QubitTuneup html report to get plotted and compile.

  • Also added a helper function in res_spec.py to distinguish between platforms because qick used MHz and dummy used Hz units.

  • As per Oliver's suggestion, set the SNR threshold parameters to 1.5 in the dummy param json file. This also ended up helping to resolve plotting issues that sat spec was encountering because it keep trying corrections despite having a good fit and tightening the snr threshold from 3 down to 1.5 made the correction process work more smoothly.

  • Oliver added OPX getters and setters to res_spec.py, res_spec_vs_gain.py, sat_spec.py, power_rabi.py, pi_spec.py, res_spec_after_pi.py, t1.py, t2r.py, and t2e.py and pushed the changes to the main branch, so to re-update this pr with these new changes on the main branch, I did an additional commit to this pr to merge the changes.

  • After merging the changes, I noticed that deleting IncreaseEchosCorrection from t2e.py during the merge caused compiling the QubitTuneup html report to fail because of an attribute error where the Echos parameter didn't exist and thus couldn't be passed. So I removed additional instances of EchosCorrection in t2e.py and now the QubitTuneup report compiles again.

  • Removed qubit.start_f and qubit.end_f from dummy param json as per Oliver's request, because he noticed they weren't being loaded anywhere.

Known limitations:

  • Now when loading the dummy platform the QubitTuneup html report compiles, but now T2 Ramsey fails (at the very end); there may also be some issues with Power Rabi being plotted. This could possibly be addressed by adjusting the correction threshold values (e.g. dummy parameters specified in the locally loaded dummy parameter json file), although more complex fixes may be needed.

Comment thread src/cqedtoolbox/protocols/operations/single_qubit/res_spec.py Outdated
… py file to distinguish between qick MHz units and dummy Hz units to fix the resspecvsgain plot in html report
…d sat spec plotting and also changed simphi from 0 to .4 to help res spec vs gain plotting
…tocol-support branch to make pr request up to date with changes on main
…hich caused an attribute error when compiling the QubitTuneup html report because the parameter got deleted, so I am adding the increase echos back so the report can compile
…arams because it shouldnt be included in t2e check
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants