cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to start FUS

ATaba.1
Associate II

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

1 ACCEPTED SOLUTION

Accepted Solutions
Remy ISSALYS
ST Employee

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

View solution in original post

27 REPLIES 27
Remi QUINTIN
ST Employee

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
Associate II

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 Employee

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
Associate II

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 Employee

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
Associate II

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 Employee

Hello,

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

Best Regards

ATaba.1
Associate II

Sure, following is the screenshot:

0693W00000Kbz4NQAR.png

Miss SBRV option byte