Skip to main content

Make Using ARTIQ a Breeze

2025-04-29T12:36:00.456176 image/svg+xml Matplotlib v3.10.1, https://matplotlib.org/
from atomiq import AtomiqExperiment
import artiq.experiment as aq

class MyRamp(AtomiqExperiment):

    components = ["my_ttl", "coils_x", "coils_y"]

    arguments = {
            "ramp_time": {"default": 0.01, "unit": "s"},
    }

    @kernel
    def step(self, point):
        with parallel:
            self.coils_x.set_field(0.0)
            self.coils_y.set_field(0.0)

        self.my_ttl.ttl.pulse(1*aq.ms)
        with self.zotino0.parallel_arb:
            self.coils_x.ramp_field(point.ramp_time,
                field_start = 2., field_end = -4. # Gauss
            )
            self.coils_y.ramp_field(point.ramp_time,
                field_end = 3. # Gauss
            )
        self.my_ttl.ttl.pulse(1*aq.ms)

With the atomiq abstraction layer to the powerful ARTIQ real-time system you can work with generic software objects that represent the actual hardware in the lab.

Atomiq comes completely nix-free and provides many tools and routines to remove the entry barrier of ARTIQ without loosing functionality.

Get Started ⮞