azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/glscopeclient/scopehal-apps | Logs: https://libera.irclog.whitequark.org/scopehal
bvernoux has quit [Quit: Leaving]
Degi has quit [Ping timeout: 246 seconds]
Degi has joined #scopehal
d1b22 has joined #scopehal
d1b2 has quit [Read error: Connection reset by peer]
d1b22 is now known as d1b2
<_whitenotifier-e> [scopehal-sigrok-bridge] 602p pushed 1 commit to defacto_trigger [+0/-0/±2] https://github.com/glscopeclient/scopehal-sigrok-bridge/commit/60c1aafa0b0f
<_whitenotifier-e> [scopehal-sigrok-bridge] 602p 60c1aaf - Send actual (rounded) trigger position in captures
<_whitenotifier-e> [scopehal-sigrok-bridge] 602p created branch defacto_trigger - https://github.com/glscopeclient/scopehal-sigrok-bridge
<_whitenotifier-e> [scopehal] 602p opened pull request #596: DSLabs: Recieve actual trigger position from instrument - https://github.com/glscopeclient/scopehal/pull/596
<_whitenotifier-e> [scopehal-apps] 602p opened pull request #415: Don't issue trigger offset update until drag completes - https://github.com/glscopeclient/scopehal-apps/pull/415
<d1b2> <louis> This (PR above) is an open UX question... as PR'ed it dosen't do ->SetTriggerOffset() until you release the drag, which means you don't see the waveform offset move as you drag anymore. This is probably a perf win in some cases, but isn't necessarily wanted.
<azonenberg> yeah i don't like that. it should definitely move as you drag
<d1b2> <louis> Maybe we still want to issue ->SetTriggerOffset() but continue to display the (possibly not-actual after rounding) drag position, that might be better. May want to only issue trigger offset changes at X Hz to avoid tons of traffic?
<azonenberg> Rate limiting stuff like that is very much a nice-to-have. I think it would probably be best done in the driver
<azonenberg> i.e. every call update the cache
<azonenberg> but rate limit updates to be no more than one per X time
<azonenberg> the challenge is if you have one more set call after you send a message then stop dragging the cursor
<azonenberg> that does have to get flushed to hardware eventually
<azonenberg> in general with all of the gain/offset commands there is potential for optimization there
<azonenberg> right now i issue one call every mouse event from the gui library
<_whitenotifier-e> [scopehal-apps] 602p synchronize pull request #415: Don't issue trigger offset update until drag completes - https://github.com/glscopeclient/scopehal-apps/pull/415
<_whitenotifier-e> [scopehal-apps] 602p edited pull request #415: Decouple trigger offset drag position (for scopes with granular triggers) - https://github.com/glscopeclient/scopehal-apps/pull/415
<d1b2> <louis> Sure, changed to update while dragging (while keeping drag position decoupled from scope's view of it's trigger pos to avoid snapping on granular triggers)
<d1b2> <louis> I think the general rate-limiting thing there can be punted to a different issue / done more generally (either in glscope or in scopehal with some shared helper)
<azonenberg> Yeah there is a lot of UI work to do in that regard
<azonenberg> this is what happens when i'm the sole ui dev for the most part :p
<azonenberg> lots of little things that are objectively nice, but i have to put aside to fry bigger fish
<d1b2> <louis> I would be inclined to do it in glscope, since I think the behavior we want is issuing ->SetTriggerOffset() when (it's been X ms since last issued AND it's been dragged by at least one pixel at the current scale) OR when the drag is released
<d1b2> <louis> and then similar logic w/o the one pixel condition for trigger level
<azonenberg> Yeah
<azonenberg> Feel free to explore that
<azonenberg> the main thing is, i want the line to move nicely in the gui as you drag
<azonenberg> it has to update interactively if you drag while the trigger is armed
<azonenberg> you want it to follow the trigger position if you hold the mouse down for several acquisitions
<azonenberg> (but it's ok if there's a small lag there)
<d1b2> <louis> 👍. That's what the current behavior in PR#415 is now.
<d1b2> <louis> I will look at rate limiting drag UI interactions in general in another PR
<azonenberg> So do you think 596/415 are ready to merge now?
<d1b2> <louis> Should be
<_whitenotifier-e> [scopehal] azonenberg closed pull request #596: DSLabs: Recieve actual trigger position from instrument - https://github.com/glscopeclient/scopehal/pull/596
<_whitenotifier-e> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±2] https://github.com/glscopeclient/scopehal/compare/043e324498e1...07c8061d27a0
<_whitenotifier-e> [scopehal] 602p b13d4fc - Recieve actual trigger position from instrument to update scopehal's view
<_whitenotifier-e> [scopehal] azonenberg 07c8061 - Merge pull request #596 from 602p/defacto_trigger DSLabs: Recieve actual trigger position from instrument
<_whitenotifier-e> [scopehal-apps] azonenberg closed pull request #415: Decouple trigger offset drag position (for scopes with granular triggers) - https://github.com/glscopeclient/scopehal-apps/pull/415
<_whitenotifier-e> [scopehal-apps] azonenberg pushed 3 commits to master [+0/-0/±9] https://github.com/glscopeclient/scopehal-apps/compare/440f01196218...3ac304832d07
<_whitenotifier-e> [scopehal-apps] 602p bff62e3 - Don't issue trigger offset update until drag completes
<_whitenotifier-e> [scopehal-apps] 602p f7ecff3 - Issue trigger offset updates while dragging
<_whitenotifier-e> [scopehal-apps] azonenberg 3ac3048 - Merge pull request #415 from 602p/defacto_trigger Decouple trigger offset drag position (for scopes with granular triggers)
<azonenberg> Oh this is nice. I'm switching the sniffer board from a 4:1 to a 2:1 memory controller. Because I'm using DDR3L, the Fmax of the IO at 1.35V ends up being the limiting factor more so than the core
<azonenberg> And by running at 2:1 I save 1.1K LUTs, almost 400 LUTRAMs and 700 FFs
<azonenberg> The fabric side interface drops from 512 bits at 162.5 MHz to 256 bits at 325 MHz
<azonenberg> Which is a much better match to the 312.5 MHz that the logic analyzer capture runs at
<azonenberg> and means less buffering and width conversion is needed
<_whitenotifier-e> [scopehal-sigrok-bridge] 602p pushed 1 commit to main [+0/-0/±2] https://github.com/glscopeclient/scopehal-sigrok-bridge/compare/6ce73205891f...60c1aafa0b0f
massi has joined #scopehal
bvernoux has joined #scopehal
massi has quit [Remote host closed the connection]
<_whitenotifier-e> [scopehal-apps] 602p opened issue #416: Rate limit dragging interactions - https://github.com/glscopeclient/scopehal-apps/issues/416
<azonenberg> @louis: re rate limiting dragging on slow connections, one of the things i do in the siglent driver is, when messages are queued up
<azonenberg> if you send a channel gain/offset message it checks if one is already in the queue
<azonenberg> and, if present, deletes the un-issued command
<azonenberg> and replaces it with the new one
<azonenberg> woo fan for sniffer board rrived. now i can start cooling it asctively
<azonenberg> no more 65C die temp sitting in an air conditioned lab lol
Abhishek_ has quit [Quit: Connection closed for inactivity]
<d1b2> <louis> Suprised that this depth worked at all
<d1b2> <louis> (result of someone changing the depth on the scope frontpanel while glscope connected :P)
<Degi> Huh, why is the value in dBm
<azonenberg> @louis: yeah it will work at deep memory. just slooow
<azonenberg> i've pushed it to 128M points on my lecroy scopes and several hundred million on the picoscope
<azonenberg> Degi: thats the default output format for the FFT filter
<azonenberg> for now it assumes a 50 ohm environment and normalizes to that
<Degi> Hmm I see
<Degi> I wonder if it can do 200 MSamples on a Rigol, that might be a good test of the program (like for any edge cases involving long wait times)
<azonenberg> iirc either the rigol or siglent driver had to do chunked transfer for data above some size
<azonenberg> and that was not implemented yet as it was so slow
<Degi> Chunked transfer?
<azonenberg> you could only request X samples at a time per query
<azonenberg> probably buffer limit on the soc or something
<azonenberg> so you had to request samples 0 to n-1, then n to 2n-1, etc
<azonenberg> rather than getting it all at once
<Degi> Hmm, last time I tried the MSO5000 was fine with 200M
<Degi> (Just took a whilee)
<azonenberg> must have been siglent then