We've worked for multiple years with artiq6 and then artiq7 now. Recently we tried to upgrade our systems to artiq8 following the steps here https://m-labs.hk/artiq/manual/developing.html
However, after navigating to the artiq git clone on branch release-8
and running
nix develop
the installed version is
ARTIQ v8.0+unknown.beta
Using nix shell gives
ARTIQ v8.8882+a6b76c0
however, this can't generate the firmware.
After flashing the hardware and checking the serial log it will also confirm that the version is ARTIQ v8.0+unknown.beta
and afterwards running any scripts gives a version mismatch.
ARTIQ: (30, 'worker(353,20240711124112649165.py)', 1720694473.5179875, 'artiq.coredevice.comm_kernel:Mismatch between gateware (8.0+unknown.beta) and software (8.8881+e8da758) versions')
The second version here is from MSYS on Windows.
If it was just this warning it wouldn't matter, but I believe it is related to the actual problem.
Using any TTL, Fastino, Zotino and Mirny works fine. However, initializing the Urukul AD9910 gives an I2C Bus error.
ARTIQ: (40, 'worker(354,20240711124257777432.py)', 1720694579.9667747, 'root:Terminating with exception (I2CError: I2C bus could not be accessed)
Core Device Traceback:
Traceback (most recent call first):
File "ksupport/nrt_bus.rs", line 53, column 18, in (Rust function)
<unknown>
^
File "C:/Users/muel_k0/dev/Artiq/Crates/TechnoSystem/generatedCode/2024-07-11/12/20240711124257777432.py", line 47, in ... artiq_worker_20240711124257777432.urukul_test.init<artiq_worker_20240711124257777432.urukul_test>(...) (RA=+0x474)
self.urukul0_ch0.init()
File "C:/Users/muel_k0/dev/Artiq/Crates/TechnoSystem/generatedCode/2024-07-11/12/20240711124257777432.py", line 52, in artiq_worker_20240711124257777432.urukul_test.run(..., ...) (inlined)
self.init()
File "<artiq>/coredevice/ad9910.py", line 92, in ... artiq.coredevice.ad9910.SyncDataEeprom.init<artiq.coredevice.ad9910.SyncDataEeprom>(...) (RA=+0xfa8)
word = self.eeprom_device.read_i32(self.eeprom_offset) >> 16
File "<artiq>/coredevice/ad9910.py", line 464, in ... artiq.coredevice.ad9910.AD9910.init<artiq.coredevice.ad9910.AD9910>(...) (inlined)
self.sync_data.init()
File "<artiq>/coredevice/i2c.py", line 167, in ... artiq.coredevice.i2c.I2CSwitch.set<artiq.coredevice.i2c.I2CSwitch>(...) (RA=+0x2d54)
i2c_switch_select(self.busno, self.address >> 1, 1 << channel)
File "<artiq>/coredevice/kasli_i2c.py", line 41, in ... artiq.coredevice.kasli_i2c.KasliEEPROM.select<artiq.coredevice.kasli_i2c.KasliEEPROM>(...) (inlined)
self.sw0.set(self.port)
File "<artiq>/coredevice/kasli_i2c.py", line 67, in ... artiq.coredevice.kasli_i2c.KasliEEPROM.read_i32<artiq.coredevice.kasli_i2c.KasliEEPROM>(...) (inlined)
self.select()
artiq.coredevice.exceptions.I2CError(0): I2C bus could not be accessed
I had the same error many times in the past and it was always related to version mismatches and fixed after reflashing the crate with updated firmware. This time however, I'm unable to get the firmware to any other version but ARTIQ v8.0+unknown.beta
It all works fine if I roll back to artiq-7.
Any help would be appreciated!