Hi,

I am a grad student at the University of Illinois, working in Brian DeMarco's trapped ion group. We are using an ARTIQ crate with Kasli 2.0 and have been setting our environment up a second time after reinstalling windows. We previously confirmed that all of the hardware on the crate works and have working ethernet and JTAG connections to the crate, but have run into issues connecting to the core device:

As a simple test I am trying to enable a TTL as described in the manual, which I have done before:

from artiq.experiment import *

class Tutorial(EnvExperiment):
    def build(self):
        self.setattr_device("core")
        self.setattr_device("ttl20")

    @kernel
    def run(self):
        self.core.reset()
        self.ttl20.output()
        for i in range(1000000):
            delay(2*us)
            self.ttl0.pulse(2 * us)

Running this returns the error:

(artiq-illinois) C:\Users\IonTrapper\PycharmProjects\ARTIQIonTrap\TestExamples>artiq_run TTLtest.py
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\master\worker_db.py", line 88, in get
    dev = _create_device(desc, self)
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\master\worker_db.py", line 27, in _create_device
    return device_class(device_mgr, **desc.get("arguments", {}))
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\coredevice\core.py", line 84, in __init__
    raise ValueError("Unsupported target")
ValueError: Unsupported target

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\Scripts\artiq_run-script.py", line 9, in <module>
    sys.exit(main())
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\frontend\artiq_run.py", line 224, in main
    return run(with_file=True)
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\frontend\artiq_run.py", line 210, in run
    raise exn
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\frontend\artiq_run.py", line 201, in run
    exp_inst = _build_experiment(device_mgr, dataset_mgr, args)
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\frontend\artiq_run.py", line 187, in _build_experiment
    return get_experiment(module, args.class_name)(managers)
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\language\environment.py", line 243, in __init__
    self.build(*args, **kwargs)
  File "TTLtest.py", line 8, in build
    self.setattr_device("core")
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\language\environment.py", line 327, in setattr_device
    setattr(self, key, self.get_device(key))
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\language\environment.py", line 320, in get_device
    return self.__device_mgr.get(key)
  File "C:\ProgramData\Anaconda3\envs\artiq-illinois\lib\site-packages\artiq\master\worker_db.py", line 90, in get
    raise DeviceError("Failed to create device '{}'"
artiq.master.worker_db.DeviceError: Failed to create device 'core'

device_db.py is the latest version from here:
The crate can be pinged along the direct ethernet connection and artiq_coremgmt log returns:

(artiq-illinois) C:\Users\IonTrapper\PycharmProjects\ARTIQIonTrap\TestExamples>artiq_coremgmt --device-db device_db.py log   
[     0.000016s]  INFO(runtime): ARTIQ runtime starting...
[     0.003940s]  INFO(runtime): software ident 7.7961.a0070d43.beta;illinoismaster
[     0.011259s]  INFO(runtime): gateware ident 7.7961.a0070d43.beta;illinoismaster
[     0.018621s]  INFO(runtime): log level set to INFO by default
[     0.024330s]  INFO(runtime): UART log level set to INFO by default
[     0.141147s]  WARN(runtime::rtio_clocking): Using legacy rtio_clock setting ('i'). Falling back to default. This will be deprecated.
[     0.151789s]  INFO(runtime::rtio_clocking): using internal 125MHz RTIO clock
[     0.428280s]  INFO(board_artiq::si5324): waiting for Si5324 lock...
[     7.879420s]  INFO(board_artiq::si5324):   ...locked
[     7.884555s]  INFO(runtime::rtio_clocking::crg): Using internal RTIO clock
[     7.915723s]  INFO(runtime): network addresses: MAC=04-91-62-f1-ec-ea IPv4=192.168.1.75 IPv6-LL=fe80::691:62ff:fef1:ecea IPv6=no configured address
[     7.929358s]  WARN(board_artiq::drtio_routing): could not read routing table from configuration, using default
[     7.938074s]  INFO(board_artiq::drtio_routing): routing table: RoutingTable { 0: 0; 1: 1 0; 2: 2 0; 3: 3 0; }
[     7.966071s]  INFO(runtime::mgmt): management interface active
[     7.978215s]  INFO(runtime::session): accepting network sessions
[     7.991327s]  INFO(runtime::session): running startup kernel
[     7.995815s]  INFO(runtime::session): no startup kernel found
[     8.001608s]  INFO(runtime::session): no connection, starting idle kernel
[     8.008462s]  INFO(runtime::session): no idle kernel found
[     8.013859s]  INFO(runtime::rtio_mgt::drtio): [DEST#0] destination is up
[  2593.024462s]  INFO(runtime::mgmt): new connection from 192.168.1.5:52106
[  3265.278483s]  INFO(runtime::analyzer): connection from 192.168.1.5:52178
[  5213.813328s]  INFO(runtime::mgmt): new connection from 192.168.1.5:52961
[  5617.811035s]  INFO(runtime::mgmt): new connection from 192.168.1.5:52975
[  6199.223592s]  INFO(runtime::mgmt): new connection from 192.168.1.5:53015
[  7268.771209s]  INFO(runtime::mgmt): new connection from 192.168.1.5:53035

I believe I've correctly followed the manuals steps regarding Zadig; I can monitor the JTAG with PuTTY, and the crate and software versions match. Please let me know if any other information would be helpful and thanks in advance.

Is there a particular reason you're using the beta version?
The device database you selected is for the stable version 6 and specifies a or1k target, which is no longer supported in the beta version 7.

  • wpc3 replied to this.

    sb10q I think I've previously been advised to use the stable version 6, however I only know how to do the artiq install via the manual's instructions, namely I was able to work with a version 6 beta back in June 2021 by installing the latest version and using

    conda install artiq-board-kasli-illinois
    artiq_flash -V illinois

    to get the board files to match. Now that the illinois variant has been replaced by illinoismaster, this command installs a version 7 beta, which I understand from your response is incompatible with the device_db file being automatically generated at https://nixbld.m-labs.hk/.

    How do I install an old version? I was only ever able to use the instructions here, similar to Melanie's advice, and it seems like regenerating the device database for the version we can access (or at least, know how to access) is the clearest path forward. Thank you both for your help!

    I suppose you are using the beta conda channel https://conda.m-labs.hk/artiq-beta/. Change it to the stable channel https://conda.m-labs.hk/artiq/ and reinstall.

    • wpc3 replied to this.

      sb10q Thank you! (For completeness,) I removed artiq-beta from the channels list, made a new environment with artiq in place of artiq-beta, reinstalled OpenOCD, and flashed the board with our variant on the stable version; the software and board versions again match and the script I wanted to run now works.