ngscopeclient / scopehal-apps

ngscopeclient and other client applications for libscopehal.
https://www.ngscopeclient.org/
BSD 3-Clause "New" or "Revised" License
549 stars 84 forks source link

Add "trigger feedback" path for multiscope to allow calibrating out unpredictable trigger cascade latencies #540

Open azonenberg opened 1 year ago

azonenberg commented 1 year ago

With some scope/trigger combinations (measurement and CDR triggers on Teledyne LeCroy scopes are a known example), the latency from the trigger event to the trigger-out pulse on the back panel BNC can vary by a significant amount between subsequent acquisitions. This is likely due to clock domain crossing or software-based triggering.

In order to ensure good sync between the primary and secondary scopes in these cases, it may be necessary to feed the trigger-out pulse back into the primary through a splitter, so that we can measure the actual latency between the trigger event and the trigger-out pulse after the primary has triggered and then calibrate out this delay when computing the shift to apply to the secondary waveforms.

This should be an optional feature which is only enabled if the user is using one of these triggers and needs tight synchronization. The sync wizard and trigger properties dialog should warn the user if they attempt to use one of the trigger types known to have high cascade jitter in a multi-scope environment without the feedback feature being enabled.