Hi,

I want to use the set_group function with fastino. I have read the documentation as well as some discussions in this forum. I know that log2_width has to be in device_db and this value must match the corresponding value in the RTIO PHY (gateware).

I am using Artiq v8.0+df15f53.beta with the gateware definition in the json file

{
"target": "kasli",
"hw_rev": "v1.1",
"base": "standalone",
"peripherals": [
{
"type": "fastino",
"ports": [6],
"hw_rev": "v1.1",
"log2_width": 5
}
]
}

I am using Linux qc-lc-10 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux and vivado 2022.2.

My device_db is

device_db["fastino0"] = {
"type": "local",
"module": "artiq.coredevice.fastino",
"class": "Fastino",
"arguments": {"channel": 0x00001f, "log2_width": 5}
}

When log2_width is 0, then it is working properly. I am able to control each channel of the fastino individually by using set_dac function.

When log2_width is 5, then it does not work properly. I can control channel 0 of the fastino with the set_dac function, but not another channel, and set_group does not produce any voltage change, nor does it produce any error.

A minimal code I tested for set_group is:

`from artiq.experiment import *
from artiq.coredevice import core, fastino
from artiq.language import delay, delay_mu, now_mu

class SetFastinoChannel(EnvExperiment):
def build(self):
self.setattr_device("core")
self.setattr_device("fastino0")

@kernel
def run(self):
    self.core.reset()
    f = self.fastino0
    
    f.init()
    delay((10 * ms))
        
    listvolt = [2 for _ in range(0, 32)]
    f.set_group(0, listvolt)  `

I would appreciate any help or advice on what I am doing wrong.

Die you build and flash new Kali gateware?
Which gateware is running on fastino?
Does the problem occur with release-7?

7 days later

Thanks for the reply. I did it again with ARTIQ v8.8573+b168f0b.beta and it worked fine.

  • rjo likes this.