Skip to content

Pseudoclock/clockline collision #53

Description

@philipstarkey

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmajor

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions