Testing Custom Firmware on STM32F3 / Trace Capture

I am using a CW1200 capture board with the CW308 UFO board and a STM32F3 target board for CPA.

As a reference to upload any custom firmware, I was trying to follow the XOR demo from the documentation: Custom Firmware on ChipWhisperer Targets — ChipWhisperer Documentation. I was able to flash the code onto the target board, but when I try to capture traces using the trace capture code from the sca101 courses (Lab 4_3),

from tqdm.notebook import trange
import numpy as np
import time

ktp = cw.ktp.Basic()
trace_array = [ ]
textin_array = [ ]

N = 50
for i in trange(N, desc=‘Capturing traces’):
key, text = ktp.next()
trace = cw.capture_trace(scope, target, text, key)
if not trace:
continue

*proj.traces.append(trace)*

the following error occurs:

How do I capture traces for, or test, any custom firmware? Would there be a tutorial available to perform CPA on any firmware?

In the error message that you get, “no trigger seen” is the key part; it suggests that you’re having issues communicating with your target. This is what needs to be resolved first, before getting to “how to perform CPA on any firmware”.

We have something here explaining the likely causes of the error you are seeing: ERROR: “Target did not ack” or “no trigger seen” — ChipWhisperer Documentation

What also have a number of different target firmware and notebooks that interact with that firmware. If you go through the sca101 notebooks, you will work with 3 different target firmwares. Understanding how communication works between Python and the simpleserial-based firmware is the key to being able to use your own custom firmware with ChipWhisperer.

We are happy to answer any specific questions you have along the way.