cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WB55 (STEVAL-PROTEUS) - FUS Deadlock, Corrupted Versions, and USB/SWD Failure

Zakhan
Associate II

Hello ST Community,

I am facing a critical issue with my STEVAL-PROTEUS1 board. The device is in a state where neither the wireless stack nor the application code can be updated or debugged.

1. Corrupted Device Information (SWD_READ_FUS.PNG)

When reading FUS info via ST-LINK (SWD), the device returns corrupted version numbers:

  • FUS Version: v68.39.fffffe0.7

  • STACK Version: vfffffff0.0.68.78

     

    SWD_READ_FUS.PNG

2. FUS & Wireless Stack Operation Failures (SWD-START-FUS.PNG / SWD-START-WIRELESS.PNG)

Attempting to start the FUS or Wireless Stack results in:

  • Error: FUS_STATE_ERR_UNKNOWN: Unknown error

  • Log: Start FUS Operation Failure! and Start Wireless Stack Operation Failure!

SWD-START-FUS.PNGSWD-START-WIRELESS.PNG

3. Flash Write & Verification Mismatch (SWD-UPLOAD-CODE.PNG)

I am unable to flash a standard application elf file. Even though the device is connected via SWD:

  • Error: Data mismatch found at address 0x08001000 (byte = 0x12 instead of 0x00)

SWD-UPLOAD-CODE.PNG

4. USB DFU Mode Inconsistencies (USB-READ-FUS / USB-START-WIRELESS)

Switching to USB (PID: 0xDF11) shows inconsistent states:

  • In some cases, FUS reports FUS_STATE_ERR and FUS_NOT_RUNNING (USB-READ-FUS2.PNG).

  • Even when a command reports "Success" in the log (USB-START-WIRELESS2.PNG), the operation has no actual effect on the device state.

  • Critical Error: Any attempt to download code via USB fails with Error: failed to download Sector[0] (USB-UPLOAD-CODE.PNG).

USB-READ-FUS2.PNG

USB-START-WIRELESS1.PNG

USB-START-WIRELESS2.PNG

USB-READ-FUS.PNG

    

5. IDE & Debugger Accessibility (STM32CUBEIDE.PNG)

Because of this deadlock, STM32CubeIDE cannot establish a connection:

  • Error: Connection timed out (localhost:61234). The GDB server is unable to halt or communicate with the core.

STM32CUBEIDE.PNG

 I have also attached my current Option Bytes configuration to see if there is a conflict in boot settings or memory protection that causes this deadlock. Any advice on the correct OB values for FUS recovery would be greatly appreciated.

 
 

Capture.PNG

 Note: RDP is AA.

Environment Summary:

  • Hardware: STEVAL-PROTEUS (STM32WB55VGY)

  • Software: STM32CubeProgrammer v2.14.0

  • Connections: ST-LINK/V2-1 (Connect Under Reset) and USB DFU.

Questions for the Experts:

  1. Given that Sector[0] is failing to download via USB and 0x08001000 is failing via SWD, how can I force a mass erase of the secure/non-secure flash?

  2. Is there a specific Option Byte (nBOOT0, nSWBOOT0, or RDP level transition) that can break this FUS loop?

  3. What is the recommended recovery procedure for corrupted FUS version reporting?

Any help or guidance would be greatly appreciated. Thank you!

4 REPLIES 4
Imen.D
ST Employee

Hello @Zakhan ,

Try update your FUS firmware following this wiki article and make sure to use the latest version of STM32CubeWB and STM32CubeProgrammer. You can also follow the steps in the AN5185 and guidance for restoring option bytes as defined in the application note, page 10.

 

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

Hello @Imen.D 

Thank you for response. 

When I click "Read FUS infos", I see the following as shown in the image:

FUS Version: v27.72.fffffcb.fffffffb0 (FUS Operator: v0.3.2)

STACK Version: v19.-99.3e.ffffff9c

Capture.PNG

However, when I try to "Start FUS", I get the FUS_STATE_ERR_UNKNOWN error in the logs. The same thing happens when I try to "Firmware delete".

Logs for Start FUS:

10:54:20 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
10:54:20 : Opening and parsing file: 0x495_FUS_Operator.bin
10:54:20 : Memory Programming ...
10:54:20 : File : 0x495_FUS_Operator.bin
10:54:20 : Size : 8.00 KB
10:54:20 : Address : 0x08000000
10:54:20 : Erasing memory corresponding to segment 0:
10:54:20 : Erasing internal memory sectors [0 1]
10:54:20 : Download in Progress:
10:54:20 : File download complete
10:54:20 : Time elapsed during download operation: 00:00:00.238
10:54:20 : Application is running, Please Hold on...
10:54:20 : Reconnecting...
10:54:20 : Reconnected !
10:54:24 : Reconnecting...
10:54:24 : Reconnected !
10:54:24 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error
10:54:24 : Start FUS failed !
10:54:24 : Error: Start FUS Operation Failure! Please, try again

 

Logs for Firmware Delete:

11:01:37 : Memory Programming ...
11:01:37 : File : 0x495_FUS_Operator.bin
11:01:37 : Size : 8.00 KB
11:01:37 : Address : 0x08000000
11:01:37 : Erasing memory corresponding to segment 0:
11:01:37 : Erasing internal memory sectors [0 1]
11:01:37 : Download in Progress:
11:01:37 : File download complete
11:01:37 : Time elapsed during download operation: 00:00:00.251
11:01:37 : Application is running, Please Hold on...
11:01:44 : Reconnecting...
11:01:44 : Reconnected !
11:01:44 : Error: FUS_STATE_ERR_UNKNOWN: Unknown error
11:01:44 : Firmware delete n°1 failed after retrying!
11:01:44 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
11:01:44 : Warning: Option Byte: nboot0, value: 0x1, was not modified.
11:01:44 : Warning: Option Byte: nboot1, value: 0x1, was not modified.
11:01:44 : Warning: Option Bytes are unchanged, Data won't be downloaded
11:01:44 : Time elapsed during option Bytes configuration: 00:00:00.000
11:01:44 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
11:01:44 : Opening and parsing file: 0x495_FUS_Operator.bin
11:01:44 : Memory Programming ...
11:01:44 : File : 0x495_FUS_Operator.bin
11:01:44 : Size : 8.00 KB
11:01:44 : Address : 0x08000000
11:01:44 : Erasing memory corresponding to segment 0:
11:01:44 : Erasing internal memory sectors [0 1]

Imen.D
ST Employee

Did you check the value of the SFSA and SBRV option bytes?

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

SFSA = 0xCE,  Address = 0x080CE000

SBRV = 0x33800 

Capture.PNG