azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-apps, https://github.com/azonenberg/scopehal, https://github.com/azonenberg/scopehal-docs | Logs: https://freenode.irclog.whitequark.org/scopehal
_whitelogger has joined #scopehal
juli966 has quit [Quit: Nettalk6 - www.ntalk.de]
Degi has quit [Ping timeout: 264 seconds]
Degi has joined #scopehal
_whitenotifier-f has joined #scopehal
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±3] https://git.io/JT0hb
<_whitenotifier-f> [scopehal] azonenberg 27a5639 - FilterParameter: added m_fileIsOutput. Fixes #303.
<_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
<_whitenotifier-f> [scopehal-apps] azonenberg fba3098 - FilterDialog: check m_fileIsOutput and update UI accordingly
Pretzel4Life has joined #scopehal
Pretzel4Ever has quit [Ping timeout: 256 seconds]
<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]
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
Kenley has joined #scopehal
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<Kenley> Just checking first - y'all have no problems with merging and squashing my pull request when it's ready, right?
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<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
<Kenley> Just starting Windows support now.
<Kenley> Let me clean some stuff up first.
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<Kenley> azonenberg: Feel free to merge and squash now for Windows!
<azonenberg> Kenley: it says "we are currently unable to download the log" when i try to view build output
<Kenley> for Linux
<Kenley> It shows for me.
<azonenberg> Hmm, permissions problem somewhere?
<Kenley> Sent you an invite as a collaborator.
<Kenley> I can summarize it as "the log output shows that glscopeclient can build successfully"
<azonenberg> Yeah, it's more "the log output should be publicly viewable and isn't"
<azonenberg> oh, derp
<Kenley> What happened?
<azonenberg> it was on my end, just had to add a noscript exception
<Kenley> LOL
<azonenberg> new subdomain i didn't have whitelisted
<azonenberg> Ok so, suppose i merge this build.yml
<azonenberg> what do i have to do on the repo to configure CI to actually execute?
<Kenley> Nothing.
<azonenberg> github does it automatically?
<Kenley> GitHub Actions is built-in.
<Kenley> Yep.
<azonenberg> Interesting
<Kenley> It's that magical.
<_whitenotifier-f> [scopehal-apps] azonenberg closed pull request #238: Add continuous integration configuration - https://git.io/JTBz6
<_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]
<_whitenotifier-f> [scopehal-apps] azonenberg commented on issue #239: Continuous integration setup - https://git.io/JTE8X
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