Description
Original report (archived issue) by David Meyer (Bitbucket: dihm, GitHub: dihm).
The original report had attachments: 20190725T165847_main_labscript_0.h5, 20190725T170000_main_labscript_0.h5, 20190725T170006_main_labscript_0.h5
The other project in my lab has encountered a strange issue that produces the following traceback during compilation.
I don’t really understand the error message at all. Why is the clock limitation of our slow clockline being applied to updates of the master pseudoclock? Am I just reading that wrong.
Anyway, doing some digging we found the offending portion of the script to be
### note t=0.8047 here ###
Shutter_MOT.go_high(t)
Shutter_Repump.go_high(t)
MOT_BN.setfreq(t,91.7*MHz) #65.8+(266)/16+157/16 #Tuned by looking at imaging
REP_BN.setfreq(t,83.8*MHz) #Use Horizontal Repumping beam (along xhat (table) (that is, the y coil in Blacs)) to pump 1-1'.
zCoil.constant(t,value = -0.35) #-.365 #SET FIELD Vertical for opt Pump
xCoil.constant(t, value = -0.02) #-0.02
yCoil.constant(t, value = -1.5) #0.25
print("there: ", t)
#xCoil.constant(t,value = bx_sweep)
#yCoil.constant(t,value = by_sweep)
#zCoil.constant(t,value = bz_sweep)
t +=2.011e-3 #Coils update.
#Keep this short, so that don't get too much extra pumping.
#Turn on light to Pump to F=1
MOT_AOM_Switch.go_high(t)
Rep_AOM_Switch.go_high(t)
t += 0.10e-3
Rep_AOM_Switch.go_low(t)
t+= 0.3e-3
MOT_AOM_Switch.go_low(t)
#Blow away
MOT_BN.setfreq(t,65.5*MHz)
t+=0.2e-3
MOT_AOM_Switch.go_high(t)
t+=0.7e-3
MOT_AOM_Switch.go_low(t)
MOT_BN.setfreq(t,30*MHz)
REP_BN.setfreq(t,30*MHz)
MOT_AOM_Switch.go_low(t)
t += 0.15e-3
Shutter_MOT.go_low(t)
If the time in line 14 is set to <=2.01ms the error occurs. The relevant devices are the analog outputs on a fast clocked NI-6733, direct digital outputs of the pulseblaster, and DDS updates from a Novatech 409B-AC on a slow clockline in asynchronous mode. The slow clockline only goes to novatechs and the fast clockline goes to NI-DAQs.
Using runviewer we can look at the clocklines as this time is decreased up to this limit.
This raises a few questions: Why are the fast and slow clocklines identical? What exactly is updating at 804.8 ms? Why does the timing of instructions happening after the offending one matter?
I don’t spend as much time on this experiment so I’m not intimately familiar with their script, but I believe it is configured correctly. Two of the corresponding shots to those shown in runviewer are attached (accidentally grabbed an error shot as well, T170000).
Help diagnosing (and hopefully fixing this) would be appreciated.