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 joined #scopehal
Degi has quit [Ping timeout: 255 seconds]
Degi_ is now known as Degi
<_whitenotifier-5> [scopehal] azonenberg pushed 14 commits to master [+5/-0/±33] https://github.com/ngscopeclient/scopehal/compare/20bab5bd204b...2c227207d663
<_whitenotifier-7> [scopehal] azonenberg 8e6bb24 - ConstellationFilter: made EVM measurement integrate across multiple consecutive acquisition
<_whitenotifier-5> [scopehal] azonenberg b68a898 - Ethernet100BaseT1Decoder: fixed debug message format string disagreement with argument type
<_whitenotifier-7> [scopehal] azonenberg 3da07e2 - Initial skeleton of CouplerDeEmbedFilter. Far from usable.
<_whitenotifier-5> [scopehal] ... and 11 more commits.
<_whitenotifier-5> [scopehal-docs] azonenberg e2dce0d - Updated Coupler De-Embed with final port list
<_whitenotifier-7> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/ngscopeclient/scopehal-docs/compare/b3f21eef502d...e2dce0d68591
<_whitenotifier-5> [scopehal-apps] azonenberg 72893a1 - Updated submodules
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±2] https://github.com/ngscopeclient/scopehal-apps/compare/58af58ec9f69...72893a1243a2
<_whitenotifier-5> [scopehal-apps] Flinner starred scopehal-apps - https://github.com/Flinner
<_whitenotifier-7> [scopehal-apps] Flinner forked the repository - https://github.com/Flinner
<d1b2> <ledude0001> For this source code, my device responds to :TRIG:MODE? with EDGE. However I use Uart and it is too slow to even recieve teh command. cpp auto reply = Trim(m_transport->SendCommandQueuedWithReply(":TRIG:MODE?")); if(reply == "EDGE") PullEdgeTrigger(); Here is what I see in the logs as Warning: Unknown trigger type ":TRIG:MODE?" Warning: Unknown trigger type ":TRIG:MODE?" Warning: Unknown trigger type "DGE" Warning: Unknown trigger
<d1b2> type ":TRIG:MODE?" Warning: Unknown trigger type ":TRIG:MODE?" Warning: Unknown trigger type "GE" Warning: Unknown trigger type ":TRIG:MODE?" Warning: Unknown trigger type ":TRIG:MODE?" Warning: Unknown trigger type "DGE" As you can see, the client sends requests to quickly and the reply "EDGE" never gets fully recieved in time how do I solve this ? 😓
<d1b2> <ledude0001> I used UART since I don't have an ethernet cable near me
<d1b2> <ledude0001> cpp transport->EnableRateLimiting(std::chrono::milliseconds(10)); 😄
<d1b2> <ledude0001> solved, nvm
<d1b2> <azonenberg> Dropping traffic during receive is concerning because the PC should be much faster than your firmware
<d1b2> <ledude0001> would ERROR: SCPITransport::FlushRXBuffer is unimplemented be the cause?
<d1b2> <azonenberg> Honeslty i'd try turning on hardware flow control first
<d1b2> <azonenberg> And see if that solves your problem
<d1b2> <azonenberg> rather than adding random hard coded delays. EnableRateLimiting is a last-resort workaround for buggy third party firmware you don't have access to fix properly
<d1b2> <azonenberg> But also random partially received messages is confusing to me because there's no way "EDGE" is long enough to overflow the RX buffer on the PC
<d1b2> <azonenberg> and seeing :TRIG:MODE echoed back by the device is weird
<d1b2> <ledude0001> I think my uart client sends it back for some reason 😲
<d1b2> <ledude0001> where please?
<d1b2> <azonenberg> What OS is this?
<d1b2> <azonenberg> Linux? (I forget if we even implemented the uart transport for windows yet)
<d1b2> <ledude0001> arch linux btw yes
<d1b2> <azonenberg> https://man7.org/linux/man-pages/man1/stty.1.html should be helpful there. As of now, the uart transport sets baud rate but doesnt touch any other settings (since that's so hardware specific)
<d1b2> <azonenberg> "crtscts" is the option to enable hardware flow control (you'll need this supported in your firmware as well).
<d1b2> <azonenberg> then "raw" will turn off a bunch of processing and "-echo" turns off echoing of traffic you send
<d1b2> <azonenberg> you probably want at least raw -echo for talking to a scope and flow control may or may not be helpful depending on where the bottleneck is
<d1b2> <azonenberg> But realistically speaking hanging a scope off a uart is going to be absurdly slow and should be a last resort 🙂
<d1b2> <azonenberg> like, you can get away with using a uart for things like a power supply or multimeter where the amount of data transferred is tiny
<d1b2> <azonenberg> but with a scope even a modest 10K point waveform at 8 bits per sample is 80 kbits, after start/stop bits 100 kbits, so you're looking at almost a second of transfer time at 115.2 kbps
<d1b2> <azonenberg> so ~1 WFM/s best case
<d1b2> <ledude0001> I just want my scope to work for now 😢
<d1b2> <azonenberg> Fair enough
<d1b2> <ledude0001> choosed a hard first FPGA project xD
<d1b2> <azonenberg> Lol
<d1b2> <azonenberg> If you're doing a new hardware revision and want low effort but way more performance, look at some of the usb parallel fifo stuff from FTDI or their competitors
<d1b2> <ledude0001> ok thanks a lot!
<d1b2> <azonenberg> https://ftdichip.com/products/ft600q-b/ for example is usb3 to a 16-bit parallel fifo interface that should be easy to use from fpga and claims 400 MB/s transfer rates
<d1b2> <azonenberg> We dont have a transport layer made for them yet, i'm not sure what the host side API looks like but FTDI does provide libraries for talking to them
<d1b2> <azonenberg> out of curiosity are you with the same group as Kerr or is this a separate project?
<d1b2> <ledude0001> 47$ is a bit too much 😦
<d1b2> <ledude0001> I don't know kerr (yet)
<d1b2> <azonenberg> wow. that's the first time i've seen LCSC charge 5x more than digikey for something
<d1b2> <azonenberg> maybe the LCSC link is for a whole module or breakout cable or something idk
<d1b2> <ledude0001> /shrug it is out of stock anyways
<d1b2> <ledude0001> thanks a lot for your time, i really appreciate it
<d1b2> <azonenberg> ah ok yeah they're part of a student group near-ish me that wants to make some kind of scope as a senior design project
<d1b2> <azonenberg> i wasnt sure if you were another group member
<d1b2> <ledude0001> I am making a scope for a senior design project too!
<d1b2> <ledude0001> trying to copycat digilint disovery 2
<d1b2> <benny2366> @ledude0001 you might want to check this out
<d1b2> <ledude0001> wow the schematic is available too
<d1b2> <ledude0001> thx
<d1b2> <benny2366> jhea curios if you can beat digilent in making something more reliable than them! good luck
<d1b2> <ledude0001> if they are on discord can you @mention them 😅
<d1b2> <azonenberg> They're on IRC, it's bridged to this channel
<azonenberg> Kerr: ^
flinner has joined #scopehal
flinner is now known as ledude
<ledude> Kerr: would like to chat about scope design for a bit, can I msg you?
<azonenberg> Scope hardware design is on topic for the main channel. You're far from the only people here who want to design their only scope
<azonenberg> (just the only two i know of doing it specifically as a class project)
<azonenberg> their own*
<ledude> nice !!
<azonenberg> My dreams are bigger (think AD9213 and UltraScale+ FPGA and DIMM of DDR4 per channel, 2 GHz BW, 10 Gsps, 12 bit)
<azonenberg> as well as a 16 bit 100 Msps 28 channel low speed scope
<ledude> whao
<azonenberg> Both are high level block diagrams only at this point, i've had my hands full with other stuff but hope to spend some time on actual circuit design maybe over the summer
<ledude> xDD I aim to make <50$ scope+logic analyzer + func gen
<azonenberg> Yeah. Different market segment :)
<azonenberg> I want to compete with midrange gear from the big vendors
<azonenberg> anyway point is if you want to bounce ideas on adc selection or frontend design off people
<ledude> I hope to work on high speed designs after graduation
<azonenberg> odds are there half a dozen folks in the channel who have looked at and maybe used those same parts :p
<ledude> nice! is the channel on irc or discord?
<azonenberg> both, thats the point of the bridge
<azonenberg> as long as the bridge is working (it does go down occasionally) you can message on either side and everyone sees it
<azonenberg> you just can't PM from one to the other
<ledude> ohhh thx
<_whitenotifier-5> [scopehal] d235j opened pull request #860: Optimize AcceleratorBuffer for unified memory - https://github.com/ngscopeclient/scopehal/pull/860
<_whitenotifier-7> [scopehal-apps] d235j opened pull request #697: Update performance metrics window for unified memory - https://github.com/ngscopeclient/scopehal-apps/pull/697
<_whitenotifier-7> [scopehal-apps] d235j synchronize pull request #697: Update performance metrics window for unified memory - https://github.com/ngscopeclient/scopehal-apps/pull/697
<_whitenotifier-7> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±3] https://github.com/ngscopeclient/scopehal/compare/2c227207d663...bae3af224aac
<_whitenotifier-5> [scopehal] azonenberg c9f2e93 - Initial ActionProvider integration in PAMEdgeDetector
<_whitenotifier-7> [scopehal] azonenberg bae3af2 - PAMEdgeDetector: don't auto-threshold every single waveform, only the first waveform and when the user asks for it explicitly
<d1b2> <azonenberg> @hansemro what's the state of your siglent bin import filter again? are you planning to finish taht?
<d1b2> <azonenberg> it'd be nice to have it done and merged
<_whitenotifier-7> [scopehal] azonenberg closed pull request #860: Optimize AcceleratorBuffer for unified memory - https://github.com/ngscopeclient/scopehal/pull/860
<_whitenotifier-5> [scopehal] azonenberg closed issue #681: AcceleratorBuffer: better unified memory support - https://github.com/ngscopeclient/scopehal/issues/681
<_whitenotifier-7> [scopehal] azonenberg e5b24a9 - Merge pull request #860 from d235j/optimize-acceleratorbuffer-unified-memory Optimize AcceleratorBuffer for unified memory
<_whitenotifier-5> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±6] https://github.com/ngscopeclient/scopehal/compare/bae3af224aac...e5b24a929a77
<_whitenotifier-7> [scopehal-apps] azonenberg closed pull request #697: Update performance metrics window for unified memory - https://github.com/ngscopeclient/scopehal-apps/pull/697
<_whitenotifier-5> [scopehal-apps] azonenberg pushed 3 commits to master [+0/-0/±5] https://github.com/ngscopeclient/scopehal-apps/compare/72893a1243a2...31efa1dba62a
<_whitenotifier-7> [scopehal-apps] azonenberg 31efa1d - Merge pull request #697 from d235j/performance-metrics-unified-memory Update performance metrics window for unified memory
<azonenberg> ok yeah the eye pattern filter is still a performance bottleneck...
<azonenberg> I really need to find a way to make that faster but it's already pretty heavily tuned and AVX'd
<azonenberg> I'm thinking maybe i should try to find a way to at least openmp parallelize it first before going to GPU
<azonenberg> Since right now it's single threaded
<azonenberg> But I still have to finish link training decoding before I do that
<azonenberg> And fully document some of these recent filters since i've been slacking on that
<_whitenotifier-5> [scopehal-apps] d235j opened pull request #698: Fix tests for unified memory - https://github.com/ngscopeclient/scopehal-apps/pull/698
<_whitenotifier-7> [scopehal-apps] d235j opened pull request #699: Fix for GPUs that have a swapchain shallower or deeper than 2 images - https://github.com/ngscopeclient/scopehal-apps/pull/699
ledude has quit [Ping timeout: 256 seconds]
Kerr_ has joined #scopehal
<d1b2> <darius0949> I had this with my ancient tek, I munged the code
<_whitenotifier-5> [scopehal-docs] azonenberg de7c778 - Renamed revision file to intro to better reflect its actual content. Moved "documentation conventions" section to beginning of document
<_whitenotifier-7> [scopehal-docs] azonenberg pushed 2 commits to master [+7/-3/±4] https://github.com/ngscopeclient/scopehal-docs/compare/e2dce0d68591...e3a3a7843085
<_whitenotifier-7> [scopehal-docs] azonenberg e3a3a78 - Added example filter graph images and screenshots to 128b/130b, 64b/66b, and 8b/10b decodes