This week it stopped working again.
Today we saw an error message ( up until now the kernel would just hang and be unresponsive):
Core Device Traceback:
Traceback (most recent call first):
File "libksupport/src/rtio_csr.rs", line 84, column 10, in (Rust function)
<unknown>
^
File "phaser_tests.py", line 17, in artiq_run_phaser_tests.Phaser_test.run(..., ...) (RA=+0x14c)
self.phaser0.init()
File "<artiq>\coredevice\phaser.py", line 477, in ... artiq.coredevice.phaser.Phaser.read8<artiq.coredevice.phaser.Phaser>(...) (RA=+0x1c4)
rtio_output((self.channel_base << 8) | (addr & 0x7f), 0)
File "<artiq>\coredevice\phaser.py", line 271, in ... artiq.coredevice.phaser.Phaser.init<artiq.coredevice.phaser.Phaser>(...) (inlined)
board_id = self.read8(PHASER_ADDR_BOARD_ID)
artiq.coredevice.exceptions.DMAError(0): RTIO destination unreachable, output, at 3755364384 mu, channel 0x0028:led0
In our device_db led0 should however not be at this channel :
device_db["phaser0"] = {
"type": "local",
"module": "artiq.coredevice.phaser",
"class": "Phaser",
"arguments": {
"channel_base": 0x000028,
"miso_delay": 1, "gw_rev": 1
}}
device_db["led0"] = {
"type": "local",
"module": "artiq.coredevice.ttl",
"class": "TTLOut",
"arguments": {"channel": 0x00002d
}}
We checked wether we are using the right device_db.py multiple times (with print statements and specifying it when running the experiment with artiq_run). When printing the channel_base of the phaser or the channel of the led0 inside the experiment, we also see values corresponding to our current device database (i.e. 40 and 45). Could artiq be using a cached version of the device_db in the background? The channels for the led0 (and other modules) poping up in error messages like the one above do correspond to an old device_db we used previously