QICKoDeS
A QCoDeS driver for QICK. Usable but still under active development. Pull requests are welcome!
Supports Python 3.11+
Development goals
- This should be a thin wrapper that directly exposes all features of QICK.
- Pulses ("
instructions") and pulse sequences ("protocols") should be parameterized such that they can be fully reproduced based on the QCoDeS snapshot that gets saved with every dataset.
Status between tProc v1 and v2
Currently, tProc v1 is under maintenance mode where only bug fixes will be implemented. tProc v2 is what you should be using.
At some point, tProc v1 will be deprecated. If you find some bugs, please do report them in the issue tracker.
Installation
The authors recommend using uv inside a virtual environment.
uv venv my-environment
source my-environment/bin/activate
uv pip install qickodes
If you don't like using external packages,
python -m venv my-environment
source my-environment/bin/activate
pip install qickodes
Development
If you prefer using a more reproducible build, check locking and syncing with uv. This would install an editable installation of qickodes. Please only do this if you intend on modifying the source code and prefer to contribute upstream to this repository.
git clone https://github.com/aalto-qcd/qickodes.git
cd qickodes/
uv sync
This step would create a fresh virtual environment in
qickodes/.venv/ if a virtual environment doesn't exist already. We
recommend using a fresh venv for reproducibility.
Getting started
- Start the Pyro4 nameserver (see here, use port 8888) and the QICK server (see here) on a Xilinx board.
- Check the connection and the channel number assignment:
from qickodes import QickInstrument qick_instrument = QickInstrument("ip.address.of.board") print(qick_instrument.soccfg)
- Copy the scripts in the folder
example_scriptsinto your folder. - Edit
header.py:- Specify the IP address of the board by editing the line like
qick_instrument = QickInstrument("ip.address.of.board")
- Specify DAC/ADC channel numbers by editing the lines like
readout_dac = qick_instrument.dacs[channel_number]
- Specify the IP address of the board by editing the line like
- Run the example scripts:
meas_s21_vs_adc_trig_offset.py: Optimize the ADC trigger offsetmeas_resonator.py: Measure S21 vs frequencymeas_punchout.py: Measure S21 vs frequency and amplitudemeas_pulse_probe_2d.py: Pulse probe spectroscopy of a qubit dispersively coupled to a resonatormeas_pi_pulse_gain_sweep.py: Optimize the amplitude of a pi pulse (play 10 pi pulses and readout)meas_resonator_vs_qubit_state.py: Measure resonator spectra with the qubit in the ground and excited statesmeas_t1.py: Measure the T1 of the qubit
Citing
QICKoDeS is the work of Yoshiki Sunada, Ashish Panigrahi, Jonatan Albanese and Mikko Möttönen.
If you use QICKoDeS in your research, please cite it via its DOI:
Sunada, Y., Panigrahi, A., & Albanese, J., & Möttönen, M. QICKoDeS: A QCoDeS driver for QICK. Zenodo: https://doi.org/10.5281/zenodo.21066164
BibTeX entry:
@software{qickodes,
author = {Sunada, Yoshiki and Panigrahi, Ashish and Albanese, Jonatan and Möttönen, Mikko},
title = {{QICKoDeS}: A {QCoDeS} driver for {QICK}},
doi = {10.5281/zenodo.21066164},
title = {{qickodes}},
url = {https://doi.org/10.5281/zenodo.21066164},
year = {2026},
}
Metadata
Release files for qickodes 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qickodes-0.2.1.tar.gz | 32.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qickodes-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.5 kB
Release files / qickodes-0.2.1.tar.gz
| Download URL | qickodes-0.2.1.tar.gz |
|---|---|
| Size | 32.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
171caa86fb93a83057a5d8e513f97f827a9a85d75fc735c9bbc015651b1f19d3
|
|
BLAKE2b-256 checksum How to use checksums |
ede2cfa0c6870b4d8a5c4a451c4bdd029e3379a9cd2f5c55905ff807ea043822
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / qickodes-0.2.1-py3-none-any.whl
| Download URL | qickodes-0.2.1-py3-none-any.whl |
|---|---|
| Size | 51.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3e0d53c7f14d0f07282c0652ccf5d7c38d22b9a8ced6c07a3fa742a173475faa
|
|
BLAKE2b-256 checksum How to use checksums |
90eeccfe03c9867ebfee8bfcd3417757eac11cc4a3d0bf9784286dac1f983a50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency log