cancel
Showing results for 
Search instead for 
Did you mean: 

CubeProgrammer firmware upgrade, Error: firmware not authentic (P-NUCLEOWB55)

Javier1
Principal

I am trying to follow this video: because i think i bricked my coprocessor (m0+ ), same thing happens in two different boards.✌�?

STM32WB Getting Started Series: Part 9, Stack Loading

https://www.youtube.com/watch?v=wheGvdXsi4o

When i click firmware upgrade

\STM32Cube\Repository\STM32Cube_FW_WB_V1.12.1\Projects\STM32WB_Copro_Wireless_Binaries\STM32WB5x\stm32wb5x_BLE_Stack_full_fw.bin

i get this Error: Firmware not authentic!0693W00000DmWwUQAV.pngthe firmware start addr in the video is outdated, with fw v1.12.1 the correct addr is 0x080CA000 but still same result:

0693W00000DmX6oQAF.pnglogs:

13:06:53 : FUS state is FUS_IDLE
      13:06:53 : FUS status is FUS_NO_ERROR
      13:06:53 : Read FUS state command execution finished
      13:06:53 : UPLOADING ...
      13:06:53 :   Size          : 4 Bytes
      13:06:53 :   Address       : 0x20030030
      13:06:53 : Read progress:
      13:06:53 : Data read successfully
      13:06:53 : Time elapsed during the read operation is: 00:00:00.004
      13:06:58 : FUS state is FUS_IDLE
      13:06:58 : FUS status is FUS_NO_ERROR
      13:07:00 : Old Firmware delete ...
      13:07:00 : Deleting firmware ...
      13:07:01 : Firmware delete finished
      13:07:01 : FUS state is FUS_SERVICE_ONGOING
      13:07:01 : FUS status is FUS_IMAGE_NOT_FOUND
      13:07:03 : FUS state is FUS_IDLE
      13:07:03 : FUS status is FUS_NO_ERROR
      13:07:06 : Download Stack/FUS image at address 0x80ca000 ...
      13:07:06 : Memory Programming ...
      13:07:06 : Opening and parsing file: stm32wb5x_BLE_Stack_full_fw.bin
      13:07:06 :   File          : stm32wb5x_BLE_Stack_full_fw.bin
      13:07:06 :   Size          : 170804 Bytes
      13:07:06 :   Address       : 0x080CA000 
      13:07:06 : Erasing memory corresponding to segment 0:
      13:07:06 : Erasing internal memory sectors [202 243]
      13:07:06 : erasing sector 0202 @: 0x080ca000 done
      13:07:06 : erasing sector 0203 @: 0x080cb000 done
      13:07:06 : erasing sector 0204 @: 0x080cc000 done
      13:07:06 : erasing sector 0205 @: 0x080cd000 done
      13:07:06 : erasing sector 0206 @: 0x080ce000 done
      13:07:06 : erasing sector 0207 @: 0x080cf000 done
      13:07:06 : erasing sector 0208 @: 0x080d0000 done
      13:07:06 : erasing sector 0209 @: 0x080d1000 done
      13:07:06 : erasing sector 0210 @: 0x080d2000 done
      13:07:06 : erasing sector 0211 @: 0x080d3000 done
      13:07:06 : erasing sector 0212 @: 0x080d4000 done
      13:07:06 : erasing sector 0213 @: 0x080d5000 done
      13:07:06 : erasing sector 0214 @: 0x080d6000 done
      13:07:06 : erasing sector 0215 @: 0x080d7000 done
      13:07:06 : erasing sector 0216 @: 0x080d8000 done
      13:07:06 : erasing sector 0217 @: 0x080d9000 done
      13:07:06 : erasing sector 0218 @: 0x080da000 done
      13:07:06 : erasing sector 0219 @: 0x080db000 done
      13:07:06 : erasing sector 0220 @: 0x080dc000 done
      13:07:06 : erasing sector 0221 @: 0x080dd000 done
      13:07:06 : erasing sector 0222 @: 0x080de000 done
      13:07:06 : erasing sector 0223 @: 0x080df000 done
      13:07:06 : erasing sector 0224 @: 0x080e0000 done
      13:07:06 : erasing sector 0225 @: 0x080e1000 done
      13:07:06 : erasing sector 0226 @: 0x080e2000 done
      13:07:07 : erasing sector 0227 @: 0x080e3000 done
      13:07:07 : erasing sector 0228 @: 0x080e4000 done
      13:07:07 : erasing sector 0229 @: 0x080e5000 done
      13:07:07 : erasing sector 0230 @: 0x080e6000 done
      13:07:07 : erasing sector 0231 @: 0x080e7000 done
      13:07:07 : erasing sector 0232 @: 0x080e8000 done
      13:07:07 : erasing sector 0233 @: 0x080e9000 done
      13:07:07 : erasing sector 0234 @: 0x080ea000 done
      13:07:07 : erasing sector 0235 @: 0x080eb000 done
      13:07:07 : erasing sector 0236 @: 0x080ec000 done
      13:07:07 : erasing sector 0237 @: 0x080ed000 done
      13:07:07 : erasing sector 0238 @: 0x080ee000 done
      13:07:07 : erasing sector 0239 @: 0x080ef000 done
      13:07:07 : erasing sector 0240 @: 0x080f0000 done
      13:07:07 : erasing sector 0241 @: 0x080f1000 done
      13:07:07 : erasing sector 0242 @: 0x080f2000 done
      13:07:07 : erasing sector 0243 @: 0x080f3000 done
      13:07:07 : Download in Progress:
      13:07:10 : File download complete
      13:07:10 : Time elapsed during download operation: 00:00:03.843
      13:07:10 : FUS state is FUS_IDLE
      13:07:10 : FUS status is FUS_NO_ERROR
      13:07:12 : Firmware Upgrade process started ...
      13:07:12 : Updating firmware ...
      13:07:12 : Waiting for firmware upgrade end
      13:07:12 : FUS state is WIRELESS_STACK_UPGRADE_ONGOING
      13:07:12 : FUS status is FUS_NO_ERROR
      13:07:15 : FUS state is WIRELESS_STACK_UPGRADE_ONGOING
      13:07:15 : FUS status is FUS_IMAGE_NOT_AUTHENTIC
      13:07:15 : Error: Firmware not authentic!

we dont need to firmware by ourselves, lets talk
16 REPLIES 16

>Please use the CubeProgrammer V2.8 version which ahs the "Start FUS" button and is able to read the FUS state even via the SWD port. This was not the case with version 2.6 or earlier.

I am using a 2.6 version (7months old), i missed the two last updates ,my bad.

I downloaded the 2.8 version all buttons are there.

 >“Firmware not authentic�? error message can absolutely result from the fact that an old version of FUS is installed on your board with an old decryption key that does not match a new one used to encrypt the new FW stack .

It sounds plausible,thanks this solves my issues

we dont need to firmware by ourselves, lets talk
DPars.2
Associate III

I'm having a similar issue...

https://community.st.com/s/question/0D53W00001Fmu49SAB/unable-to-successfully-load-ble-firmware-because-of-fusimagenotauthentic-so-my-code-is-failing-in-shcic2bleinit

I tried reverting back to 1.0.2 but it just tells me that I already have a newer version installed.

0693W00000HojIrQAJ.png@Remi QUINTIN​ , if I have one of those old decryption keys that does not match the new stack how do I update that key?

@DPars.2​ what version of cubeProgrammer do you have? my problems were solved by upgrading to latest version

we dont need to firmware by ourselves, lets talk
DPars.2
Associate III

Thank you for the response @Javier Muñoz​ . I am using CubeProgrammer v2.9. I did notice that my command line programming was still using an earlier version so I updated that but it didn't change anything.

One thing I did notice during command line programming that I hadn't be before is that for the STM32WB5xxE (512K part I'm using) the FUS for 1.12.1 is supposed to be placed at 0x0807A000. I'm loading stm32wb5x_BLE_Stack_full_fw.bin which is 170804 bytes so it takes up 42 memory segments. If I place it at the recommended location of 0x08056000 it erases and programs through section 0x0807F000. Obviously this just writes over the FUS code. So I moved the BLE firmware to 0x0804F000 so that it ends before the FUS. It actually worked on one of the boards that I'm having an issue with but on a couple of others I'm not getting a flash write error (FUS_IMAGE_WRTERROR).

Here's the command line printout:

0693W00000HorTEQAZ.png0693W00000HorTiQAJ.png0693W00000HorU7QAJ.png

I actually don't think this is how this works, but I was able to successfully write the BLE firmware by trying different start addresses and different size files (full, light and basic versions of BLE).

@DPars.2​ im afraid i cannot help you here

I worked on this issue briefly 2 months ago, gladly never had to come back to it.

I hope you the remaining two boards, stm32's BLE developing experience is a bit messy

we dont need to firmware by ourselves, lets talk

Found a solution that worked

FUS_STATE_IMG_NOT_AUTHENTIC error updating FUS from 1.1.0 to 1.2.0 on STM32WB5MM-DK

"I have solved it with a full chip erase. I think it was the option byte nSWBOOT0 set to 1 before the update."

this worked for me and I was starting with 0.5.3 (although a full erase removes that 😉