Whilst reading about USB o-scopes and the sigrok project I had assumed that you could use such a setup to continuously stream data from the scope. Eg record samples from an experiment continuously with sigrok-cli over the span of a few hours or more.
Yesterday I found out this was not the case -- I tried with a Rigol DS1000E series scope and found it only does single shots. No info on the sigrok wiki seems to elude to this.
(1) Am I approaching this problem incorrectly? Is a "USB oscilloscope" always limited to short captures and I'm actually after a different name/type of equipment? [NB: student budget, not commercial]
(2) Where do I find information about eg the Hantek 6022 BE's continuous capture capabilities? Eg a list of sampling rates that it can sustain continuously over USB?
Which fact surprised you here? The fact that the Rigol isn't able to stream or the fact it's not mentioned on the wiki?
Depends. USB2 is rather slow and analog data doesn't compress well, so USB scopes that stream are rather bandwidth-limited.
The closest thing I do know would be the range of devices offered by Saleae.
I don't know whether the device supports this feature. Would definitely be nice to add to the libsigrok driver if it does.
All good. The theoretical limit of 480Mbit/s (60MB/s) is still a magnitude or more than what I actually need (eg 100K samples/s * 8 bits = 100KB/s + overheads).Use a sound card with a hacked front end?
All good. The theoretical limit of 480Mbit/s (60MB/s) is still a magnitude or more than what I actually need (eg 100K samples/s * 8 bits = 100KB/s + overheads).Use a sound card with a hacked front end?
QuoteWhich fact surprised you here? The fact that the Rigol isn't able to stream or the fact it's not mentioned on the wiki?
Both.
I see "continuous capture streaming" as the No. 1 defining feature of a USB scope. Without this they would provide no advantage over a standalone scope that I can see, other than cost + size.
Am I wrong? I've never bought one of these (eg a Hantek) before. The fact I can't find any solid information on this is making me wary.
The ability to capture and stream data only for short intervals, as the Rigol USB support appears to do, is little different in my mind to saving a screenshot or data capture from the scope onto a memory stick. The USB link to a PC is a live connection, there's zero point having it when you don't support any tasks more live than equivalent to saving onto a memory stick.
QuoteI don't know whether the device supports this feature. Would definitely be nice to add to the libsigrok driver if it does.
Apologies: are you saying that the libsigrock driver doesn't have continuous capture support for the Hantek 6022BE?
Given that sigrok-cli straight out told me the Rigol didn't support continuous capture (only when I tried to run it), I'll have a poke at the source and see what it says about what devices support it.
if it means anything then yes, I think it's really important to have information about CONTINUOUS support on the wiki. It would be a nasty bummer to buy a device based off sigrok's support list and then find out you can't use 'sigrok-cli --continuous' on it only afterwards.
I wasn't aware that your requirements were so low. Somehow, I figured you'd need more.
So depending on how many channels you need, https://sigrok.org/wiki/Supported_hardware#Mixed-signal_devices may have something for you. Those "8ch, 24MHz; 1ch analog, 3MHz BW" devices offer only one channel but they're cheap and do streaming since they're FX2-based.
EDIT: It's a shame only one analog channel on the FX2's works at a time (not sure if this is a hardware or sigrok limitation). Otherwise these would be absolutely perfect.
(2) Where do I find information about eg the Hantek 6022 BE's continuous capture capabilities? Eg a list of sampling rates that it can sustain continuously over USB?
usage: capture_6022.py [-h] [-d DOWNSAMPLE] [-o OUTFILE] [-r RATE] [-t TIME]
[-x CH1] [-y CH2]
optional arguments:
-h, --help show this help message and exit
-d DOWNSAMPLE, --downsample DOWNSAMPLE
downsample 256 x DOWNSAMPLE
-o OUTFILE, --outfile OUTFILE
write the data into OUTFILE
-r RATE, --rate RATE sample rate in kS/s (20, 50, 64, 100, default: 20)
-t TIME, --time TIME capture time in seconds (default: 1.0)
-x CH1, --ch1 CH1 gain of channel 1 (1, 2, 5, 10, default: 1)
-y CH2, --ch2 CH2 gain of channel 2 (1, 2, 5, 10, default: 1)usage: plot_from_capture_6022.py [-h] [-i INFILE] [-c CHANNELS] [-s [MAX_FREQ]]
optional arguments:
-h, --help show this help message and exit
-i INFILE, --infile INFILE
read the data from INFILE
-c CHANNELS, --channels CHANNELS
show one (CH1) or two (CH1, CH2) channels, default: 2)
-s [MAX_FREQ], --spectrum [MAX_FREQ]
display the spectrum of the samples, optional up to MAX_FREQ
(https://raw.githubusercontent.com/Ho-Ro/Hantek6022API/main/plot_from_capture.png)Thankyou Horo :) Despite the age of these devices they still seem to be popular and easy to get, so this is useful to know.
It looks like they might support up to 1Msample/sec in continuous capture?