1

Topic: Control Delay loop

An interesting tech support call came today about a "looping" Control Delay.  They were saying that the delay was not tracking correctly, that it would shift during the day, and that the PowerPC on the Nion must not be clocking correctly.  We had them send in the Project, and what we found is this;

From seven in the morning until 6pm, a wav file would be triggered to play every 10 minutes.  The Pulse output is what was wired to the play button of the player.  The pulse was set for 1 second, (they wanted to make sure the pulse was long enough to trigger the play button).  So then the loop would kick in, and 10 minutes later, the wav would play again.  But what was forgotten, is that it was actually 10 minutes and one second after the first wav started.  At the end of the first hour, it was 6 seconds off, and by the end of the 11 hours that the wav was playing, it was off 66 seconds.  Of course it was the Nion's fault, the clock was drifting....

BTW.  20ms is enough to trigger the play button, but that still meant the time would be off by 13.2 seconds at the end of an 11 hour day.

Anyway, I bring this up because I would like to hear from others on the forum about whether the "loop" should begin after the "pulse" has finished, or should it the loop start immediately.  I have always felt that it should start immediately, so every ten seconds, a pulse would occur.  Maybe a button to set it one way or the other, but that might be confusing.

Your thoughts...

Make it intuitive, never leave them guessing.

2

Re: Control Delay loop

My vote... Start immediately. The pulse duration shouldn't be a factor in the loop timing.

3

Re: Control Delay loop

I am reluctant to change the way it works now, we could possibly break existing projects that make use of this behaviour.  We'll be sure to document this though.  I assume now that they understand how it works it is working ok for them.

4

Re: Control Delay loop

I agree with Charles.  This is a device that I helped develop for a few very specific projects and should be preserved for backwards compatibility. 

A few things to consider...  if the loop started immediately, essentially the 'delay' segment would never go 'off'.  Backwards compatibility could be an issue but also another state would have to be considered: if the pulse is set longer than the delay time!

Thanks,

Joe

5

Re: Control Delay loop

I have an application where I would like to allow the user to have the capability of a delayed event by specifying the delay in hours and minutes. I found this thread regarding the pitfalls of a looping control delay and have come up with a possible solution.

The use of a single control delay is not possible due to insufficient maximum amount of delay. I rigged up two control delays using a flip flop, NOT and an OR in such a fashion to produce a 60 second pulse train.

DEL1 - Control delay 1
DEL2 - Control delay 2
FF - Flip flop

FF.Q -> DEL1.Tgr
(NOT FF.Q) -> DEL2.Tgr   (I'd use Q` but it's not active at startup and the rig won't bootstrap)
DEL1.Pul -> FF.R
DEL2.Pul -> FF.S
(DEL1.Pul OR DEL2.Pul) -> FF.Clk

If you set both delays to 30 seconds with a 1 second pulse, you can use DEL1.Act as a pulse that goes high every 60 seconds. Now cook up a simple pulse counter Python script attached to this minute pulse with the script storing a current count in an integer generic control. Using an interface script to calculate the total amount of minutes based on the hour/minute input from the user, you should now be able to set an event based on a comparison with this accumulator. Let me know if you think this would be a valid way to delay for a relative(not absolute like a scheduler) amount of time.

FYI, I think Q` should be high on startup, since by definition it should be NOT Q.

6

Re: Control Delay loop

FYI, The Device Properties for the Control Delay can be adjusted to much longer delays and pulses.

Make it intuitive, never leave them guessing.

7

Re: Control Delay loop

Ahh I didn't notice that. Unfortunately it seems I can only delay up to 3 hours.