azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing |,, | Logs:
Degi has quit [Ping timeout: 256 seconds]
Degi has joined #scopehal
electronic_eel has quit [Ping timeout: 256 seconds]
electronic_eel has joined #scopehal
<_whitenotifier-b> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier-b> [scopehal] azonenberg a2664a1 - Added WaveRunner 8000M support
<azonenberg> soooo close
<azonenberg> glscopeclient compiles on my new scope
<azonenberg> it even runs to the point of establishing a connection to the instrument
<azonenberg> then dies with a segfault in the intel graphics card driver
<azonenberg> have not attempted to debug
<azonenberg> it's a skylake integrated card, should support compute shaders
Nero_ has joined #scopehal
Nero_ is now known as NeroTHz
<_whitenotifier-b> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±3]
<_whitenotifier-b> [scopehal] azonenberg 87727df - Better detection of -M option
<_whitenotifier-b> [scopehal] azonenberg 9009645 - ProtocolDecoder: use 64-bit ints for parameters instead of whatever "int" is
<azonenberg> Sooo
<azonenberg> i think with a bit of tuning to my CDR PLL
<azonenberg> decoding 10GbE on this scope miiiight be doable
<azonenberg> The eye is surprisingly open
<azonenberg> don't get me wrong, it isn't readable
<azonenberg> but it's close enough i think there's potential
<_whitenotifier-b> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier-b> [scopehal] azonenberg 03f12c7 - LeCroyOscilloscope: initial hack of support for interleaved sample rate. Cannot be configured, but works if selected on the scope front panel.
<_whitenotifier-b> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier-b> [scopehal-apps] azonenberg e703604 - If channels are unavailable due to interleaving etc, don't add them to the UI
<monochroma> crunchy
<lain> what's up with those lines
<lain> vertical lines
<azonenberg> lain: aliasing, i think
<azonenberg> the combination of sample rate/baud rate/vertical resolution is such that no pixel ever hits there
<azonenberg> i'm working on improving handling of such conditions
<azonenberg> I think if i make my PLL a bit better it will be possible to decode this
<lain> ah ok
<azonenberg> lain: 1000base-x eye through the new scope
<azonenberg> after de-embedding
<lain> 404
<azonenberg> try again
<lain> ooooo
<azonenberg> Gonna do a full video tomorrow showing off some of the recently added features
<azonenberg> Also, although i still plan to gpu accelerate the fft's eventually
<azonenberg> i found that an openmp environment setting was the big reason for my recent slowdowns
<azonenberg> the de-embeds are actually a lot faster than i thought
<azonenberg> also a recent hack allows you to use channel combining on lecroy scopes
<azonenberg> you cannot turn it on or off, whatever setting you have when the app starts up is what you're stuck with
<azonenberg> it has to be configured on the scope
<NeroTHz> I envy your nice eyes
<monochroma> my... what beautiful eyes you have
<azonenberg> jitter analysis of that same signal
<azonenberg> i'm not quite sure how much i trust that at this point though, it's somewhat experimental. and my CDR filter isn't perfect either
<azonenberg> NeroTHz: well this is a 1.25 Gbps data stream on a 4 GHz scope
<azonenberg> is this more what you're used to? :p
<NeroTHz> yeah, somewhat :p
<azonenberg> that's 10Gbase-SR through the same scope. I think my CDR PLL is the limiting factor and with a better CDR i can actually decode this
<azonenberg> because the actual 1s and 0s on the scope trace look clearly distinguishable
<NeroTHz> something like that you know
<azonenberg> severely attenuated of course, since it's a 5.15625 GHz fundamental on a 4GHz scope
<azonenberg> lol
<azonenberg> yeah
<NeroTHz> or look at this beauty
<azonenberg> hey, there's an opening if you squint
<azonenberg> lol
<azonenberg> anyway i should really learn some PLL theory and implement a "real" CDR PLL
<azonenberg> probably the fibre channel golden to start
<azonenberg> right now i'm doing a bang-bang control loop with rather arbitrary tuning
<azonenberg> it works, for the most part, and can be used for qualitative comparisons between waveforms
<azonenberg> but isn't good enough for quantitative work yet
<azonenberg> i also need to improve some of my measurements of jitter and such
<azonenberg> i want to be able to do full spectral decomposition of jitter eventually
<azonenberg> NeroTHz: oh, today i added support for multiple s-parameters in the channel emulation and de-embed filters
<azonenberg> so you can do a cable and a fixture, etc
<NeroTHz> so like cascading?
<azonenberg> Yeah
<NeroTHz> nice!
<azonenberg> and of course you have FFTs and waterfalls
<azonenberg> right now only shown in normalized dB but i plan to have it read in dBm assuming a 50 ohm input eventually
<NeroTHz> that makes sense
<azonenberg> And again, only so many hours in the day to work on this :p
<azonenberg> the CDR PLL definitely is in need of improvement so i think that will be my next priority. For 100baseTX i could get away with almost anything
<azonenberg> now that i'm running up closer to nyquist with some of these protocol decodes and thinking about jitter analysis i actually need to do it right
<azonenberg> The other thing i need to investigate is what's going on with my rise/fall time measurements
<azonenberg> they're supposed to be properly interpolating the 20-80% values etc with sub-sample precision
<azonenberg> but i'm seeing awfully discrete values which is making me think there's rounding going on somewhere
<_whitenotifier-b> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±7]
<_whitenotifier-b> [scopehal] azonenberg ad8d3a5 - Rise/fall: fixed broken interpolation
<_whitenotifier-b> [scopehal] azonenberg 5ca71d9 - Switched several measurements to use floating point timestamps for extra resolution
<_whitenotifier-b> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier-b> [scopehal-apps] azonenberg cf8eadd - Updated scopeprotocols with measurement bug fixes. Fixed missing theme revert in file chooser dialog
hlzr has quit [Quit: Connection closed for inactivity]
m4ssi has joined #scopehal
_whitelogger has joined #scopehal
<_whitenotifier-b> [scopehal-apps] noopwafel forked the repository -
<_whitenotifier-b> [scopehal-apps] noopwafel opened pull request #152: glscopeclient: Very slow scopes are not ahead of the UI. -
<noopwafel> I guess xptools PRs don't end up in here :)
<_whitenotifier-b> [scopehal] noopwafel opened pull request #201: add SCPIUARTTransport (fixes #159) -
<_whitenotifier-b> [scopehal] noopwafel opened pull request #202: misc Rigol fixes -
<_whitenotifier-b> [scopehal] noopwafel commented on issue #175: Crash with Rigol DS1104Z connected via USBTMC -
bvernoux has joined #scopehal
<_whitenotifier-b> [scopehal] azonenberg closed pull request #201: add SCPIUARTTransport (fixes #159) -
<_whitenotifier-b> [scopehal] azonenberg closed issue #159: Add SCPIUARTTransport -
<_whitenotifier-b> [scopehal] azonenberg pushed 2 commits to master [+4/-0/±6]
<_whitenotifier-b> [scopehal] noopwafel 2ad3f0c - add SCPIUARTTransport (fixes #159)
<_whitenotifier-b> [scopehal] azonenberg 7d1d590 - Merge pull request #201 from noopwafel/uart-transport add SCPIUARTTransport (fixes #159)
m4ssi has quit [Remote host closed the connection]
<bvernoux> azonenberg, nice the glscope inside your latest Lecroy Scope ;)
<_whitenotifier-b> [scopehal] azonenberg closed pull request #202: misc Rigol fixes -
<_whitenotifier-b> [scopehal] azonenberg pushed 3 commits to master [+0/-0/±3]
<_whitenotifier-b> [scopehal] noopwafel 87f3902 - RigolOscilloscope: use SING for all protocol variants
<_whitenotifier-b> [scopehal] noopwafel d38fd14 - RigolOscilloscope: fix sizes when reading waveforms
<_whitenotifier-b> [scopehal] azonenberg 073dc63 - Merge pull request #202 from noopwafel/rigol-misc-fixes misc Rigol fixes
<_whitenotifier-b> [scopehal-docs] azonenberg pushed 2 commits to master [+0/-0/±2]
<_whitenotifier-b> [scopehal-docs] azonenberg 0c752cb - Documented DS1000D series being tested to work
<_whitenotifier-b> [scopehal-docs] azonenberg 6399205 - Documented UART transport
<azonenberg> noopwafel: so what's the status of #191 now? there's merge conflicts
<noopwafel> yeah, I pulled out some parts of it for the other PRs
<_whitenotifier-b> [scopehal] azonenberg commented on pull request #182: set rx/tx timeout after connect, to avoid it being reset -
<azonenberg> So is it redundant now?
<azonenberg> or what
<noopwafel> no, but can't be committed yet
<azonenberg> OK i'll leave it as is then
<noopwafel> will ping you once tidied (or else I guess you'll notice)
<noopwafel> thanks
<_whitenotifier-b> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±2]
<_whitenotifier-b> [scopehal-apps] noopwafel 0d852c4 - glscopeclient: Very slow scopes are not ahead of the UI.
<_whitenotifier-b> [scopehal-apps] azonenberg d663bef - Merge pull request #152 from noopwafel/slow-scope glscopeclient: Very slow scopes are not ahead of the UI.
<_whitenotifier-b> [scopehal-apps] azonenberg closed pull request #152: glscopeclient: Very slow scopes are not ahead of the UI. -
<_whitenotifier-b> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier-b> [scopehal-apps] azonenberg 611c2de - Updated submodules
<pepijndevos> azonenberg, can I make clang fix coding style for me? :(
<azonenberg> pepijndevos: there's a clang-format but it's close, not perfect. it tends to mess up things around GUI code
<azonenberg> azonenberg/coding-policy is the coding style for your reference
<azonenberg> basically curly braces go on their own line, not used for single line conditionals, indent four columns with a \t
<_whitenotifier-b> [scopehal] pepijndevos synchronize pull request #182: set rx/tx timeout after connect, to avoid it being reset -
<pepijndevos> I deleted the braces... in the Github web interface like a savage
<_whitenotifier-b> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±1]
<_whitenotifier-b> [scopehal-docs] azonenberg 9dd7e02 - OMP_WAIT_POLICY notes
<_whitenotifier-b> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±1]
<_whitenotifier-b> [scopehal-docs] azonenberg c6f966c - Fixed typo
<_whitenotifier-b> [scopehal] azonenberg closed pull request #182: set rx/tx timeout after connect, to avoid it being reset -
<_whitenotifier-b> [scopehal] azonenberg pushed 3 commits to master [+0/-0/±3]
<_whitenotifier-b> [scopehal] pepijndevos a9e2677 - set rx/tx timeout after connect, to avoid it being reset
<_whitenotifier-b> [scopehal] pepijndevos 3147af7 - Comply with code style
<_whitenotifier-b> [scopehal] azonenberg fcca2e6 - Merge pull request #182 from pepijndevos/timeout set rx/tx timeout after connect, to avoid it being reset
<_whitenotifier-b> [scopehal] azonenberg opened issue #203: Rewrite header comments to say "libscopehal" and not "Antikernel" -
<_whitenotifier-b> [scopehal-apps] azonenberg opened issue #153: Rewrite header comments to say "scopehal-apps" and not "Antikernel" -
<_whitenotifier-b> [scopehal] azonenberg pushed 3 commits to master [+0/-0/±3]
<_whitenotifier-b> [scopehal] azonenberg 62b3efd - Commented out debug spam
<_whitenotifier-b> [scopehal] azonenberg 3dd5be6 - Merge branch 'master' of
<_whitenotifier-b> [scopehal] azonenberg e961df4 - Updated xptools
<_whitenotifier-b> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2]
<_whitenotifier-b> [scopehal-apps] azonenberg e68245b - Updated submodules
<azonenberg> this is an interesting issue
<azonenberg> and it probably explains the eye pattern issues i've had with some of my channel emulation tests
<azonenberg> now the question is why
<azonenberg> it seems like there is a massive phase jump very early on in the waveform then it recovers to a decent lock and stays there
<azonenberg> and this is consistent with my PRBS-31 and particular channels
<azonenberg> Zooming in more, it appears that the cdr loses lock, jumps around wildly for a bit where it doesn't know which edge to track
<azonenberg> then stabilizes on the wrong edge
<azonenberg> tracks all the way across the eye then re-syncs
<azonenberg> the UI is 800ps so +/- 300ps of error is almost an entire UI
<azonenberg> and when it goes negative that really means it's wrapping around
<bvernoux> azonenberg, I want a plugin for Spectrum Analyzer ;)
<bvernoux> to plug my KC908 as HDSDR is really awfull !!!
<azonenberg> bvernoux: So that actually wouldnt be that hard because i support frequency domain channels already as output of FFTs etc
<bvernoux> yes it is why I say that ;)
<azonenberg> In theory, all you'd have to do is make a new SpectrumAnalyzer class derived from Oscilloscope, then derive KC908 driver from that
<azonenberg> and have one frequency domain channel
<bvernoux> anyway it is a must to do like Tecktronix Series6
<azonenberg> File load/save will probably break
<bvernoux> mixing both domain !!
<bvernoux> for advanced measurements
<azonenberg> But basically everything else should work out of the box
<azonenberg> Yes
<bvernoux> Lecroy does not support that IIRC
<azonenberg> They do not
<bvernoux> in Tek instrument it is done in HW too
<bvernoux> to help things
<azonenberg> I can also get a secondhand lecroy without selling a kidney :p
<bvernoux> ha really ?
<azonenberg> if i get my hands on a tek6 i'd love to support that
<azonenberg> My 4 GHz waverunner cost me $13K after trade-in
<bvernoux> ha yes I would love a Tek6 too but entry price 25KUSD for 1GHZ version ;)
<bvernoux> but Tek6 are 12bits also
<azonenberg> original asking price on ebay was $20K. And lecroy secondhand stuff tends to be about ~48% off
<bvernoux> does your latest scope is 8bits / 10 bits ore 12bits ?
<bvernoux> ha yes very interesting price
<azonenberg> Which means that this scope was probably around $38.40 MSRP
<azonenberg> $38,400*
<azonenberg> And that's without software options, which would probably push it close to $50K
<bvernoux> will be interesting to find similar price for TEk6 ;)
<azonenberg> It's 8 bit
<bvernoux> but it is very very new ...
<azonenberg> my HDO is 10 bit but i think does some weird oversampling tricks since it can't operate in 10 bit mode all the time
<azonenberg> at lower sample rates (LOWER, which is odd) it runs in 8 bit mode
<azonenberg> That's only 2 GHz
<azonenberg> (and is out for service this week)
<bvernoux> yes only very recent scope have 12bits 10 bits was a trick IIRC
<azonenberg> lecroy has had 12 bit HDOs for quite a while
<azonenberg> but they have historically been quite slow
<bvernoux> Tek6 is 25GSPS 12bits natively IIRC
<azonenberg> few hundred MHz bandwidth
<azonenberg> only recently have they hit GHz in 12 biut
<azonenberg> bit*
<bvernoux> anyway for me 12bits is not a requirements ;)
<azonenberg> Lecroy's fastest 12 bit scope afaik is the WavePro HD which is up to 8 GHz at 20 Gsps
<azonenberg> Tek definitely has the edge there
<bvernoux> Tek as the edge for mixing domain too ;)
<bvernoux> and the Tek6 review show it is amazingly fast
<azonenberg> I don't buy lecroy stuff because it's necessarily the best, i buy it because i have the contacts to get good-enough gear at prices i can afford
<azonenberg> :p
<bvernoux> as in previous Tek the GUI and speed was not very good ...
<bvernoux> Anyway Lecroy are not far to be the best especially quality/price you have
<bvernoux> at full price they are not interesting ;)
<bvernoux> I doubt Keysight support mixed domain too
<bvernoux> as IIRC Keysight are the most advanced on ultra high end Scope ...
<bvernoux> they have something like 250GSPS monster ...
<azonenberg> Yeah
<azonenberg> And then i don't know a ton about R&S scopes
<bvernoux> which cost multi million USD ;)
<miek> it's kinda academic though, i don't think i'll be picking between who has the best 100GHz scope any time soon :p
<azonenberg> Lol
<bvernoux> I have seen a 5G Analyzer/Scope in Lab which cost >1.2MUSD ;)
<azonenberg> miek: no, but a) secondhand stuff still comes down in price over time even for fairly high end
<azonenberg> and b) at least some of the innovations on the high end eventually make their way down to midrange, if not low end
<bvernoux> miek, yes it is better to find the one which is not too expensive and good enough ;)
<bvernoux> main issue today is even scope with >15years old technology are crazy expensive
<bvernoux> as the market is locked ...
<azonenberg> Yeah
<azonenberg> Which is where our custom scopes will be handy :p
<azonenberg> Buuuut we're a long ways out from having something competitive with my current lecroy stuff
<bvernoux> maybe not so long at the speed of update on github ;)
<bvernoux> ok hw will take lot of time ...
<bvernoux> but it is clearly a game changer versus those ultra expensive closed scope like Lecroy, Tek ...
<pepijndevos> azonenberg, how do you afford to do all this open source stuff?
<azonenberg> pepijndevos: time or budget?
<azonenberg> Budget wise, I have a day job in embedded security that pays fairly well (low six figures) and i do occasional freelance hardware/firmware design gigs on the side
<azonenberg> and i keep my expenses fairly low other than the lab so probably well over half my income after taxes, food, and housing goes into lab or project R&D stuff
<azonenberg> actually it's probably like 98% after essentials goes into the lab :p
<azonenberg> time wise, the virus situation has actually helped that greatly as i'm working from home more than i was previously
<azonenberg> so not burning hours a day commuting
<azonenberg> My job is also consulting and i frequently find myself with downtime between billable projects that i have to fill doing "something useful"
<azonenberg> So if nobody has more specific direction for me i work on things like this because they're potentially useful at work
<azonenberg> being able to rapidly understand the behavior of an embedded device you've never seen before is kind of our job description
<azonenberg> So the more protocol decodes and analytics i have, the better
<azonenberg> (the more advanced signal integrity etc focused stuff is mostly for my own projects vs $dayjob)
<azonenberg> MAXWELL is actually a collaboration with a university that i originally got hooked up with through speaking at a conference for work, although $dayjob isn't sponsoring the project officially
<pepijndevos> Ah cool
<azonenberg> Work loves my lab because i'm about the only one in the seattle office who can still work on embedded projects for customers right now lol
<pepijndevos> ahaha
<azonenberg> everyone else is stuck at home with no lab and mostly doing more software oriented stuff
<azonenberg> And i'm working from home with, honestly, a better setup than we have at the office
<azonenberg> lol
<azonenberg> Their flagship scope at the lab is actually a hand-me-down
<azonenberg> 350 MHz lecroy i sold them when i got the 2 GHz scope
<azonenberg> But it makes sense, they dont really do super high speed work for the most part
<azonenberg> Most embedded security work is things like "dump this spi flash" or "sniff the uart between the mcu and cell modem" or "did they forget to disable jtag"
<azonenberg> as well as more conventional software bugs like buffer overflows in web UIs and such
<azonenberg> it's fairly rare that we do anything super fast. Although the project with MAXWELL is going to be pushing up there
<azonenberg> but that's research with an outside institution, not billable work for a customer
<pepijndevos> *** stack smashing detected ***: terminated
<pepijndevos> woops
<pepijndevos> NORMal mode works so much better on Rigol!
<Degi> How did you get scopehal on the waveruner? xD
<azonenberg> Degi: compile it for windows using katharina's instructions, fix a few little things that broke re portability (since she got sick some of my recent changes didn't compile on windows, i'll fix that at some point)
<Degi> And is it performant?
<azonenberg> then just run it
<azonenberg> it seems to work ok although i didnt stress it too hard, it was mostly a photo op
<Degi> Can u just upload it to the scope and execute it on there?
<azonenberg> Yeah its just a windows PC like any other
<azonenberg> It's awkward to use because everything is done through the right click menu which needs a mouse, all of the protocol decoders and such expect keyboard input
<azonenberg> so you need to plug in external usb input devices
<Degi> No locking down etc for plugging a usb with software in?
<azonenberg> no
<Degi> Neat
<azonenberg> they even have an official SDK that lets you integrate matlab etc as custom math functions
<azonenberg> But it's $$$$
<Degi> I guess the knobs don't work? xD
<azonenberg> kinda-sorta
<azonenberg> It can be done better
<azonenberg> Anyway, doing that on a bench when i already have a separate PC with keyboard/mouse right next to the scope is kinda pointless
<azonenberg> since i have a full 24" monitor i can run glscopeclient on
<azonenberg> But down the road making it more touch friendly as an option (without sacrificing the primary design goal of being meant for PC use with a mouse) would be nice
<Degi> yes
<_whitenotifier-b> [scopehal-apps] pepijndevos commented on issue #146: glscopeclient hangs on Rigol MSO5000 -
NeroTHz has quit [Read error: Connection reset by peer]
_whitelogger has joined #scopehal
<azonenberg> Any thoughts?
<azonenberg> lain, monochroma: ^
<lain> faaancy
<lain> hmm does it make more sense to put the last cal date or the cal due date for calibration standards?
<azonenberg> Cal-due date is SOP from all of the certificates i've looked at in my binder
<lain> kk
<lain> yeah I guess that makes sense, since you'd mainly want to verify it's not past date
<azonenberg> (i actually have a binder in a desk drawer with all of the cal certificates for my gear, and serial numbers written down so i don't have to crawl behind the rack all the time)
<lain> yeah that looks great
<azonenberg> As well as internal cal records for my power supplies, which do not have a current 17025 calibration
<azonenberg> but i do an unofficially traceable cal using the ...847 DMM, which does have a valid traceable cal and one more significant digit than the PSU readouts
<azonenberg> set to various voltages and measure output at 0, 10, 50, 90% full scale load
<monochroma> yeah that looks nice! might need to setup a scriptable workflow to automatically generate screen shots and data for volume production
<azonenberg> and repeat for current
<azonenberg> then confirm it's within tolerance
<azonenberg> That's acceptable for my purposes as i'm not using those PSUs to cal anything else
<azonenberg> So having an internally traceable cal is sufficient for me to be happy
<azonenberg> (very curious what is causing the huge dip in return loss around 1.5 GHz though,the pico probe has it too)
<azonenberg> but the fancy 6 GHz pico probe tested in the same conditions has a much smaller bump at a higher freq
<azonenberg> tip capacitance perhaps?
<azonenberg> mine is less than the 1.5 GHz pico probe which is consistent with my estimated < 1.4 pF tip capacitance
<azonenberg> (they're nominal 2 pF)
<azonenberg> And yeah eventually i will want to automate it somewhat but short term only 2 kickstarter backers asked for the full workup
<azonenberg> So i'm doing them manually
<monochroma> yeah
<azonenberg> plus a third one going to shahriar, this is actually his unit
<azonenberg> looking forward to seeing what he has to say about it
<monochroma> "Well as we can see, it's clearly a very very low bandwidth probe, it only goes out to 2GHz!" ;)
<azonenberg> lol
<azonenberg> the running joke in the xdevs channel is that pretty much all of the stuff any of us are doing is just DC to nero
<azonenberg> Since he lives in the mm-wave world
<monochroma> lol yes
<azonenberg> and here's the manual/datasheet
<azonenberg> anything missing or is this good to go?
* monochroma lols at this all still being under starshipraider
<azonenberg> monochroma: that is now the overall umbrella for my test equipment projects