Skip to content
This repository has been archived by the owner on Apr 24, 2024. It is now read-only.

Getting Started

Mingyu Fan edited this page Oct 13, 2021 · 10 revisions

Links

ARTIQ introduction

ARTIQ is software that allows real-time communication with ARTIQ-compatible hardware (e.g., sinara hardware, check the Wiki pages within). Typically, ARTIQ communicates with ethernet connections between the core device (Kasli), and enables controlling multiple Kasli's at the same time (DRTIO). Kaslis are typically connected together using fibers. Each Kasli can connect to a number of devices (e.g., TTL in/out boards (BNC/SMA DIO), rf synthesizers (Urukul), etc.), and controls these devices.

An distinction of ARTIQ with some other control platform (e.g., pulser) is that you can write code to run in Kasli. This allows writing complex pulse sequences without worrying about using up the memory in the device, and allows pulse sequences to be changed in real time.

The ARTIQ documentation is likely the most helpful source (though not complete and may be slightly outdated). If you are working with a new system, the first step is to establish communication between the computer and the Kasli, and run some simple test programs (e.g., TTL outputs).

Set up hardware and software

Follow hardware setup and software setup pages.

Run ARTIQ control software

ARTIQ control relies on artiq_master. It handles communications with the hardware and scheduling experiments. It allows provides data saving and parameter storing capabilities but we don't use these capabilities. We use vault labrad server for data saving, and parameter_bank for storing parameters.

We run artiq_master automatically when we run the artiq labrad server. If the artiq server is stopped, artiq_master is terminated too. The artiq server provides functions to control experiments and get/set DDS or TTL parameters.

After running artiq_master, the ARTIQ dashboard can be opened by running artiq_dashboard in a command line. It connects to artiq_master and provides GUI to control ARTIQ. It can create and destroy GUIs based on PyQt5 on-demand in the dashboard while showing logs for all GUIs.

ARTIQ applets

GUI clients should be written as ARTIQ applets. Applets can be created dynamically in the dashboard, so they can be turned on only when needed, and they can turned off and on without restarting the dashboard. The log display in the dashboard provides a good way to debug those applets.

Use $python -m __applet_path__ in the applet window of the dashboard to run an applet. The __applet_path__ is the same as how you would import the module (e.g., $python -m jax.applets.dds).

See ARTIQ applets for more details about writing an applet.

ARTIQ experiment

ARTIQ experiments can be used to control both sinara hardware or any other hardware. See ARTIQ experiments for more details.

Clone this wiki locally