So I have been enjoying my new ChipWhisperer but I have run into an issue and I am not sure how to proceed. I am using the ChipWhisperer to clock glitch an external device. I have replaced the external device’s clock source with the HS2 pin on the ChipWhisperer. The external device sends a trigger on “tio4” back to the Chipwhisperer.
I had everything working as desired when I was using the Glitch Explorer in the GUI. I set up auxiliary scripts to iterate over the glitching parameters and it was all working according to my logic analyzer. The only problem I had was the time between traces (changing the glitching parameters) was too slow. I believe it was so slow because I am using the Glitch Explorer without capturing power traces, so the trace capture is timing out each time. So I decided to just create a script and bypass the GUI.
I created a script that is very similar to chipwhisperer/software/scripting-examples/glitch_explorer_simple_xmega.py
The major change to the script above is that I am not doing any captures (scope.capture) because I am not concerned with the power traces. I am only concerned about clock glitching and iterating over the different external offsets and other glitching parameters. Everything appears to be working as before (and it runs much faster) but I noticed that the glitch output is not consistent.
When looking at my logic analyzer the trigger (tio4) is always present but sometimes glitches are not produced on hs2. Sometimes it is only one iteration of glitch that is not produced, while other times, it will miss 3 or 4 iterations in a row but the trigger is still always present for each iteration. I switched the output from “clock_xor” to glitch only so it would be easier to debug the situation and I can clearly see that some glitches are not produced.
Any suggestions? I don’t really know how to proceed because my script doesn’t control or handle the glitch creation directly. All I am doing is setting the configuration so that it expects a trigger on “tio4” and I have verified that the trigger is being produced every time. It seemed to work fine in the GUI using the Glitch Explorer (but it was too slow!)
Any help would be greatly appreciated. Thanks!