azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-cmake, https://github.com/azonenberg/scopehal-apps, https://github.com/azonenberg/scopehal | Logs: https://freenode.irclog.whitequark.org/scopehal
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±5] https://git.io/JfyNa
<_whitenotifier-f> [scopehal-apps] azonenberg 42462d5 - Added --nodigital argument to only show analog channels when starting glscopeclient
juli966 has joined #scopehal
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
Degi has quit [Ping timeout: 246 seconds]
Degi has joined #scopehal
futarisIRCcloud has joined #scopehal
<azonenberg> So i'm working on the multi scope sync wizard
<azonenberg> probably wont finish tonight but making progress
<azonenberg> i created all of the necessary wizard pages, wrote text for most of the prompts, and did the setup needed on the primary (basically just turning on the trigger output)
<azonenberg> i still have to configure the secondaries (enable external trigger and external refclk), collect some waveforms, calculate the skew
<azonenberg> then actually apply the deskew correction
<azonenberg> then i need to ensure that any time i change the trigger offset on the primary, all of the secondaries update at the same time
<azonenberg> and generally just make them behave more like an integrated instrument
<_whitenotifier-f> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±8] https://git.io/JfSkP
<_whitenotifier-f> [scopehal] azonenberg d2c28e0 - Added Oscilloscope::EnableTriggerOutput()
<_whitenotifier-f> [scopehal] azonenberg dea6c4c - Added Oscilloscope::SetUseExternalRefclk()
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 1 commit to master [+2/-0/±4] https://git.io/JfSkQ
<_whitenotifier-f> [scopehal-apps] azonenberg a37d563 - Initial work on multi-instrument sync wizard. Correctly configures primary, does basic setup on secondaries but doesn't deskew yet. See #70.
<azonenberg> oh lovely, so to do the sync i need to cross-correlate waveforms that might have different sampling rates
<azonenberg> that will be fun
smkz has quit [Quit: reboot@]
smkz has joined #scopehal
smkz has quit [Client Quit]
smkz has joined #scopehal
<azonenberg> quick cross-correlation deskew test
<azonenberg> looks like the skew is -37.8 ns
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±3] https://git.io/JfStC
<_whitenotifier-f> [scopehal-apps] azonenberg 0782684 - Continued work on ScopeSyncWizard. Now compute skew between scopes, but don't apply the correction. See #70.
<azonenberg> So here's an interesting tidbit
<azonenberg> My LeCroy scopes can only adjust the trigger timestamp in 4-nanosecond increments
<azonenberg> despite sampling far faster than that
<azonenberg> I wonder if that's the division rate of some kind of SERDES or something
<azonenberg> and they run the trigger logic on blocks of data at low speed in the FPGA, then align per-sample ex post facto
<azonenberg> This means that when doing scope-to-scope skew correction i cannot just use the trigger position control
<azonenberg> I need to use that plus the fine per-channel deskew which can go to sample or possibly even sub-sample resolution
<azonenberg> This also means i need an API to query the granularity of the trigger offset
<azonenberg> So i know how close i can get with trigger offset tuning and how much has to be saved for the deskew
<_whitenotifier-f> [scopehal-apps] azonenberg opened issue #112: Add UI for configuring per-channel deskew - https://git.io/JfSmn
<_whitenotifier-f> [scopehal-apps] azonenberg labeled issue #112: Add UI for configuring per-channel deskew - https://git.io/JfSmn
<Degi> Worst case you can just request the trigger offset
<Degi> Like how I did with the rigol with channels / memory
<azonenberg> yes that's what i ended up going with
<azonenberg> i'm most of the way done coding that up
<azonenberg> it turns out the granularity varies with the horizontal zoom setting
<azonenberg> its probably a fixed number of pixels or something
<Degi> lol
<Degi> Ugh proprietary scopes are so icky
<Degi> Like WTF rigol, do you use a RNG to define max sample rates and mem depths...
<azonenberg> i will say, having spent a lot of time on scopehal at this point
<azonenberg> i have a long list of things to not do when building our own hardware :p
<Degi> Yeah :D
<Degi> Maybe we can have in addition to SCPI something faster too, not sure if it'd be worth that tbh.
<Degi> For the LA, the internet interface could be a daughterboard, that way you won't need a switch and dead hardware
<azonenberg> well my thought is, the problem is using scpi for data plane transfer
<azonenberg> it's a perfectly useful and very scripting-friendly interface for control plane
<azonenberg> which is not performance critical
<Degi> Hm dont most scopes return the data as raw bytes anyways?
<azonenberg> hence my plan to use a split socket design, scpi control plane then binary encapsulated waveform data on another socket
<Degi> Hm yeah
<azonenberg> Some do weird things
<azonenberg> lecroy's LA data is base64 coded raw binary inside XML for example
<Degi> Maybe the scope can send data without the program requesting it...
<azonenberg> i wish i was kidding
<Degi> Lol why
<azonenberg> That is exactly what i'm doing
<azonenberg> it's going to be a pub/sub interface
<azonenberg> you subscribe to notifications for a list of channels
<Degi> HM yes should be fastest
<azonenberg> then every trigger it pushes you a waveform
<azonenberg> for each of those channels
<azonenberg> no polling
<azonenberg> you also will be able to do control plane actions while a waveform is downloading on the other socket
<Degi> I wonder why there are so many questionable design decisions
<azonenberg> IMO a lot of them go back to the early days of DSOs
<azonenberg> when they pretended to be analog CRT scopes
<azonenberg> i'm giving up all pretense of that
<Degi> Especially that whole "behave like analog and no way around" shtick on the control plane
<Degi> Yeah exactly
<Degi> Like the MSO5000 series doesnt give FSR or volts per bit, it gives volts per div, luckily FSR = 8 * volts per div
<azonenberg> Yeah
<azonenberg> who cares about divisions when scripting the scope?
<azonenberg> FSR is a much more sane API
<Degi> Well the DS scopes do that
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±16] https://git.io/JfSYP
<_whitenotifier-f> [scopehal] azonenberg 8651d64 - Added Oscilloscope::Get/SetTriggerOffset(). Fixes #21.
<_whitenotifier-f> [scopehal] azonenberg closed issue #21: Add APIs for setting horizontal trigger position - https://git.io/JfSYX
<azonenberg> degi / miek: when you get a chance, can you implement those two functions in your scope drivers? I added dummy stubs so the code would compile
<azonenberg> but they dont actually do anything
<Degi> Oh, 110 is neat
<Degi> In what unit is the int64_t?
<azonenberg> see Oscilloscope.h
<azonenberg> i actually have a bug in the lecroy driver that doesnt comply with that spec that i'm working on fixing
<azonenberg> lecroy measures offset from the middle of the plot, not the start
<Degi> Huh
<Degi> Why offset and not the trigger level?
<azonenberg> this is the offset in time
<Degi> Ahh
<azonenberg> not the trigger threshold
<Degi> Yeah I think thats usually from the middle
<azonenberg> yeah but i think start makes more sense from an API perspective
<Degi> I wonder how the number of counter bits in a FPGA correlates with frequency
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://git.io/JfSOY
<_whitenotifier-f> [scopehal] azonenberg ce30cfe - LeCroyOscilloscope: trigger offset on the SCPI interface is measured from midpoint of acquisition, not start
juli966 has quit [Quit: Nettalk6 - www.ntalk.de]
<sorear> counter bits?
<Degi> If you have a n bit counter x, with like x = x_old + 1
<Degi> The propagation delay should be proportional to length
<azonenberg> Degi: yes, but it's in discrete steps probably
<azonenberg> because carry chains in blocks
<azonenberg> on xilinx i suspect you're going to see very tiny increases from 1 to 4 bits, then a big step from 4 to 5
<azonenberg> and continuing
<Degi> huh
<Degi> yeah
<sorear> unless you're doing weird stuff with the counter output in extremely low latency you can just retime an arbitrarily wide counter
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±5] https://git.io/JfS35
<_whitenotifier-f> [scopehal] azonenberg 83d8c13 - Implemented per-channel deskew in LeCroy driver. Fixes #144.
<_whitenotifier-f> [scopehal] azonenberg closed issue #144: Add support for per channel deskew - https://git.io/Jfyip
<sorear> actually I think at the gate level "retiming" and "CSA" are the same
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±1] https://git.io/JfS3x
<_whitenotifier-f> [scopehal-apps] azonenberg a42ea12 - ScopeSyncWizard now mostly works, but occasionally drops triggers. See #70.
<azonenberg> So, two remaining things left to do before the deskew wizard is done
<azonenberg> first, it occasionally fails to trigger. This seems to be a bug in the multi-scope trigger logic but in the short term i can work around it by adding a timeout and retriggering after that time if nothing happens
<azonenberg> second, deskewing based on cross-correlation of a single waveform is a bit noisy so i'm going to collect a few and average
<azonenberg> oh and adding a "done" page so you dont have to click cancel upon completion to make it exit :p
<azonenberg> also, unrelated, the LCD for the MEAD prototype came in
<azonenberg> it shipped from bellevue and outran the rest of the parts
<azonenberg> apparently digikey is jumping on the third party seller bandwagon
<azonenberg> so something to watch out for
<monochroma> azonenberg: oh god yeah, i ran into that
<azonenberg> i assume they vet those vendors well
<azonenberg> but you never know
<azonenberg> this display came wrapped in ordinary bubble wrap, not even ESD
<Degi> And then you get spam mail
<monochroma> i needed something in a hurry and i was about to checkout and then it was like "these will be shipped now, and these will be shipped later!"
<azonenberg> yeah i almost didnt buy this display but it looked nicer than the alternatives
anuejn_ is now known as anuejn
juli966 has joined #scopehal
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
smkz has quit [Ping timeout: 256 seconds]
promach3 has quit [*.net *.split]
maartenBE has quit [Ping timeout: 246 seconds]
maartenBE has joined #scopehal
smkz has joined #scopehal
futarisIRCcloud has joined #scopehal
tverbeure has joined #scopehal
tverbeure has quit [Quit: Leaving]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<azonenberg> ooh. looks nice
<azonenberg> open a ticket for adding support
<_whitenotifier-f> [scopehal] smunaut opened issue #146: Support for HiSLIP - https://git.io/JfSyZ
<azonenberg> EMC probe set and MEAD parts came in
bvernoux has joined #scopehal
futarisIRCcloud has joined #scopehal
bvernoux has quit [Ping timeout: 260 seconds]
<azonenberg> So i'm getting ready to send out the v0.9 probe PCB to oshpark
<azonenberg> no change to the line itself, its impedance is a tiny bit low on the last test but not enough that i'm going to change it
<azonenberg> i adjusted the tip to hopefully get rid of the bump there
<azonenberg> and added a new ground socket next to the tip