azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-apps | Logs: https://freenode.irclog.whitequark.org/scopehal
ericonr has quit [Ping timeout: 265 seconds]
Degi_ has joined #scopehal
Degi has quit [Ping timeout: 256 seconds]
Degi_ is now known as Degi
<d1b2> <Hardkrash> Though for derived units and math channels. Could the physical quantities and math channels get uncertainty built in? In python I use Measurements from pint https://pint.readthedocs.io and that uses uncertainties https://pythonhosted.org/uncertainties/tech_guide.html#linear-method Not sure if there is a nice library in c/c++ for this same work.
<azonenberg> hardkrash: Hmmm
<azonenberg> So i think the easiest way would be to add that as metadata to the waveform object
<azonenberg> we have x and y axis units
<azonenberg> so we could add uncertainty headers to each as well
<azonenberg> i'm thinking for a first order implementation, uncertainties are probably gain and offset
<azonenberg> i.e. there is an error term that varies linearly with the magnitude of the sample
<azonenberg> and an error term whose magnitude is constant
<azonenberg> so basically INL and DNL
<azonenberg> given the magnitude of a given sample you could then calculate the total uncertainty as errorA + value*errorB
<d1b2> <Hardkrash> the uncertainties should linearly compute themselves.
<azonenberg> then we'd probably want another value indicating the type of uncertainty too
<azonenberg> is this RMS error? peak to peak? 95% confidence?
<azonenberg> anyway, file a ticket
<azonenberg> i think it would be a useful feature but we need to spend a bit more time thinking about how to design it
<azonenberg> in particular, should it be a property of the unit object or a separate attribute?
<azonenberg> and is there any reason we could ever need a per-sample error (i.e. some measurements have different uncertainties than others in the same waveform)? That would be much more resource intensive than a fixed uncertianty object attached to the entire waveform
<azonenberg> Maybe the best option is for the uncertainty to be part of the unit object?
<azonenberg> so that way we can appropriately handle linear combinations of different units with different error terms
<azonenberg> We'd also have to figure out how to properly propagate uncertainties through filters
<azonenberg> for example if you add or subtract two channels the uncertainty of the result is now the sum of the errors of the inputs, right?
<d1b2> <Hardkrash> I can't recall the specifics, long time ago i knew from college lab classes. now I let that library compute it for me.
<azonenberg> in fact, if we wanted to be nice and rigorous
<d1b2> <Hardkrash> but what you said sounds about right.
<azonenberg> we could even include default error terms in instrument driver classes based on datasheet specs
<d1b2> <Hardkrash> Ohh, Ahh!
<azonenberg> and have the option for the user to include actual error terms based on calibrations
<d1b2> <Hardkrash> that's getting fancy!
<d1b2> <Hardkrash> i think that this really only applies to output units used to setup the scales, not per sample.
<azonenberg> Yeah i agree, i cant think of any situation for per sample errors being useful
<azonenberg> So i think this should be an extension of the unit class
<d1b2> <Hardkrash> so should keep the computations minimal.
<azonenberg> so a unit could hypothetically be "volts with a 95% confidence interval of +/- 5 mV offset and 1% magnituide"
<d1b2> <Hardkrash> yep, and when divided by 0.1mΩ 1% resistor -> Amps at xyz
<azonenberg> Exactly
<azonenberg> if we wanted to be *really* fancy we could add a rendering mode with error bars :p
<d1b2> <Hardkrash> and we now found the next herd of yaks...
<sorear> the problem with sticking an uncertainty on each data point is that people are going to assume the uncertainties are uncorrelated, but most of the causes you just mentioned are systematic
<d1b2> <Hardkrash> interesting point
<azonenberg> it doesnt matter if you just sum the extrema, right?
<sorear> heteroskedasticity seems like more of a thing to deal with _after_ filters, especially division...
<azonenberg> And yes. propagating uncertainty through filters will be its own adventure
<sorear> if they're uncorrelated you add them in quadrature, if they're correlated you add them linearly
<azonenberg> Hmmm
<azonenberg> i think to start, we'll have uncertainty be a property of an instrument channel only, and only supported on a handful of drivers until we figure out a good way to present it to the user
<azonenberg> the unit object's default uncertainty will be "unspecified" meaning accuracy of the measurement is unknown
<azonenberg> and we can gradually propagate it more and more as we improve handling of it
<azonenberg> make sense?
<azonenberg> i dont want to ever imply a measurement is more accurate than it is
<azonenberg> So we'll start by having all measurements be unknown error, then gradually pin down bounds
<d1b2> <Hardkrash> sounds like a reasonable approach, might be good to get some input from research lab folks.
<d1b2> <Hardkrash> How they would want their data rendered from odd ball things.
<azonenberg> Yeah the xdevs people would be good to talk to about this
<azonenberg> File a ticket against the scopehal repo first, we need to define the object model
<azonenberg> then we'll think separately about how to render it in scopehal-apps
<azonenberg> hardkrash: If you file the ticket now i'll tweet out a link and see if i can get some commentary from folks on how best to handle it
<azonenberg> that should get more eyes on it
<d1b2> <Hardkrash> Working on it.
ericonr has joined #scopehal
<d1b2> <Hardkrash> how is this copy? """ Uncertainties with data channels collected either from test equipment or test setups could provide insight into how much you can trust collected and presented data. Starting at a base level of test equipment capabilities and then combinations of other parameters, how do we store this metadata and how does it pass from raw data through filters and up to the user for presentation? One example from IRC conversations would be: >
<d1b2> a unit could hypothetically be "volts with a 95% confidence interval of +/- 5 mV offset and 1% magnitude" This would be measured by a scope channel, then a math filter might divide that channel with a 100mΩ 1% resistor to yield Amp units with the proper combination of error propagation. Linear error propagation may not be the correct option for errors, further discussion is needed. """
<azonenberg> Yeah
<_whitenotifier-4> [scopehal] hardkrash opened issue #399: RFC: Uncertainties associated with channel data. - https://git.io/JYkYZ
<_whitenotifier-4> [scopehal] azonenberg labeled issue #399: RFC: Uncertainties associated with channel data. - https://git.io/JYkYZ
<d1b2> <Hardkrash> Night folks
ericonr has quit [Ping timeout: 245 seconds]
Stephie has quit [Quit: Fuck this shit, I'm out!]
Stephie has joined #scopehal
ericonr has joined #scopehal
bvernoux has joined #scopehal
codysseus has joined #scopehal
Ekho has quit [*.net *.split]
asy_ has quit [*.net *.split]
Error_404 has quit [*.net *.split]
vup has quit [*.net *.split]
agg has quit [*.net *.split]
kbeckmann has quit [*.net *.split]
tnt has quit [*.net *.split]
jn__ has quit [*.net *.split]
noopwafel has quit [*.net *.split]
Bird|otherbox has quit [*.net *.split]
anuejn has quit [*.net *.split]
noopwafel has joined #scopehal
vup has joined #scopehal
tnt has joined #scopehal
Error_404 has joined #scopehal
anuejn has joined #scopehal
jn__ has joined #scopehal
Bird|otherbox has joined #scopehal
kbeckmann has joined #scopehal
agg has joined #scopehal
JJJollyjim has quit [Ping timeout: 240 seconds]
monochroma has quit [Ping timeout: 264 seconds]
promach3 has quit [Ping timeout: 272 seconds]
asy_ has joined #scopehal
monochroma has joined #scopehal
juli968 has joined #scopehal
Ekho has joined #scopehal
StM_ has quit [*.net *.split]
JSharp has quit [*.net *.split]
elms has quit [*.net *.split]
kc8apf has quit [*.net *.split]
sorear has quit [*.net *.split]
agg has quit [*.net *.split]
kbeckmann has quit [*.net *.split]
bvernoux has quit [*.net *.split]
azonenberg has quit [*.net *.split]
smkz has quit [*.net *.split]
deltab has quit [*.net *.split]
lain has quit [*.net *.split]
juli968 has quit [*.net *.split]
monochroma has quit [*.net *.split]
Bird|otherbox has quit [*.net *.split]
anuejn has quit [*.net *.split]
yourfate has quit [*.net *.split]
laintwo has quit [*.net *.split]
deltab has joined #scopehal
StM has joined #scopehal
anuejn has joined #scopehal
kbeckmann has joined #scopehal
juli968 has joined #scopehal
bvernoux has joined #scopehal
monochroma has joined #scopehal
kc8apf has joined #scopehal
azonenberg has joined #scopehal
elms has joined #scopehal
Bird|otherbox has joined #scopehal
lain has joined #scopehal
laintwo has joined #scopehal
agg has joined #scopehal
sorear has joined #scopehal
Bird|otherbox has quit [Remote host closed the connection]
JSharp has joined #scopehal
lain is now known as Guest49079
JSharp has joined #scopehal
JSharp has quit [Changing host]
yourfate has joined #scopehal
agg is now known as Guest23541
Bird|otherbox has joined #scopehal
Guest49079 is now known as lain
smkz has joined #scopehal
JJJollyjim1 has joined #scopehal
gruetzkopf has quit [*.net *.split]
jn__ has quit [*.net *.split]
Stephie has quit [*.net *.split]
sam210723 has quit [*.net *.split]
balrog has quit [*.net *.split]
miek has quit [*.net *.split]
_whitelogger has joined #scopehal
ericonr has joined #scopehal
miek has joined #scopehal
sam210723 has joined #scopehal
balrog has joined #scopehal
bgamari has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
jn__ has quit [*.net *.split]
JJJollyjim1 has quit [*.net *.split]
esden has quit [*.net *.split]
deanforbes_ has quit [*.net *.split]
smkz has quit [*.net *.split]
apo has quit [*.net *.split]
pepijndevos_ has quit [*.net *.split]
jn__ has joined #scopehal
gruetzkopf has joined #scopehal
bgamari has joined #scopehal
JJJollyjim1 has joined #scopehal
deanforbes_ has joined #scopehal
esden has joined #scopehal
pepijndevos_ has joined #scopehal
apo has joined #scopehal
smkz has joined #scopehal
esden has quit [*.net *.split]
deanforbes_ has quit [*.net *.split]
smkz has quit [*.net *.split]
apo has quit [*.net *.split]
pepijndevos_ has quit [*.net *.split]
pepijndevos has joined #scopehal
deanforbes_ has joined #scopehal
m4ssi has joined #scopehal
apo has joined #scopehal
JSharp has quit [*.net *.split]
elms has quit [*.net *.split]
elms has joined #scopehal
JSharp has joined #scopehal
smkz has joined #scopehal
esden has joined #scopehal
asy_ has quit [*.net *.split]
Ekho has quit [*.net *.split]
vup has quit [*.net *.split]
Degi has quit [*.net *.split]
electronic_eel has quit [*.net *.split]
maartenBE has quit [*.net *.split]
Implant has quit [*.net *.split]
azonenberg_work has quit [*.net *.split]
Error_404 has quit [*.net *.split]
tnt has quit [*.net *.split]
noopwafel has quit [*.net *.split]
codysseus has quit [*.net *.split]
Famine_ has quit [*.net *.split]
wbraun has quit [*.net *.split]
d1b2 has quit [*.net *.split]
d1b2 has joined #scopehal
codysseus has joined #scopehal
asy__ has joined #scopehal
Famine_ has joined #scopehal
Implant_ has joined #scopehal
wbraun has joined #scopehal
maartenBE has joined #scopehal
Famine_ has quit [Changing host]
Famine_ has joined #scopehal
azonenberg_work has joined #scopehal
codysseus has quit [Client Quit]
Error_404 has joined #scopehal
Error_404 is now known as Guest90458
vup has joined #scopehal
Degi has joined #scopehal
electronic_eel has joined #scopehal
tnt has joined #scopehal
noopwafel has joined #scopehal
Ekho has joined #scopehal
JJJollyjim1 has quit [Ping timeout: 258 seconds]
JJJollyjim1 has joined #scopehal
promach3 has joined #scopehal
m4ssi has quit [Remote host closed the connection]
apo has quit [Ping timeout: 258 seconds]
sorear has quit []
sorear has joined #scopehal
bvernoux has quit [Quit: Leaving]
bvernoux has joined #scopehal
apo1 has joined #scopehal
balrog has quit [Quit: Bye]
balrog has joined #scopehal
pepijndevos has quit [Ping timeout: 240 seconds]
pepijndevos has joined #scopehal
bvernoux has quit [Read error: Connection reset by peer]
apo1 is now known as apo
juli968 has quit [Quit: Nettalk6 - www.ntalk.de]
<azonenberg> LOOOL
<azonenberg> ok i need to do a full writeup on xdevs
<azonenberg> But my D1330-PS probe system came in
<azonenberg> this is hilarious
<azonenberg> Do you know what the mounting bracket they use for the handheld browser (Dxx30-PT) is?
<azonenberg> Lego Technic parts
<azonenberg> All of the Dxx0-PT-INTERLOCK parts are unmodified lego pieces. I had my suspicion just from looking at them, then popped one under the microscope and found a LEGO(R) stamp on the plastic
<azonenberg> The handpiece Dxx0-PT-WAND and Dxx0-PT-XYZ-POSITIONER, as well as the ball joint Dxx0-PT-SWIVEL, appear to be custom devices including a mix of custom injection molded plastic, custom machined metal, and lego pieces
<azonenberg> i mean i'm not complaining, it works well
<azonenberg> i may have to look into lego parts for my own probe holding purposes lol
<monochroma> XD
<monochroma> azonenberg: any photos?
<azonenberg> Not yet, it just came in a couple minutes ago. i'll text you a quick phone pic
<azonenberg> the gray piece has an actual lego stamp on it, several of the others are obvious lego technic parts as well
<miek> hah nice. you can just barely see it in the datasheet https://i.imgur.com/xybuWU6.png
<azonenberg> The wand and Dxx30-PT look to be a technic part with custom plastic around it
<azonenberg> curious if the lego group knows or if they just went to the closest toys-r-us and ordered a bunch lol
<miek> reminds me of that company making near-field probes that uses ballpoint pen parts
<azonenberg> nearfield probes?
<azonenberg> the only probe i know built in a ballpoint pen is the auburn instruments transmission line probe
<azonenberg> the rather sloppy AKL-PT1 competitor that claims 12 GHz bandwidth absurdly flat
<azonenberg> I talked to an engineer at signalhound who uses it, says it's a solid probe for narrowband usage but definitely is not flat and needs to be calibrated with a signal generator to get accurate response
<azonenberg> i.e. you have to know what the attenuation is at your freq of interest and it's not great for broadband stuff like fast digital
<azonenberg> has an 8+ dB S21 range across the band
<azonenberg> Anyway i love the idea of using legos for probe positioning and i may have to experiment a bit lol
<d1b2> <mubes> This SDS2104X+ is likely to take a while. I've made a new driver but there's a lot of borkedness in the SCPI....like no INR command and :TRIGGER:STATUS? stops responding to you when the scope is in stop mode 😦 You can also make it fall over in a big heap if you look at it wrong.
<d1b2> <mubes> ...hoping some of this is stuff I'm doing wrong and/or can work around as opposed to real issues.