Skip to main content
KWah.1
Associate
Dec 30, 2020 9:31 AM UTC
Question

Is it possible to save the initial firmware that came along with the STM32 P-NUCLEO-WB55 board?

I am intending to flash MicroPython into this board, where I understand there is extensive support for this. I would like to investigate the possibility of using ST-Link Utility to save the initial firmware that came along with the board, so that I will be able to rollback in the event I realize that MicroPython will not be good for my use-case.

This topic has been closed for replies.

10 replies

Uwe Bonnes
Chief
Dec 30, 2020 10:16 AM UTC

Use any debugger ot stm32cubeprogrammer.

KWah.1
KWah.1Author
Associate
Dec 30, 2020 11:38 AM UTC

I know that, but the thing is I'm not sure if it's possible to save the initial firmware using STM32CubeProgrammer (the option does not seem to be available and I am unsure about the size of the firmware inside the board), so...

But I do know that if I wish to flash a new firmware, I believe you'd be right...

Uwe Bonnes
Chief
Dec 30, 2020 12:25 PM UTC

Attach with STM32CubeProgrammer to the WL and read out flash and save it. To my knowledge, the Nucleo-WL has proprietary custom firmware in the upper half of the flash, probably read protected. If you want to overwrite that, more concerns apply.

KWah.1
KWah.1Author
Associate
Dec 30, 2020 12:33 PM UTC

In other words, is it correct to say that I will never be able to flash the original firmware unless I try to overwrite this read-protection?

KWah.1
KWah.1Author
Associate
Dec 30, 2020 4:52 PM UTC

Also, I would like to check if flashing MicroPython would eliminate the ability of the Nucleo-WB55 to be accessed with the STM32 CubeProgrammer? I do not think this should be the case...?

Remi QUINTIN
ST Technical Moderator
Dec 31, 2020 3:08 PM UTC

You don’t need to save it. It is available under the STM32Cube_FW_WB_V1.10.0\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_p2pServer\Binary directory.

To restore it, you just have to program the BLE_p2pServer_reference.hex file at the start of the main flash.

Remi QUINTIN
ST Technical Moderator
Dec 31, 2020 3:11 PM UTC

I see some statements regarding WL device. I assume it is a typo.​

KWah.1
KWah.1Author
Associate
Dec 31, 2020 3:17 PM UTC

Oh, I figured that out after some trial and error! Thank you for your help! Now I am trying to restore the DFU mode for the Nucleo-WB55 (because mostly I accidentally went to upgrade the firmware using ST-LINK and I believe I forgot to set something inside, but setting nSWboot0=1 just returned me a: Error: The FUS version you're trying to install is older/equal to the FUS version already installed !). I am still looking on how to restore the capability to set the WB55 into bootloader mode.

Remi QUINTIN
ST Technical Moderator
Dec 31, 2020 10:34 PM UTC

​If you still have access to the option bytes, you can set the BOOT0 pin HIGH with a jumper put on CN7-5 to CN7-7 and set the nSWboot0 to 1.  You will be in the DFU mode using the USB user connector. After reset, the BL2_p2pserveur application starts advertising for a minute. This is the initial configuration for a WB55 nucleo board.

In the USB DFU mode, you can check the FUS version at address 0x20030030. If it is older than v1.1.0, you should upgrade the FUS.

You can of course use the Cubeprogrammer tool to perform all these steps.

AOfek.1
Visitor II
Jun 5, 2021 1:18 PM UTC

Hi Rami QUINTIN and KWah.1 ,

Have installed the micro python on the Nucleo WB.

Works good and easy on gpio and adc with machine, I2C, Pin and ADC imports.

Couldn't find an easy to use library for BLE though, ubluetooth is imported.

Is there one to be imported which is auto configured so words can be sent back and forth?

Kind of missing the ease of Arduino and esp32 which has lots of examples.

The task is

"read an I2C magnetic sensor which has 1 address pin then send the data to the nearby pc via BLE".

Thanks for the attention, hope you can help

Avi