Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scopy: Implement "Roll" Mode #1381

Open
muhuna opened this issue Dec 30, 2022 · 8 comments
Open

Scopy: Implement "Roll" Mode #1381

muhuna opened this issue Dec 30, 2022 · 8 comments

Comments

@muhuna
Copy link

muhuna commented Dec 30, 2022

This is regarding the oscilloscope part of Scopy. When working with low frequency signals and not knowing exactly what issue one is dealing with it can often be very helpful to see a "live" stream of the samples captured. Actually, with other PC based scopes I had the chance to work with I sometimes just use a manual trigger by hitting the "stop recording" button or manually change modes of the HW under test when something happens. Not always but sometimes it could be done with trigger and some program to change modes on the HW if there is an API. But that just adds a lot of time for doing something pretty simple. Unfortunately, this isn't currently possibly with Scopy because there is no "live" updated (in my case I sometimes have to wait up to 8s to get an updated screen). Hence, it would be nice to have a "roll" mode.

@rgetz
Copy link

rgetz commented Jan 3, 2023

"roll" mode is plotting available data, as it comes in, without discarding the "old" data that shifts left on the screen. The "roll" rate (the rate that the shift happens) depends on the capture speed. (the faster you capture, the more you can shift over; the slower you capture, the less data you capture, the slower the shift).

For a capture rate of 100 Hz, you may only want to capture 10 samples (shift the previous data over those 10 samples), and have a screen update rate of 10 Hz... The slower the sample capture, the less samples you want to capture, to keep the screen update to a smooth rate. (you may get to a point where you only want one sample between updates).

gif

@adisuciu
Copy link
Contributor

adisuciu commented Jan 4, 2023

Even though it is not rolling mode, something that might be useful is already implemented. Increasing memory depth of the acquisition will "packetize" this data and fill the screen left to right. When the screen is filled, the buffer is reset. I'm aware that this is different than what was suggested, but it might be a workaround to prevent the huge delays in acquisition.

In regards to rolling mode, It's something we're going to look at ..

-Adrian

@adisuciu
Copy link
Contributor

adisuciu commented Jan 4, 2023

Actually, moving the trigger all the way to the left will have the same effect on "packetizing" the data without the increased data count.
image
For rolling mode we basically need to

Fill data right to left and do not reset plot on full buffer.
Disable horizontal trigger handle and set trigger to the leftmost value (behind the scenes)
Disable all triggers
Force sample rate lower than some threshold (timebase >=10ms )

@rgetz
Copy link

rgetz commented Jan 4, 2023

yeah, blanking the screen at the end (rather than shifting it over) is one solution.

I would suggest to play with a real scope in the lab - to see how things are managed as sample rate decreases, and then try to emulate that. :)

@damercer
Copy link

damercer commented Jan 9, 2023

I've seen this "packetizing" effect on long time scales but the data "packets" need to be small i.e. a few pixels / screen points per update to make the waveform roll smoothly as Robin pointed out. Then there is the question about which ADC samples to use. Do you just set a very low sample rate or average samples at a high rate to decimate to the lower rate. You either loose samples (skip over potential fast spikes) or filter out the high frequencies. Maybe you plot min/max values for a given set of over samples?

Lots of possibilities to decide the functionality.

@rgetz
Copy link

rgetz commented Jan 9, 2023

@damercer

yeah, older versions of waveforms did this...

The min/max was plotted behind as a shaded version of the colour, but the average was plotted as the line.

image

The described it as : "Noise Band: shows or hides the noise (min/max values)." which I don't think actually captures things properly.

image

The above frequency sweep might look like damped signal (C1), but noise band on R1 indicates that this is not true.
This indicates glitches or high frequency components that might be hidden by the averaging...

what it does - and how it's described - is super important.

@damercer
Copy link

Waveforms does have a "roll" like mode that kicks in at 100mS/div and longer. It is not exactly a sliding / scrolling waveform that moves right to left. There is a vertical line that sweeps across the screen from left to right writing new sample points to the screen replacing old data,

Scopy programmers might want to take a look and see if that is something like what we would want to have in Scopy.
-DM-

@rgetz
Copy link

rgetz commented Feb 14, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants