cancel
Showing results for 
Search instead for 
Did you mean: 

How to fix "Old firmware delete failed" error while trying to firmware update?

DImre.1
Associate III

I tried to update the firmware on P-NUCLEO-WB55 devboard, but it fails with the following error:

"Error: FUS_STATE_ERR_UNKNOWN

Error:

Old Firmware delete failed"

I check in STM32CubeProgrammer, and I have V.0.0.0 version:

0693W00000Dpml4QAB.png 

I do not know why it happened, maybe a previous incorrect way of upgrade process.

Any idea how can I resolve it?

Additional info:

The dongle is ok, I could update it via USB, it has fw V1.1.2.0 version.

21 REPLIES 21
Remi QUINTIN
ST Employee

This means the FUS is not activated.

Using cube programmer v2.8, you can start the FUS using the "Start FUS" button.

What is the port used to connect to your board?: USB or SWD (ST-LINK) port?

SWD (ST-Link) port.

Remi QUINTIN
ST Employee

OK.

So be sure to activate the FUS and then read the FUS again.

please provide a log of the FW installation if it fails again.

Unfortunately it is not working:

11:55:49 : Error: FUS_STATE_ERR_UNKNOWN

11:55:49 : Start FUS failed !

11:55:49 : Error: Start FUS Operation Failure! Please, try again.

Looks like there is no fw (or broken) on the device, therefore I can't start it or even upgrade it.

I attached the log from STM32CubeProgrammer.

from command window:

C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=swd mode=UR -startfus

   -------------------------------------------------------------------

            STM32CubeProgrammer v2.7.0

   -------------------------------------------------------------------

ST-LINK SN : 066AFF555550727867084743

ST-LINK FW : V2J37M27

Board    : P-NUCLEO-WB55

Voltage   : 3.28V

SWD freq  : 4000 KHz

Connect mode: Under Reset

Reset mode : Hardware reset

Device ID  : 0x495

Revision ID : Rev B

Device name : STM32WB5x

Flash size : 1 MBytes

Device type : MCU

Device CPU : Cortex-M4

Warning: Option Byte: nSWboot0, value: 0x0, was not modified.

Warning: Option Byte: nboot0, value: 0x1, was not modified.

Warning: Option Byte: nboot1, value: 0x1, was not modified.

Warning: Option Bytes are unchanged, Data won't be downloaded

Succeeded to set nSWboot0=0 nboot1=1 nboot0=1

Memory Programming ...

Opening and parsing file: 0x495_FUS_Operator.bin

 File     : 0x495_FUS_Operator.bin

 Size     : 8 KBytes

 Address    : 0x08000000

Erasing memory corresponding to segment 0:

Erasing internal memory sectors [0 1]

Download in Progress:

██████████████████████████████████████████████████ 100%

File download complete

Time elapsed during download operation: 00:00:00.352

Application is running, Please Hold on...

Reconnecting...

Reconnected !

Reconnecting...

Reconnected !

Error: FUS_STATE_ERR_UNKNOWN

Error: Fus is not yet running, try again

Remi QUINTIN
ST Employee

Could you try in USB DFU mode?

How old is your Nucleo board?

Is it the first time you tried to upgradde the FUS?

Could you give me the value of the SFSA and SBRV option bytes?

Could you try in USB DFU mode?

--> I do it now, and will give you feedback.

How old is your Nucleo board?

-->first time it is used, unpacked yesterday. No idea when it was manufactured, but on the sheet in the package I see July 2019.

Is it the first time you tried to upgradde the FUS?

--> yes.

Could you give me the value of the SFSA and SBRV option bytes?

-> value of SFSA: val0xd0, addr: 0x080d0000, SBRV: 0x34000

Even more info:

C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=swd mode=UR --optionbytes displ

   -------------------------------------------------------------------

            STM32CubeProgrammer v2.7.0

   -------------------------------------------------------------------

ST-LINK SN : 066AFF555550727867084743

ST-LINK FW : V2J37M27

Board    : P-NUCLEO-WB55

Voltage   : 3.28V

SWD freq  : 4000 KHz

Connect mode: Under Reset

Reset mode : Hardware reset

Device ID  : 0x495

Revision ID : Rev B

Device name : STM32WB5x

Flash size : 1 MBytes

Device type : MCU

Device CPU : Cortex-M4

UPLOADING OPTION BYTES DATA ...

 Bank     : 0x00

 Address    : 0x58004020

 Size     : 96 Bytes

██████████████████████████████████████████████████ 100%

 Bank     : 0x01

 Address    : 0x58004080

 Size     : 8 Bytes

██████████████████████████████████████████████████ 100%

OPTION BYTES BANK: 0

  Read Out Protection:

   RDP     : 0xAA (Level 0, no protection)

  BOR Level:

   BOR_LEV   : 0x0 (BOR Level 0 reset level threshold is around 1.7 V)

  User Configuration:

   nBOOT0    : 0x1 (nBOOT0=1 Boot from main Flash)

   nBOOT1    : 0x1 (Boot from code area if BOOT0=0 otherwise system Flash)

   nSWBOOT0   : 0x0 (BOOT0 taken from the option bit nBOOT0)

   SRAM2RST   : 0x0 (SRAM2 erased when a system reset occurs)

   SRAM2PE   : 0x1 (SRAM2 parity check disable)

   nRST_STOP  : 0x1 (No reset generated when entering the Stop mode)

   nRST_STDBY  : 0x1 (No reset generated when entering the Standby mode)

   nRSTSHDW   : 0x1 (No reset generated when entering the Shutdown mode)

   WWDGSW    : 0x1 (Software window watchdog)

   IWGDSTDBY  : 0x1 (Independent watchdog counter running in Standby mode)

   IWDGSTOP   : 0x1 (Independent watchdog counter running in Stop mode)

   IWDGSW    : 0x1 (Software independent watchdog)

   IPCCDBA   : 0x3 (0x3)

  Security Configuration Option bytes - 1:

   ESE     : 0x1 (Security enabled)

  PCROP Protection:

   PCROP1A_STRT : 0x1FF (0x80FF800)

   PCROP1A_END : 0x0 (0x8000800)

   PCROP_RDP  : 0x1 (PCROP zone is erased when RDP is decreased)

   PCROP1B_STRT : 0x1FF (0x80FF800)

   PCROP1B_END : 0x0 (0x8000800)

  Write Protection:

   WRP1A_STRT  : 0xFF (0x80FF000)

   WRP1A_END  : 0x0 (0x8000000)

   WRP1B_STRT  : 0xFF (0x80FF000)

   WRP1B_END  : 0x0 (0x8000000)

OPTION BYTES BANK: 1

  Security Configuration Option bytes - 2:

   SFSA     : 0xD0 (0x80D0000)

   FSD     : 0x0 (System and Flash secure)

   DDS     : 0x1 (CPU2 debug access disabled)

   C2OPT    : 0x1 (SBRV will address Flash)

   NBRSD    : 0x1 (SRAM2b is non-secure)

   SNBRSA    : 0x14 (0x2003D000)

   BRSD     : 0x1 (SRAM2a is non-secure)

   SBRSA    : 0xA (0x20032800)

   SBRV     : 0x34000 (0x20000000)

Hi Remi,

When I turn the Nucleo board to USB mode, computer can't discover it (actually no sign that any USB device is attached).

USB1 is the dongle when I attach it. But as far as I understand, I shall upgrade directly the Nucleo board, not?

So I need it to be discovered by the computer. Does the dongle play any role in this upgrade process? As I wrote earlier the dongle was successfully upgraded to V1.1.2.0 (not like the Nucleo board).

BR,

David