Call scope.capture() and scope.arm()

Hello i have some trouble to understand how scope.capture and scope.arm functions are working.
Am i right that i have to call scope.arm once to activate capture and glitching and after that i start the trigger from my target and then i call scope.capture to wait until it detects the rising, falling edge, … of the trigger and after that the glitch output itself will be triggered? My settings (“ext_single”, “glitch_only”).
My target sets the trigger automatically high after reboot it. (with a delay)

So can i use a code like this?:
for loop
{ set glitch offset, width, …

scope.arm()
reboot_flush()
scope.capture()

detect glitches…
}

Thanks and best regards Rik

Yeah, something like that is fine, though scope.capture() here doesn’t do anything in relation to the glitch, IIRC - it just resets the arm on the scope and detects if there’s was a timeout (it does a bit more for capturing, but that’s not really relevant here).

Alex

Thanks but i wasn´t able to detect/arm the Trigger without calling scope.capture(). I also thought it´s just for capturing but the blue LED “Trigger armed” only lights up when i have scope.capture() in my code so i think it´s relevant for glitching.
After some research this morning i found the following in the Tutorial “Lab 6_4 - Jittery Triggering on UART”

The problem is that scope.capture() blocks - the capture hardware is always ready to capture as soon as scope.arm() is called. But scope.capture() says “now wait until you see the trigger”.

When this is correct maybe you could add it to the Chip Whisperers API also there´s no scope.capture description for the OpenADC Scope only for the CW Nano scope (if you can do this?)

Rik

Oh yeah, sorry if I was unclear - the disarming of the scope is what’s important here. If you don’t call capture, the first glitch should work, but subsequent ones won’t. The blue LED is the “armed” LED, so, if the scope is never disarmed, that will never go out.

That “now wait until you see the trigger” part is just referring to the Python.

Yup, that’s been added. You can now see that at Scope API — ChipWhisperer 5.7.0 documentation

1 Like

Hi sorry i have to ask again what you mean with: That “now wait until you see the trigger” part is just referring to the Python.
Does scope.capture() waits for the trigger or not? And when not how do you wait in the Jupyter Notebooks for a trigger event?

Thanks and best regards

Yes it does. scope.capture() polls the ChipWhisperer to see if it has been triggered.

1 Like