This is a framework for composing complex experiments from modular building blocks in the ARTIQ laboratory control system, with particular support for flexible n-dimensional scans.
ndscan
was originally developed by David Nadlinger for use in the Oxford
Ion Trap Quantum Computing Group,
but is expected to be useful in any laboratory environment where complex
experiments are actively built and debugged.
ndscan
is currently largely undocumented pre-alpha software. While it is
in active use within the Ion Trap Quantum Computing group, tread carefully for
now.
To get started with ndscan
, first prepare a Python 3.5+ environment with
ARTIQ as usual (Conda or some form of virtualenv is recommended). While the
intention is for ndscan to be a pure add-on to ARTIQ, some required patches
have not made their way into the official (m-labs) upstream repository yet.
For now, use the
ion-trap/master
branch; if you are an external user, you can find the necessary commits at
dnadlinger/artiq@ndscan.
Once your environment is set up, install this package. For example, to use ndscan directly from the Git checkout:
(artiq) $ python setup.py develop
If you haven't already, also install the oitg package.
You are then ready to run the sample experiments. Start the ARITQ master process as usual
(artiq) $ artiq_master
and launch the dashboard with the ndscan plugin loaded
(artiq) $ artiq_dashboard -p ndscan.dashboard_plugin
Now, navigate to the examples/sim_rabi_flop.py
file in the experiment
explorer, and you should be able to play around with the scan interface.
(Applets are created automatically; you might want to set the CCB mode to
"Create and enable/disable applets" in the applets dock.)
-
Format all code using YAPF, and make sure
flake8 ndscan
passes. Configuration files for both are included, and are picked up automatically. It is just not worth spending time to obsess or argue about formatting details. -
Unit tests are run using
python -m unittest -v discover test
. -
conda
contains a very rudimentary Conda package definition for integration with the continuous integration pipeline internal to the Ion Trap Quantum Computing group. The package is not currently published on a public Conda channel, and likely won't ever be.