Could anyone please post simplest possible examples of how to work with different Sinara modules. For non experts it would be much easier to adopt to new syntax and at least start practicing with Artiq. Personally I need to see examples of how to operate Zotino and Sampler. Examples like led.py and ttl outputs from the manual saved a lot of my time and IMHO would make Artiq much more user friendly and accessible for wider range of researchers. For people with some experience in programming looking at example with ttl would make sense but reading the list of parameters and functions without explicit examples is way harder, at least for me.

Thanks in advance.

Example for Sampler


    from artiq.experiment import *
    class Practicing(EnvExperiment):
        def build(self):
            self.setattr_device("core")
            self.setattr_device("sampler0")
            
        @kernel
        def run(self):
            self.core.reset()
            self.sampler0.init()
            self.sampler0.set_gain_mu(0, 0)
            self.core.break_realtime()
            
            smp = [0.0]*8
            self.sampler0.sample(smp)
            print("Voltages are", smp)

Example for Zotino

from artiq.experiment import *

class Zotino(EnvExperiment):
    def build(self):
        self.setattr_device("core")
        self.setattr_device("zotino0")
        
    @kernel
    def run(self):
        self.core.reset()
        self.core.break_realtime()
        self.zotino0.init()
        delay(200*us)
        self.zotino0.write_dac(0, 1)
        self.zotino0.load()

Are those examples are proper ways to operate Zotino and Sampler?

They seem OK from a cursory look. Do they work fine on your hardware?