azonenberg changed the topic of #scopehal to: ngscopeclient, libscopehal, and libscopeprotocols development and testing | https://github.com/ngscopeclient/scopehal-apps | Logs: https://libera.irclog.whitequark.org/scopehal
Degi has quit [Ping timeout: 246 seconds]
Degi has joined #scopehal
<_whitenotifier-3> [scopehal-apps] azonenberg pushed 5 commits to master [+0/-14/±54] https://github.com/ngscopeclient/scopehal-apps/compare/b5d78fa6149f...e295b011eaa3
<_whitenotifier-3> [scopehal-apps] azonenberg d058cff - Moved transport creation to AddInstrumentDialog and out of child classes
<_whitenotifier-3> [scopehal-apps] azonenberg 3a58bc6 - Add dialogs: now enumerate driver names in AddInstrumentDialog
<_whitenotifier-3> [scopehal-apps] azonenberg 71adaa7 - Began AddInstrumentDialog unification
<_whitenotifier-3> [scopehal-apps] ... and 2 more commits.
<_whitenotifier-3> [scopehal] azonenberg closed pull request #882: RigolOscilloscope: add DHO4000 Xorigin support and bandwidth/memory option detection - https://github.com/ngscopeclient/scopehal/pull/882
<_whitenotifier-3> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±4] https://github.com/ngscopeclient/scopehal/compare/1a10421138d8...0891405f0eda
<_whitenotifier-3> [scopehal] azonenberg 0891405 - Merge pull request #882 from acceleratedtech/jwise/dho4000-xorigin RigolOscilloscope: add DHO4000 Xorigin support and bandwidth/memory option detection
<d1b2> <josHua> hm ok, it looks lik eI'm ready to make glscopeclient useful
<d1b2> <josHua> can I get glscopeclient to load a waveform from the scope without recapturing it?
<d1b2> <josHua> like, I captured an event on the scope, then started ngscopeclient
<d1b2> <azonenberg> you mean ngscopeclient? and no, not currently. that's...
<d1b2> <azonenberg> sec
<d1b2> <azonenberg> open feature request, not SUPER technically difficult... for most scopes it's basically just injecting a fake trigger event and forcing a waveform download
<d1b2> <azonenberg> just requires someone who understands the acquisition flow well and isn't doing anything more important
<d1b2> <josHua> I can make it happen again, it would just be annoying because I am too cheap for sensepeek probes and too lazy to solder to my board because I hope I will understand what is wrong if I get a single capture 🙂
<d1b2> <azonenberg> i.e. either somebody with some spare time on their hands, or me at some point in the indefinite future :p
<d1b2> <azonenberg> So we do support importing binary waveform files from most scopes
<d1b2> <azonenberg> so if you just need it as a one-off right now, save to a thumbdrive and import the binary file offilne
<d1b2> <azonenberg> pretty sure we support the rigol binary import format
<d1b2> <azonenberg> anyway tl;dr it's one of several dozen "nice to have but not top of my priority list" things
<d1b2> <josHua> yes, fair enough
<d1b2> <azonenberg> that i will get to eventually unless somebody sends a PR first
<d1b2> <josHua> hm the SPI decoder does not seem to like having CS# disconnected
<d1b2> <azonenberg> Nope, the current decode requires CS# since it uses falling edges to synchronize to byte boundaries
<d1b2> <azonenberg> (so it can't be directly used for the weird not-quite-spi flavors that have an end-of-message strobe or similar)
<d1b2> <josHua> hm can I get a Step to have a negative step position?
<d1b2> <josHua> a Step Position of 0 seems to be exactly at the trigger (relative to my hardware inputs), but I would like to have it be somewhat before the trigger
<d1b2> <josHua> haha okay I gave it a Deskew, that did it
<d1b2> <azonenberg> yeah all of the generation filters expect to start outputting samples at T=0
<d1b2> <azonenberg> since most scopes have T=0 as the start of the waveform
<d1b2> <josHua> interesting. so maybe my Xoffset was not correct. I specify T=0 as the trigger point
<d1b2> <azonenberg> ... oh
<d1b2> <azonenberg> No, that needs to get fixed to make it consistent with other scopes
<d1b2> <josHua> ops.
<d1b2> <azonenberg> The scopehal convention is that T=0 is start of the acquisition
<d1b2> <azonenberg> then there should be a trigger arrow up top you can drag around anywhere within the window to move the trigger position
<d1b2> <azonenberg> that the trigger offset controls
<d1b2> <josHua> hm probably the above PR should be (partially) backed out in this case.
<d1b2> <azonenberg> I'll keep it for now as it's better than no driver support, but please fix when you get a chance
<d1b2> <azonenberg> The only time a scope should have a waveform not start at T=0 is if you are doing a multi-scope setup
<d1b2> <azonenberg> and the second scope is set to trigger before the primary
<d1b2> <azonenberg> (T=0 in this case is the start of the primary scope's acquisition)
<d1b2> <josHua> the Rigol, on screen, declares T=0s to be the trigger
<d1b2> <azonenberg> yeah but in order to present a consistent UI across scopes we have to deviate from what the scopes do in a lot of cases
<d1b2> <josHua> yeah that is fine, that is just the source of my confusion
<d1b2> <josHua> for now I am just using what I have to debug my problem 🙂
<d1b2> <azonenberg> Fair enough
<d1b2> <azonenberg> (meanwhile i'm neck deep in GUI refactoring ripping out thousands of lines of copy-pasted boilerplate that can be made much smaller)
<d1b2> <josHua> using ngscopeclient as a digital SPI decoder definitely feels like using a tactical nuke to kill an ant
<_whitenotifier-3> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-8/±4] https://github.com/ngscopeclient/scopehal-apps/compare/e295b011eaa3...1ccf05ab337c
<_whitenotifier-3> [scopehal-apps] azonenberg 1ccf05a - Removed all remaining AddInstrumentDialog-derived copypasta
<d1b2> <azonenberg> lol
<d1b2> <azonenberg> i once used a 16 GHz scope that is worth almost as much as my house to decode a uart
<d1b2> <azonenberg> so...
<d1b2> <azonenberg> in my defense it said "serial data analyzer" on the front panel and i needed to decode serial data :p
<d1b2> <azonenberg> (and, more seriously, my other scope was out for service so it was this or nothing)
<d1b2> <josHua> I have a Saleae Logic Pro 16 here, the probes are just the wrong shape for this unless I am willing to turn on the soldering iron
<d1b2> <azonenberg> BTW did you notice the new contextual-help status bar?
<d1b2> <azonenberg> any thoughts on it? any spots where i don't currently have a help message that you think it might be beneficial?
<d1b2> <josHua> the help bar that tells me what the mouse buttons are oging to do?
<d1b2> <azonenberg> yeah
<d1b2> <josHua> I found this useful
<d1b2> <azonenberg> it will eventually list contextual hotkeys, once we have them
<d1b2> <azonenberg> i.e. shortcuts that apply to the object under the mouse rather than application global
<d1b2> <duskwuff> "here I am, brain the size of a planet, and they ask me to…"
<d1b2> <azonenberg> Lol
<d1b2> <azonenberg> i mean i knew exactly what i was doing i just thought it was ludicrous
<d1b2> <josHua> I have been fighting with the waveform viewer quite a bit; I have three linear input devices on my desk (a mouse, a Magic Trackpad, and a spacemouse), and the scroll wheels on the mouse are the best I've gotten so far, but I definitely wish I could pinch-to-zoom on the Magic Trackpad or use the spacemouse
<d1b2> <josHua> (n.b.: many people will tell you that a space mouse is life changing for 3D cad. this is kind of true, but it is really life changing as a left-hand input device for KiCAD for me)
<d1b2> <azonenberg> I'm not sure what pinch-to-zoom does as far as what messages it actually sends to the application
<d1b2> <azonenberg> i'm all for adding support for new input deviecs
<d1b2> <azonenberg> my biggest annoyance is getting my laptop touchpad to register drags on the outline of waveform groups
<d1b2> <azonenberg> of filter groups*
<d1b2> <azonenberg> so i might see about enlarging that hitbox
<d1b2> <josHua> if you don't own one, get one, and spend a day using it in your favorite 3D CAD tool -- then spend a day using it in KiCAD. you will then be instantly motivated to add support for it to ngscopeclient. I have the cheapest one, the SpaceMouse Wireless Bluetooth Edition, and it is absolutely fine for everything I care about.
<d1b2> <azonenberg> I have an elgato stream deck i bought planning to use to add support for ngscopeclient in
<d1b2> <azonenberg> but i havent found the right use cases for more buttons yet
<d1b2> <azonenberg> most of the time i find myself driving it almost entirely by mouse
<d1b2> <josHua> yeah, life is whatever with more buttons, but life with more axes, man, it's what we needed
<d1b2> <azonenberg> Lol
<d1b2> <azonenberg> I'm normally a mouse-and-keyboard gamer but for microscopes, joysticks are where it's at
<d1b2> <azonenberg> i have my CNC microscope set up with a logitech gaming joystick
<d1b2> <azonenberg> x/y do what you'd expect, the hat on top controls focus as i found that easier to do without moving the x/y axes than twist
<d1b2> <azonenberg> throttle controls motion sensitivity, trigger snaps a photo
<d1b2> <josHua> oh that is pretty good
<d1b2> <josHua> I probably woudl use Z for focus on the spacemouse, and probably not use any of yaw/pitch/roll
<d1b2> <azonenberg> wrt pinch to zoom what exactly would you want it to do
<d1b2> <azonenberg> behave like the scroll wheel does not?
<d1b2> <azonenberg> now*
<d1b2> <josHua> yeah, continuously and linearly
<d1b2> <azonenberg> and does pinch not actually send scroll events?
<d1b2> <josHua> it does not appear to
<d1b2> <josHua> two finger scroll does send scroll events, both X and Y scroll
<d1b2> <azonenberg> Do some digging, it's like two lines of code once i can actually trap the event
<d1b2> <josHua> (it is hilarious but absolutely chaotic)
<d1b2> <azonenberg> Lol
<d1b2> <azonenberg> We can definitely do some work to make the input work better on touchpads
<d1b2> <josHua> in a pinch to zoom world, you definitely do not want Y scroll to mean zoom
<d1b2> <azonenberg> i wonder if there's a way to determine if the current input event is coming from a touchpad or a mouse
<d1b2> <azonenberg> or if it'll have to be a preference
<d1b2> <josHua> I have like zero knowledge of osx's input subsystem, but you definitely can know
<d1b2> <azonenberg> yeah its more whether glfw exposes it to use in a useful way
<d1b2> <azonenberg> or if we'll have to do ugly platform specific hacks
<d1b2> <josHua> pinch and pan does work as I expect in KiCAD anyway
<d1b2> <azonenberg> to us*
<d1b2> <azonenberg> anyway, check the tracker but i dont think there is an issue for this
<d1b2> <azonenberg> file an issue for more generally "better laptop touchpad support"
<d1b2> <azonenberg> and we can spend some time thinking about what that will look like
<_whitenotifier-3> [scopehal-apps] jwise opened issue #741: input devices: better touchpad support (in particular, on MacOS) - https://github.com/ngscopeclient/scopehal-apps/issues/741
<_whitenotifier-3> [scopehal-apps] jwise opened issue #742: input devices: SpaceMouse support - https://github.com/ngscopeclient/scopehal-apps/issues/742
_whitenotifier-3 has quit [Ping timeout: 245 seconds]
_whitenotifier-a has joined #scopehal
<_whitenotifier-a> [scopehal-apps] azonenberg pushed 2 commits to master [+0/-0/±3] https://github.com/ngscopeclient/scopehal-apps/compare/1ccf05ab337c...f9f57757e52c
<_whitenotifier-a> [scopehal-apps] azonenberg 8386bc2 - Filter graph: Enlarged group border to make them easier to resize
<_whitenotifier-a> [scopehal-apps] azonenberg f9f5775 - Removed lots of copypasta functions in MainWindow_Menus and replaced them with a single generic version
miek has quit [Ping timeout: 252 seconds]
miek has joined #scopehal
<_whitenotifier-a> [scopehal] azonenberg opened issue #885: J1939 transport layer decode - https://github.com/ngscopeclient/scopehal/issues/885