azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing |,, | Logs:
<azonenberg> lain: so i think tonight i'm going to experiment with early de-embedding in scopehal
<lain> :D
<azonenberg> In particular, i'm going to do "scalar de-embedding"
<azonenberg> i.e. correcting for frequency dependent loss only and assuming flat phase response
<azonenberg> Just to start
<azonenberg> Then i can worry about correcting phase later on
<azonenberg> basically my plan is, fft the signal, linearly interpolate the S21 values from the provided S2P to find the loss at each FFT bin, multiply each bin by the inverse of the channel response, then inverse fft it
<azonenberg> lain: i think to start i'll try feeding some test signals through one of the 6-foot rg188 cables. or even two end to end
<azonenberg> and then see what happens when i de-embed them
<azonenberg> and how close that looks to a direct feed of the signal with minimal cable loss
<azonenberg> i'm a bit handicapped still since my 2 GHz scope is down for service, so i'm gonna use an extra lossy cable to make the effects more obvious
<lain> :)
<azonenberg> My thought is to feed the 40ps pulse generator (nice broadband source) into a splitter
<azonenberg> then one path from the splitter through a super short low loss cable into the scope, considered the golden waveform
<azonenberg> the other through a long lossy cable
<azonenberg> Then see how close the de-embed looks
<azonenberg> Longer term i'll want to support stacking multiple s2p's in a single de-embed
<azonenberg> which would be pretty simple i think, most of the compute is in the FFT
<lain> sounds reasonable
<azonenberg> short term you'll have to manually type the absolute path as an argument
<azonenberg> until i get a UI for it set up
<azonenberg> also now that i think about it, i will want to correct for phase response at some point too. So if you know group delay of an element you can null that out
<azonenberg> i.e. i dont necessarily care about *frequency dependent* delay as much
<azonenberg> but absolute delay i do
<azonenberg> but once i'm doing that it's silly not to de-embed full phase
<azonenberg> The initial PoC will be amplitudes only though just to see how it looks
Degi has quit [Ping timeout: 240 seconds]
Degi has joined #scopehal
electronic_eel has quit [Ping timeout: 258 seconds]
electronic_eel has joined #scopehal
<_whitenotifier-b> [scopehal] pepijndevos commented on issue #179: Add write queueing to transports for better handling of high-latency instruments -
<miek> new toy arrived :D
<miek> now i just need to fix my home network so i can poke at it..
<Degi> neat
<_whitenotifier-b> [scopehal-apps] pepijndevos commented on issue #146: glscopeclient hangs on Rigol MSO5000 -
<pepijndevos> Degi, ^^^ Rigol basically says we're sending the wrong command sequence to read data. I don't think they are correct, but we'll see what they reply next.
<miek> yeah, sounds like they haven't really understood the problem
<pepijndevos> I mean, it's a sensible first line of support reply to make sure some rando on the web is sending the right commands. But *sometimes* getting a *partial* reply sounds... buggy
<pepijndevos> But who knows... maybe setting MODE also blocks until the data is available or something silly like that.
deltab has quit [Ping timeout: 256 seconds]
juli964 has joined #scopehal
m4ssi has joined #scopehal
juli964 has quit [Client Quit]
<Degi> pepijndevos: Have you sent them a trace of the data transferred ovef th esocket
<Degi> I wonder how the web client handles it...
<pepijndevos> Degi, I could not do so in their contact form, but did so in my reply to their email.
<pepijndevos> web client?
<Degi> Good
<Degi> The thing you get when you put the scope IP into a web browser
<pepijndevos> ah yea. it seems like that's just a frame loading an image?
deltab has joined #scopehal
<pepijndevos> Which... so far honestly works better for recording a video of the scope than either their own software or this software
<Degi> hahaha
<pepijndevos> I just pointed OBS to a cropped browser window. It only refreshes every second, but so do either software packages tbh
<pepijndevos> I actually ordered a HDMI USB capture thingy from aliexpress for a few bucks to do this at a higher frame rate.
<Degi> Hmh they have their own software which you can like install as an application?
<pepijndevos> yea
<pepijndevos> I've been meaning to get a wireshark trace of it
<pepijndevos> but it's only windows so have to dig up my old laptop
<Degi> Maybe it runs in wine
<pepijndevos> It's based on labview -.-
<Degi> ugh
<pepijndevos> yea maybe...
<pepijndevos> I suspect it's just too slow to trigger the bug
<pepijndevos> wtf is that?
<Degi> 6 to 1 power coupler for 322 Mhz with a VSWR of 1.005
m4ssi has quit [Remote host closed the connection]
<pepijndevos> But... what *is* a power coupler?
<Degi> It combines 6 RF cables to 1 big cable
<pepijndevos> So like for when you want to hook up 6 2kw transmitters to the same antenna??
<Degi> yes
<pepijndevos> I am disturbed and impressed
<Degi> I mean theres bigger onestoo lol
<_whitenotifier-b> [scopehal] azonenberg opened issue #183: Add S-parameter de-embed filter -
<_whitenotifier-b> [scopehal] azonenberg labeled issue #183: Add S-parameter de-embed filter -
<_whitenotifier-b> [scopehal] azonenberg assigned issue #183: Add S-parameter de-embed filter -
<_whitenotifier-b> [scopehal] azonenberg opened issue #184: Add cable/fixture emulation filter -
<_whitenotifier-b> [scopehal] azonenberg labeled issue #184: Add cable/fixture emulation filter -
<_whitenotifier-b> [scopehal] azonenberg pushed 1 commit to master [+4/-0/±5]
<_whitenotifier-b> [scopehal] azonenberg e7043d9 - Initial SxP parser. Created skeleton of de-embedding filter.
<azonenberg> ok so i now have the core of a de-embed filter. It doesn't do de-embedding, but does literally everything *else*
<azonenberg> more specifically, it can load a SxP from disk, resample to arbitrary frequencies between points
<azonenberg> convert the waveform from time to frequency domain
<azonenberg> then convert back and correctly rescale
<azonenberg> But i don't actually do any frequency domain transformations to the signals yet
maartenBE has quit [Ping timeout: 265 seconds]
maartenBE has joined #scopehal
<_whitenotifier-b> [scopehal-apps] pepijndevos commented on issue #146: glscopeclient hangs on Rigol MSO5000 -
<_whitenotifier-b> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±2]
<_whitenotifier-b> [scopehal] azonenberg 041f512 - SParameterVector: fixed broken interpolation
<_whitenotifier-b> [scopehal] azonenberg 0b35104 - DeEmbedDecoder: initial support for amplitude correction (see #183). Does not support phase correction yet.
<azonenberg> pepijndevos: LOL
<azonenberg> the rigol software has no channel to channel sync?
<pepijndevos> Doesn't seem like it...
<pepijndevos> I mean, that's the entire reason you do single shot in a loop right?
<Degi> Wait what do you mean? Per-channel time offset?
<pepijndevos> They run on auto, and I was curious how they do it. Apparently they just... ignore the problem
<pepijndevos> Degi, you can get two traces from different triggers.
<Degi> huh?
<pepijndevos> Because the channels are just read one by one
<pepijndevos> so it could be SOURCE CHAN1, DATA? [trigger] SOURCE CHAN2, DATA? and you'd get the *new* data for channel 2
<pepijndevos> For this reason scopehal runs SING, loops on TRIG?, reads all channels, and runs another SING
<Degi> Hmh isnt that the purpose of the trigger that it records a trace of each channel with the same time frame etc
<Degi> uhuhu
<Degi> When its in auto?
<Degi> Why isnt there a get all data command anyways
<pepijndevos> If only...
<pepijndevos> Or transactions hehe
<Degi> Hmh
<Degi> Actually blondel might beat rigol...
<Degi> At least the 4 ch version
<Degi> I mean a rigol for 1 k has 70 MHz, 200 Mpts sample depth, some weird bugs, is closed source etc
<azonenberg> signal integrity? what's that
<Degi> second link broke
<azonenberg> 2x 6ft RG188, 2x 1ft RG174, a bunch of couplers, and a lossy pcb transmission line
<azonenberg> Degi: try again
<azonenberg> not perfect but a good start
<Degi> That counts as spaghetti?
<Degi> Oh neat square wave
<pepijndevos> Is there a way to overlay two channels in the same window?
<pepijndevos> How does VXI-11 compare to plain SCIP over TCP? I know very little about these kind of protocols
<pepijndevos> It kind of seems to have some error handling?
<pepijndevos> Can I just swap out SCPILxiTransport in the rigol driver? XD
<Degi> Can u just select LXI when u start scopehal?
<Degi> Or is that hardcoded...
<azonenberg> degi, pepijndevos: drivers don't hardcode anything to do with transports
<azonenberg> any driver should be pairable with any transport
<azonenberg> pepijndevos: as of now you cannot stack two analog channels in one waveform areaa
<Degi> Yes thats what I thought...
<azonenberg> it will probably happen at some point but hasnt been a high priority for me
<Degi> Hmh what at some point could be fun would be writing arbitrary math code. Maybe as a compute shader.
<Degi> Or even arbitrary render boxes with vertex / fragment shader xD
<pepijndevos> I don't see the transport. Maybe I don't HAS_LXI
<pepijndevos> Hrm, downside of your recursive git pull changes is that they undid my timeout fixes locally because they have not been merged yet
<pepijndevos> I HAS_LXI now
<Degi> Nice
juli964 has joined #scopehal
<_whitenotifier-b> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±3]
<_whitenotifier-b> [scopehal] azonenberg 28b440a - Finished initial phase correction for de-embedding. Fixes #183.
<_whitenotifier-b> [scopehal] azonenberg closed issue #183: Add S-parameter de-embed filter -
juli964 has quit [Quit: Nettalk6 -]