Tootfinder

Opt-in global Mastodon full text search. Join the index!

No exact results. Similar results found.
@azonenberg@ioc.exchange
2026-01-03 14:32:32

As promised: quick demo of ngscopeclient running CDR eye pattern on >800 Msps (2x 50M points @ 8.2 Hz) of live streaming waveform data on an RTX 2080 Ti.
youtube.com/watch?v=r6uPpITsyhQ

@clongclongmoo@social.bau-ha.us
2025-12-01 07:49:57

Saito Koji – Waveform Transmission
#alternative

@azonenberg@ioc.exchange
2026-01-03 09:49:35

I'm going to have to screen record this, I can't believe I got it working this well.
2x 50M point differential Ethernet waveform into subtract filter, CDR, and eye pattern.
Refreshing at 8.3 Hz. With just a little bit more optimization or faster hardware this will be real time.
Then I can start working on getting protocol decodes to run at full rate too.

ngscopeclient displaying a MLT-3 eye pattern and filter graph
@heiseonline@social.heise.de
2026-01-29 15:59:00

Fritzboxen 7690 und 5690 bekommen FritzOS 8.20 und 6670 Cable 8.21
Fritz versorgt drei weitere Router mit aktueller Firmware. FritzOS 8.20 beziehungsweise 8.21 modernisieren unter anderem die Weboberfläche.

@azonenberg@ioc.exchange
2026-01-04 08:34:12

So, tonight's goal is to continue with ngscopeclient performance work.
I started out by doubling the speed of the eye pattern *again* by moving index buffer calculation from CPU to GPU.
Next up is going to be getting the 100baseTX decoder to not be so slow. Right now of the 43 seconds of CPU time in the current 1-minute benchmark, 26.9 is spent sampling the MLT-3 waveform on rising edges of the recovered clock.
The thing is, we already *know* the sample values at the re…

VTune screenshot of a filter graph where most of the time is spent in Filter
ngscopeclient screenshot of a filter graph for decoding 100baseTX ethernet
ngscopeclient screenshot showing decodes of 100baseTX ethernet
@azonenberg@ioc.exchange
2026-01-01 07:03:03

Starting to look at some performance improvements for various scopehal filters as I begin the push for v0.2.
The benchmark dataset is P/N legs of 100baseTX Ethernet sampled at 500 Msps with a ThunderScope.
At 50M point memory depth, each waveform is 100 MB in size (2 channels * 8 bits * 500 Msps) and covers 100ms of real time.
The filter graph currently takes just shy of a second to run, meaning we're at 10% of real time. I want to improve on this.

ngscopeclient displaying an 3-level eye pattern and waveform
ngscopeclient filter graph showing a differential pair being subtracted, followed by CDR and an eye pattern
@azonenberg@ioc.exchange
2026-02-01 23:51:14

Thinking about a potential performance improvement for overlapping compute and transfer operations in ngscopeclient.
Right now, if you use a ThunderScope (ignoring unified memory platforms where the issue is moot) when a new waveform shows up we write it into CPU side pinned memory.
Then we vkCopyBuffer it into local memory, barrier on that transfer, and run the ConvertNBitSamples shader to convert the raw adc codes to float32.
The problem is, this burns scratch buffer spac…

@azonenberg@ioc.exchange
2025-12-02 00:32:20

Put a random old M.2 SSD I had in a M.2 to mini-PCIe carrier board and attached it to the STM32MP2 devkit.
Didn't even have to do anything and a 100 MHz refclk (no spread spectrum, it looks pretty stable) magically appeared on the connector. I'm not sure which side is sourcing it (can an addin card generate REFCLK?) because I didn't do anything to configure PCIe on the host side yet.
Promising!

ngscopeclient view of a 100 Mhz waveform with some reflections on it
@azonenberg@ioc.exchange
2026-01-02 11:52:25

Initial experiments on a GPU-accelerated parallel CDR PLL filter.
Fundamentally, the problem is that a PLL is stateful so you can't process any given iteration of it without knowing the previous state. I'm trying to work around that by recognizing that the impulse response of the PLL loop filter tails off to effectively zero after a while, so we can truncate and samples older than that point will not materially affect the output.
What you see here is the first pass of wha…

ngscopeclient displaying a low frequency square wave labeled "DEBUG_BlockBoundaries" and a jitter waveform with large spikes every time the block boundary signal toggles
@azonenberg@ioc.exchange
2026-01-29 05:51:55

Looking to have someone redraw the icon for the "coupler de-embed" filter in ngscopeclient as I'm not thrilled with the current one.
The big question is, what should it actually depict?
The filter performs directivity enhancement for a dual directional coupler. It takes in the measured forward and reverse waveforms, S-parameters of the coupler, and outputs new forward and reverse waveforms with (most of) the leakage removed.