<azonenberg>
oook so, i'm doing an experiment here
<azonenberg>
i want to try and debug two scopes with a third scope :p
<monochroma>
:o
<azonenberg>
what's bugging me is that the lecroy scopes have the ability to output either "trigger armed" or "trigger occurred" from a single aux output
<azonenberg>
but there is no way to see both at once
<azonenberg>
which is really what i want
<azonenberg>
i suspect there is a race condition in multi-scope where it's possible to arm the trigger on the primary before the secondary has fully armed, leading to missed trigger events
<azonenberg>
but actually reproducing this in a lab environment and fixing it is hard
<azonenberg>
for extra fun i might try and sniff the actual ethernet traffic to the scope
<azonenberg>
to detect the "arm" command
<azonenberg>
and measure latency from packet to arm signal going high
<azonenberg>
that would be a very meta-debug project :p
<azonenberg>
anyway right now i am fighting the picoscope driver giving weird errors sayin ga channel isn't enabled when it obviously is
<_whitenotifier-b>
[scopehal] azonenberg 6e7c72e - Refactoring: renamed Ethernet100BaseTDecoder to Ethernet100BaseTXDecoder
<_whitenotifier-b>
[scopehal] azonenberg 7d5969b - Ethernet100BaseTXDecoder: now use CDR PLL rather than assuming exact 125.000 Mbps signaling rate
<Degi>
How do you synchronously arm two scopes anyways? Synchronize their clocks and time and then send an arm command which says "arm at precisely this time"?
<d1b2>
<Darius> you would need something like that
<d1b2>
<Darius> no idea how well supported it is
<Degi>
Like otherwise it would only work with slow signals... Or a trigger output from the main scope to the other scopes would work too, if you compensate for its length
<Degi>
(But then only one scope would be armed)
<d1b2>
<Darius> also if you can control when the event happens you can setup the trigger, wait for an ack from each 'scope then cause the event
<Degi>
Tru
<azonenberg>
Yeah it's lock step
<azonenberg>
You have one primary scope that serves as the trigger reference to the others
<azonenberg>
and one or more secondaries who have aux trig connected to trig out from the primary
<azonenberg>
you arm all the secondaries, wait for them to confirm they're armed
<azonenberg>
then arm the primary
<azonenberg>
and whenever the primary triggers the secondaries should all trigger too
<azonenberg>
then you calibrate out the propagation delay of the cable and trigger subsystem so the same point in time shows up at the correct offset in each capture
<azonenberg>
we've had support for this for years but it's been unreliable, i'm trying to make it rock solid and then improve the gui to make it easier to use
<azonenberg>
vs having to specify two scopes on the command line at startup
<Degi>
Nice
<azonenberg>
there's a lot of rough edges i have to figure out, like timestamping of waveforms when there is clock skew between the RTCs on the scopes
<azonenberg>
so my plan is to, after i've calibrated out the *actual* skew between their triggers
<azonenberg>
go in and edit the waveform timestamp header of each secondary
<azonenberg>
knowing the true offset from the primary
<azonenberg>
and patch the timestamp to be consistent to the femtosecond with the primary allowing for the calibrated offset
<azonenberg>
The other thing i need to do is support an explicit delay between the triggers
<azonenberg>
right now everything assumes once the calibration is done you don't touch anything and the two scopes trigger essentially simultaneously
<azonenberg>
but i recently had a project for work where it would be nice to record one channel of data then a long time - tens or hundreds of ms later - record another
<_whitenotifier-b>
[scopehal] azonenberg 968bfea - Initial implementation of TCP protocol decode. No protocol analyzer integration yet. Doesn't do any stream processing or reassembly, just decodes segment fields.