Failed to detect chip

Hi,
I wanted to run the tutorial: Lab 1_1B - AES Loop Skip Fault Attack in Practice with a CWLITE.
But when executing this:

fw_path = "../../../hardware/victims/firmware/simpleserial-aes/simpleserial-aes-CWLITEARM.hex".format(PLATFORM)
cw.program_target(scope, prog, fw_path)

I got this 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

I made sure the device is connected to the pc.

Best,
Sousou

Hi Sousou,

What target are you using with your ChipWhisperer Lite? Also, are you using a 1-part ChipWhisperer, or are you using a separate target (2-part, CW308, etc)?

Alex

Hi Alex,
I am using 2-part a chipwhisperer, a UFO Board with an STM32F4 target on it, as in the picture.
Best,
Sousou

I tried all the tutorials, I still have the same issue.
I upgraded the firmware, and update the chipwhisperer version 5.6.1
I checked my usb cable.
But I still have the same issue.

When the ChipWhisperer is plugged in, do you see the 1.2V and 3.3V LEDs on the CW308 lit up?

Alex

yes 1.2 and 3.3 are on.

Have you tried any other targets? Is it just this target that doesn’t work, or do others not work as well?

Alex

I have only this target and it was working at the start. I had this error suddenly.

That’s strange. If do you print(scope) right before you try programming, what does it print?

Alex

Hi Alex,
Printing the scope give me the following:

cwlite Device
sn = 50203120324136503230342037313031
fw_version =
major = 0
minor = 60
debug = 0
gain =
mode = high
gain = 30
db = 24.8359375
adc =
state = False
basic_mode = rising_edge
timeout = 2
offset = 0
presamples = 0
samples = 5000
decimate = 1
trig_count = 7333994
fifo_fill_mode = normal
clock =
adc_src = clkgen_x4
adc_phase = 0
adc_freq = 29538459
adc_rate = 29538459.0
adc_locked = True
freq_ctr = 0
freq_ctr_src = extclk
clkgen_src = system
extclk_freq = 10000000
clkgen_mul = 2
clkgen_div = 26
clkgen_freq = 7384615.384615385
clkgen_locked = True
trigger =
triggers = tio4
module = basic
io =
tio1 = serial_rx
tio2 = serial_tx
tio3 = high_z
tio4 = high_z
pdid = high_z
pdic = high_z
nrst = high_z
glitch_hp = False
glitch_lp = False
extclk_src = hs1
hs2 = clkgen
target_pwr = True
tio_states = (1, 1, 0, 0)
cdc_settings = bytearray(b’\x00\x00\x00\x00’)
glitch =
clk_src = target
width = 10.15625
width_fine = 0
offset = 10.15625
offset_fine = 0
trigger_src = manual
arm_timing = after_scope
ext_offset = 0
repeat = 1
output = clock_xor

Looks like all those values are okay. It’s a bit hard to tell, but are you missing a jumper on J14, by the FILT pin?

Alex

I added the jumper but the problem was persisting.
Then suddenly it is working again. I do not understand why ! I think I need to change the target board, as it gives me this error from time to time with no obvious reason.
Best

If there wasn’t any jumper on J14, then that’s almost certainly the issue since that jumper is responsible for routing power to the microcontroller.

Hello Alex,

I am facing the same problem(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.)
    and this is a picture of my board and my scope:
    cwlite Device
    sn = 50203220384d4a543030313135323035
    fw_version =
    major = 0
    minor = 64
    debug = 0
    gain =
    mode = high
    gain = 30
    db = 24.8359375
    adc =
    state = False
    basic_mode = rising_edge
    timeout = 2
    offset = 0
    presamples = 0
    samples = 5000
    decimate = 1
    trig_count = 47410529
    fifo_fill_mode = normal
    clock =
    adc_src = clkgen_x4
    adc_phase = 0
    adc_freq = 29538459
    adc_rate = 29538459.0
    adc_locked = True
    freq_ctr = 0
    freq_ctr_src = extclk
    clkgen_src = system
    extclk_freq = 10000000
    clkgen_mul = 2
    clkgen_div = 26
    clkgen_freq = 7384615.384615385
    clkgen_locked = True
    trigger =
    triggers = tio4
    module = basic
    io =
    tio1 = serial_rx
    tio2 = serial_tx
    tio3 = high_z
    tio4 = high_z
    pdid = high_z
    pdic = high_z
    nrst = high_z
    glitch_hp = False
    glitch_lp = False
    extclk_src = hs1
    hs2 = clkgen
    target_pwr = True
    tio_states = (1, 1, 0, 0)
    cdc_settings = bytearray(b’\x00\x00\x00\x00’)
    glitch =
    clk_src = target
    width = 10.15625
    width_fine = 0
    offset = 10.15625
    offset_fine = 0
    trigger_src = manual
    arm_timing = after_scope
    ext_offset = 0
    repeat = 1
    output = clock_xor

image
the jumper I have now is between the 3 and 2 on j14 is that correct?


When I tried these commands, I got this error
AttributeError: ‘function’ object has no attribute ‘io’

Your CW308 should have 3.3V SRC set to J1/CW. Also, scope = cw.scope should be scope = cw.scope().

1 Like

Thank you alot Alex, this fixed the problem