Hello. I use the picoscope 3205D MSO. My hardware creates 20triggers per second and I would like to capture every trace of each trigger and save it. I tried the option at alarms to save at trigger, but it's really slow, so I had to add a 1s delay into my trigger. The problem is, I have to record about 10k traces multiple times, so I would like to accelerate the trace saving. How can I achieve that?
Another problem would be, is there a way to read out the captured traces with python in order to save each trace as a numpy array?
It depends on the number of samples you need per trigger.
If all samples fit in the scope memory then you can use rapid trigger mode.
you then have all 10k captures in a single .psdata file and you can export it to a matlab file.
What do you mean by rapid trigger mode? Is it some kind of "sequence" mode used in standard scopes, where I record only one trace with all my samples, then I have to split them into my 10k different captures? How do I activate that mode?
What scope memory are you refering to? How do I define if my scope is capable of recording that many traces? One trace required around 280kB
How do I convert the already recorded .psdata into a matlab file? I recorded 10k different files and would like to create one numpy array out of them
Hello, thanks for the answers. I use two channels, although one channel is for the trigger only, which is unfortunately also saved together with the first data channel. Is there a way not to record this trigger into my saved files? I dont actually need to see it either
Hello. I have occured another problem. I used a command to convert all the .psdata into .mat files:
Picoscope /c *.psdata /f mat /b all
The problem is, the traces arent converted in an order, for example 20220811-0001 (1).mat is number 1, while 20220811-0001 (10) is number 2 and 20220811-0001 (100) is number 3. I am not sure if the script I used is reading the data wrongly or if the captured traces are wrongly named. Or maybe the other .mat to python script converts the data wrongly?
mat_files = glob.glob('**/*.mat')
alldata = []
for fname in mat_files:
.
data = scipy.io.loadmat(fname)
# Append data to the list, only array A is interesting as it contains data from channel A
alldata.append(data["A"])