Issue Flashing Firmware to STM32F3 on ChipWhisperer-Lite (Capture + UFO)

Hi everyone,

I’m trying to flash the firmware onto my STM32F3 target using the ChipWhisperer-Lite (Capture + UFO). However, I’m getting the following error:

Failed to detect chip. Check following:

  1. Connections and device power.
  2. Device has valid clock (or remove clock entirely for internal osc).
  3. On Rev -02 CW308T-STM32Fx boards, BOOT0 is routed to PDIC.

OSError: Could not detect STM32F, check connections, BOOT MODE entry setup.

PLATFORM = ‘CWLITEARM’
SS_VER = ‘SS_VER_2_1’
CRYPTO_TARGET = ‘TINYAES128C’

I used the following command in Python:

cw.program_target(scope, cw.programmers.STM32FProgrammer,
"


chipwhisperer/hardware/victims/firmware/simpleserial-base/simpleserial-base-CW308_STM32F3.hex")

I can’t quite tell from your picture, where is your J3 jumper? You need a jumper on row 3 (HS2/out) so that the target gets the clock from the CW-lite (see: CW308 UFO — ChipWhisperer Documentation).

This is why the error message says to check that the target has a valid clock.

Thanks for your response!

I’ve checked the J3 jumper, and it is correctly placed on row 3 (HS2/out) to receive the clock from the CW-Lite. I’ve attached a close-up picture of that row to confirm.

Since the issue persists, could there be another reason why the STM32F3 is not detected? I’ve also double-checked BOOT0/BOOT1 settings and power connections.

Any further suggestions would be greatly appreciated!

Hmm…

  • did you run scope.default_setup()?
  • is the target firmly pressed into the CW308? There are pictures and videos here to give you an idea of what it should be.

Yes, I ran scope.default_setup() and ensured that the target is firmly pressed into the CW308. I also checked the reference pictures and videos to confirm the correct setup.

However, the issue still persists.

I tried plugging an external crystal oscillator (X1) in, but the issue still persists.

Thanks for your help!

In that case it sounds like your STM32 is dead. Contact sales@newae.com to arrange a replacement. If you have any other CW308 target it would be useful to check whether they function normally, to rule out any other possible problem here.

hi, i’ve had this issue too. Have you tried to run it on a different environment?
I haven’t been able to successfully find the cause of this, but I’ve had this issue on 2 of my machines with arch linux.
However, when I connected from the same machine to a remote ubuntu VM, and forwarded the USB, it works. Might be worth a try :slight_smile:

Try to put a jumper between PDIC (17 contact UFO) and boot0 (11 contact UFO)

Try several programming versions commands

PLATFORM = ‘CW308_STM32F3’
fw_path = ‘…/…/hardware/victims/firmware/basic-passwdcheck/basic-passwdcheck-{}.hex’.format(PLATFORM)
cw.program_target(scope, cw.programmers.STM32FProgrammer, fw_path)
cw.program_target(scope, prog, fw_path)

Or flash with an external programmer jlink/st-link

I’ve resolved the issue! I removed the jumpers and put them back in place, and now everything works fine. I think it was just a false contact.

Thanks for your help!

1 Like

FYI this is only for rev-02 boards, as explained here. OP has a rev-03 board.