<_whitenotifier-f>
[scopehal] azonenberg closed issue #303: FilterParameter: add hint to allow filename type to be specified as input or output - https://git.io/JTUC0
<_whitenotifier-f>
[scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2] https://git.io/JT0hA
<azonenberg>
So, i just did some additional modeling of the AKL-PT2 to see what i can do about losses
<azonenberg>
Right now, the loss at 5 GHz as measured by the VNA is -4.5 dB. Using 5 GHz rather than 6 because there's some kind of resonance at around 5.8 that i'm ignoring
<azonenberg>
Simulated loss for bare copper (so conductor and dielectric losses only) is 1.19 dB
<azonenberg>
-1.19*
<azonenberg>
and -1.79 dB with coverlay/soldermask
<azonenberg>
assuming reasonably typical Er/Df values of 3.66 / 0.02
<azonenberg>
Assuming no loss elsewhere in the system, the delta from bare copper to measured is -3.3 dB. The line is about 5.5 inches long so that comes out to -0.6 dB/inch of extra loss beyond simulation
<azonenberg>
Some of that is probably copper roughness effects which none of my sims model, but that number does sound about the right order of magnitude for ENIG losses
<azonenberg>
Assuming somewhat arbitrarily that 0.2 dB of that 0.6 dB/in is roughness and other effects i can't do much about, and 0.4 are plating losses
<azonenberg>
this means we should expect about 1.1 dB more loss than simulation across the board if we use something other than ENIG
<azonenberg>
This suggests that if I go with soldermask/coverlay on the flex rather than leaving it all as bare ENIG, I should expect approximately -1.79 + -1.1 = -2.89 dB of insertion loss at 5 GHz
<azonenberg>
And if I go with immersion silver, I should expect roughly -1.19 + -1.1 = -2.29 dB at 5 GHz
<azonenberg>
which roughly means we should expect the masked probe to be 5 GHz bandwidth and the silver version to be around 6
<azonenberg>
up from the 3 GHz of the current all-ENIG prototype
<azonenberg>
i've already ordered a round two enclosure for the AKL-PT2 so i think what i'm going to do now is make a few tweaks to the soldermask layout on the PT2 and send another iteration out to oshpark with soldermask and see how close performance is to these models
electronic_eel_ has joined #scopehal
electronic_eel has quit [Ping timeout: 272 seconds]
<azonenberg>
Kenley: Yeah I'm waiting for you to declare it finished then i'll give it a quick review and we can go merge
<Kenley>
Most of the commits are me trying to figure out GitHub Actions steps, but I have Linux running and it looks like it's going to pass.
<azonenberg>
Grreat. Where are you with Windows support?
<azonenberg>
Also if you'd prefer, I'm OK with merging a Linux-only CI setup to master first so we can do larger scale testing with actual project commits etc as development proceeds
<azonenberg>
Then you can work on windows support and merge separately when it's ready
<_whitenotifier-f>
[scopehal-apps] azonenberg pushed 1 commit to master [+1/-0/±0] https://git.io/JTEYa
<_whitenotifier-f>
[scopehal-apps] kench 111e088 - Add continuous integration configuration (#238) * Add initial .travis.yml file Add initial Travis CI configuration for Linux * Update Travis CI Ubuntu version. The default Ubuntu version (Xenial) used by Travis CI does not have liblxi available. * Fix build script * Add experimental Windows build * Fix syntax issue with .travis.yml * Add Linux build GitHub Action * Update
<_whitenotifier-f>
linux-build.yml * Update linux-build.yml * Update linux-build.yml * Update linux-build.yml * Update linux-build.yml * Update linux-build.yml * DEBUG - Get directory listing * Fix working directory for build command * Recursively checkout submodules * Delete .travis.yml * Update and rename linux-build.yml to build.yml
<Kenley>
I was very skeptical at first, but it's pretty fantastic.
<azonenberg>
So now i guess i have to figure out how to push outputs to irc
<_whitenotifier-f>
[scopehal-apps] kench forked the repository - https://git.io/JTBRg
<azonenberg>
But that's a lower priority
<azonenberg>
Kenley: so one thing i would like to do longer term is do builds with static analysis (cmake -DANALYZE=1) however this is currently very slow and also has a bunch of false positives Bird|otherbox is still working on
<azonenberg>
Don't turn it on yet
<azonenberg>
but just a FYI
<_whitenotifier-f>
[scopehal-apps] azonenberg commented on issue #191: Channel properties dialog should allow reading/writing display names of channels on the hardware - https://git.io/JTE3q
<_whitenotifier-f>
[scopehal-apps] azonenberg closed issue #191: Channel properties dialog should allow reading/writing display names of channels on the hardware - https://git.io/JUam3
<_whitenotifier-f>
[scopehal-apps] azonenberg labeled issue #241: Unit testing - https://git.io/JTE3K
<_whitenotifier-f>
[scopehal-apps] azonenberg opened issue #241: Unit testing - https://git.io/JTE3K
<azonenberg>
Kenley: So from talking to some folks, it seems like running one action upon completion of another generally doesn't work
<azonenberg>
And the easiest way to get IRC notifications from a build is to actually have the build itself run a script that pushes a notification to irc
<azonenberg>
Can you look into doing that after you've got the windows build figured out?
<Kenley>
Makes sense.
<Kenley>
Can do.
<azonenberg>
Great thanks
<azonenberg>
If you want to tackle unit testing (#241) as well, that would be nice longer term. But it's not a rush, there's no point in having a test framework set up until we have something for it to run
<azonenberg>
For the short term, scope drivers will not be testable offline. This isn't great, as most of libscopehal is actually hardware drivers
<azonenberg>
but unless we had a huge farm of scopes dedicated to testing i don't see a viable way to do it
<Kenley>
Is libscopehal a shared library?
<azonenberg>
Yes
<azonenberg>
as is libscopeprotocols, which is a separate so under the same repo
<azonenberg>
roughly speaking scopehal is hardware drivers and base classes, scopeprotocols is filters and protocol decodes
<azonenberg>
The LeCroy driver might be possible to test on a dedicated worker node if you installed MAUI Studio, which is basically LeCroy's scope firmware repackaged to run standalone
<Kenley>
I think decoupling the libscopehal / libscopeprotocols build from scopehal-apps allows for better isolation and tracing of issues.
<azonenberg>
Yes I think so too, but that's a longer term todo
<azonenberg>
Having all of the tests and build infrastructure under scopehal-apps, while it may not be ideal, is better than no tests at all
<Kenley>
True.
<azonenberg>
Anyway, back to what i was saying, i do not see scopehal as being testable for the most part for the foreseeable future
<azonenberg>
scopeprotocols i think we can develop a test suite for
<Kenley>
Update on Windows build. The first successful build should be completing in a few minutes. :)
<azonenberg>
since it can run in isolation without needing real hardware, we just need canned test vectors and/or a procedural input generator
<azonenberg>
I think we should use procedural inputs whenever possible because they're a) smaller and b) easier to understand for debug
<azonenberg>
basically i want to fuzz our decodes
<azonenberg>
by generating plausible inputs and adding noise or occasional errors to them
<Kenley>
I might need your help troubleshooting the Windows build. I'm seeing the same OOM and header issues that I saw in Travis.
<azonenberg>
And develop a framework for doing this
<azonenberg>
Hmmm
<azonenberg>
bvernoux: if you're around, want to look into this?
<azonenberg>
have you ever seen this issue? i know you've done windows builds
<_whitenotifier-f>
[scopehal] azonenberg labeled issue #313: Refactoring: pull waveform generation functions out of DemoOscilloscope and make them global - https://git.io/JTEGs
<_whitenotifier-f>
[scopehal] azonenberg opened issue #313: Refactoring: pull waveform generation functions out of DemoOscilloscope and make them global - https://git.io/JTEGs
<_whitenotifier-f>
[scopehal] azonenberg labeled issue #313: Refactoring: pull waveform generation functions out of DemoOscilloscope and make them global - https://git.io/JTEGs
<Kenley>
I'm going to bed. Happy Tuesday.
<_whitenotifier-f>
[scopehal-apps] azonenberg opened issue #242: Develop initial proof-of-concept unit test for FrequencyMeasurement filter - https://git.io/JTEGh
<_whitenotifier-f>
[scopehal-apps] azonenberg labeled issue #242: Develop initial proof-of-concept unit test for FrequencyMeasurement filter - https://git.io/JTEGh
Kenley has quit [Read error: Connection reset by peer]
azonenberg_work has quit [Ping timeout: 256 seconds]
azonenberg_work has joined #scopehal
<_whitenotifier-f>
[scopehal] azonenberg pushed 2 commits to master [+2/-0/±5] https://git.io/JTEEm
<_whitenotifier-f>
[scopehal] azonenberg 7cfe661 - Refactored TestWaveformSource into a separate class. Fixes #313.
<_whitenotifier-f>
[scopehal] azonenberg 771ccf8 - TestWaveformSource: noise_amplitude is now an argument
<_whitenotifier-f>
[scopehal] azonenberg closed issue #313: Refactoring: pull waveform generation functions out of DemoOscilloscope and make them global - https://git.io/JTEGs
tnt has quit [Ping timeout: 265 seconds]
tnt has joined #scopehal
<_whitenotifier-f>
[scopehal] azonenberg pushed 2 commits to master [+2/-0/±10] https://git.io/JTEX1
<_whitenotifier-f>
[scopehal] azonenberg bc6b3d6 - Initial skeleton of TestCase. Refactored TestWaveformSource to take an external mt19937 object to allow deterministic seeding.
<_whitenotifier-f>
[scopehal] azonenberg f6d9c69 - Various improvements to TestCase class needed for unit testing
<_whitenotifier-f>
[scopehal-apps] azonenberg pushed 2 commits to master [+4/-0/±2] https://git.io/JTEXF
<_whitenotifier-f>
[scopehal-apps] azonenberg 9e0de80 - Initial test case for FrequencyMeasurement filter. Fixes #242.
<_whitenotifier-f>
[scopehal-apps] azonenberg cf7d9a7 - Merge branch 'master' of github.com:azonenberg/scopehal-apps
<_whitenotifier-f>
[scopehal-apps] azonenberg closed issue #242: Develop initial proof-of-concept unit test for FrequencyMeasurement filter - https://git.io/JTEGh
<_whitenotifier-f>
[scopehal-apps] azonenberg commented on issue #241: Unit testing - https://git.io/JTE1R
<Bird|otherbox>
azonenberg: nice :)
<azonenberg>
How's the static analysis stuff going?
<azonenberg>
also, is it cppcheck or clang-analyzer that's being so slow?
<azonenberg>
when i run analysis without -j it takes an hour or more to run
<Bird|otherbox>
I need to rework my repo to get the forks out of it
<Bird|otherbox>
I'm not sure, I'd have to wallclock it and find out
<azonenberg>
Because i would love to get analysis running as part of the CI process
<azonenberg>
but i feel like github wouldn't be happy with an 8-hour build :p
<Bird|otherbox>
also: the fix for the noreturn warnings is just adding a -D__GNUC__ to the cppcheck invocation
<azonenberg>
oh that's easy lol
<azonenberg>
send a PR for that asap and i'll close the issue
<azonenberg>
anyway, between you and Kenley hopefully we can get a much nicer build/test process going. Long term i want CI builds to include both static analysis and unit tests
<azonenberg>
speaking of which, we also need people to write test cases for filters... I did this one but building tests for the entire suite of filters we support will take a long time
<azonenberg>
especially more complex ones like Ethernet frames if we want to actually fuzz the decodes with random data rather than just playing back a scope waveform
<azonenberg>
long term i think that's what we need for robustness though
maartenBE has quit [Ping timeout: 256 seconds]
maartenBE has joined #scopehal
juli966 has joined #scopehal
juli966 has quit [Client Quit]
<_whitenotifier-f>
[scopehal-apps] fspadini forked the repository - https://git.io/JvRcy
juli966 has joined #scopehal
bvernoux has quit [Quit: Leaving]
<Bird|otherbox>
azonenberg: re: testing: have you looked at Catch2?
<azonenberg>
Bird|otherbox: No
<azonenberg>
CTest is the only unit test framework i have experience with other than the homegrown one i used in my thesis for hardware-in-loop testing
<azonenberg>
I dont care what we use as long as it works and is easy to configure
<Bird|otherbox>
ah, I've had a good time with Catch2 @ $work -- it's pretty much the epitome of "does not need configuration" (header-only, even)
<azonenberg>
Did you look at my test case?
<azonenberg>
It was structured for the CTest convention - not sure what other tools do
<azonenberg>
where you have one binary per test case where main() returns success or failure