Skip to main content
ATaba.1
Associate III
March 8, 2022
Solved

Unable to start FUS

  • March 8, 2022
  • 27 replies
  • 27239 views

I am using the STM32WB55RG MCU, Bluetooth feature with stack version 1.13.0 and FUS version 1.2.0. Everything was working normal until I tried doing the firmware upgrade of stack from v12.0 to v13.0. I am not able to perform FUS related operations. The version reading shows 0.0.0 for FUS. And following is the log when I hit "Start FUS"

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

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

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

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

 11:09:47 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1 

 11:09:47 : Memory Programming ...

 11:09:47 : Opening and parsing file: 0x495_FUS_Operator.bin

 11:09:47 :  File     : 0x495_FUS_Operator.bin

 11:09:47 :  Size     : 8 KBytes

 11:09:47 :  Address    : 0x08000000 

 11:09:47 : Erasing memory corresponding to segment 0:

 11:09:47 : Erasing internal memory sectors [0 1]

 11:09:47 : Download in Progress:

 11:09:47 : File download complete

 11:09:47 : Time elapsed during download operation: 00:00:00.272

 11:09:47 : Application is running, Please Hold on...

 11:09:47 : Reconnecting...

 11:09:47 : Reconnected !

 11:09:51 : Reconnecting...

 11:09:51 : Reconnected !

 11:09:51 : Error: FUS_STATE_ERR_UNKNOWN

 11:09:51 : Start FUS failed !

 11:09:51 : Error: Start FUS Operation Failure! Please, try again

Following is OB info attached. Cube programmer version I am using is : v2.9.0

What could be the issue, please let me know how to resolve FUS and start wireless stack successfully ?

Thanks.

Arshiya Tabassum

@bponnanavenkat@actalentservices.com

This topic has been closed for replies.
Best answer by Remy ISSALYS

Hello,

According to your screenshot, SBRV is equal to 0x3D800 that indicate FUS v0.5.3 is running on your board. So, you must update the FUS using the stm32wb5x_FUS_fw_for_fus_0_5_3.bin binary.

Best Regards

27 replies

Remi QUINTIN
ST Technical Moderator
March 8, 2022

A few points I would like to clarify.

Is your board a custom board and an ST board (Nucleo)?

Are you using WB FW v 1.12 or v1.13 on your board.

Why are you trying to upgrade the FUS v1.2? this version is the last and final one. It does not need to be upgraded. How do you know the FUS version on your board is the v1.2?

If your goal was to update the wireless FW, then you normally do not need to start the FUS.

Be sure the previous WB FW is deleted. Then you can do a mass erase of the user space of the flash memory. In the end launch the install command of the WB FW.

ATaba.1
ATaba.1Author
Associate III
March 9, 2022

Thank you for your quick reply, Remi.

  1. It is a custom board not a Nucleo
  2. I am using wireless stack version 1.13 and everything worked fine with Bluetooth connection before this issue. To test my firmware upgrade feature in my application I downgraded the BLE stack to version 1.12.(0x080CA000 based on Release_Note) through cubeprogrammer. Then I flashed the BLE stack v1.13 at address 0x0809A000 (though UART) and ran the firmware upgrade sequence as follows:
  • Start FUS - SHCI_C2_FUS_GetState(NULL) until FUS start
    • Delete stack - SHCI_C2_FUS_FwDelete()
    • Firmware upgrade - SHCI_C2_FUS_FwUpgrade(0,0)

I don't think the upgrade happened completely, because when I read wireless info I see wireless version as 1.12. And now I am not able to:

  • Start advertisement, or connect to BLE
    • Delete firmware through CubeProgrammer
    • Start FUS through CubeProgrammer
    • Upgrade stack through CubeProgrammer
Remy ISSALYS
ST Technical Moderator
March 9, 2022

Hello,

You can find FUS and wireless stack update procedure on this wiki page:

https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_BLE_Hardware_Setup#FUS_and_wireless_stack_update

A dedicate wiki page about FUS is also available:

https://wiki.st.com/stm32mcu/wiki/Connectivity:STM32WB_FUS

To request CPU2 to reboot on FUS, you must send twice the GetState FUS command like this:

     SHCI_C2_FUS_GetState( NULL );

     SHCI_C2_FUS_GetState( NULL );

And if you used BLE full stack of v1.13.0 release (e.g stm32wb5x_BLE_Stack_full_fw.bin), the start address is 0x080C7000 for STM32WB5xxG board according to Release_Note.

Best Regards

ATaba.1
ATaba.1Author
Associate III
March 9, 2022

Hi Remy,

I followed the same procedure listed in wiki page, I was able to connect to Bluetooth when I started my project some weeks ago.

But now I am facing a different issue. I tried doing the firmware upgrade of BLE stack through my program(code). After this I am not able to start wireless stack, or start FUS or do any BLE activity. I am suspecting my FUS is corrupted. But I am still getting a system event for FUS_FW_RUNNING so I am not sure if its corrupted.

I need your help to understand what might be the cause, and is there a way to reset the FUS to clean state to carry out the Bluetooth activities like before???

Remy ISSALYS
ST Technical Moderator
March 9, 2022

Hello,

Are you able to do something with STM32CubeProgrammer (e.g Start FUS, Upgrade FUS or Wireless Stack) ?

You can look this post to upgrade wireless stack or FUS with your program:

Can I upgrade the STM32WB wireless stack & FUS in a custom application?

Best Regards

ATaba.1
ATaba.1Author
Associate III
March 9, 2022

No, I am not able to do anything.

  1. Start FUS shows following error:

0693W00000KbynJQAR.png2. Upgrade FUS shows:

0693W00000KbypNQAR.png3.Upgrade wireless stack shows:

0693W00000Kbyq1QAB.pngAnd when these errors occur, if I read FUS info after these I see the following:

0693W00000KbyqkQAB.png

Remy ISSALYS
ST Technical Moderator
March 9, 2022

Hello,

Could you take a screenshot of Security Configuration Option Bytes - 2 ?

Best Regards

ATaba.1
ATaba.1Author
Associate III
March 9, 2022

Sure, following is the screenshot:

0693W00000Kbz4NQAR.png

Remy ISSALYS
ST Technical Moderator
March 9, 2022

Miss SBRV option byte

ATaba.1
ATaba.1Author
Associate III
March 9, 2022

Sorry about that, here it is:0693W00000KbzEcQAJ.png

Remy ISSALYS
ST Technical Moderator
March 10, 2022

Hello,

Load this diagnostic binary in M4 which display Wireless Stack and FUS version on debug trace and allow to perform some action:

  • Press SW1 to delete the installed Wireless Stack
  • Press SW2 to install the CPU2 update (either FUS or Wireless Stack), file already in flash memory
  • Press SW3 to switch between FUS and Wireless Stack

In your case, FUS is running, so try to delete the installed Wireless Stack and then with STM32CubeProgrammer install the stack with address indicated in release notes.

Best Regards