2025-07-30 6:17 AM
Hi support,
I’m currently working with a Nucleo-WB55RG board, and my goal is to perform a firmware update using an ESP32 as the host. The ESP32 is connected to the STM32 via USART1 (PA9 and PA10).
The sequence followed is :
1. Connect to the bootloader
2. Test the link with Get command
3. Erase memory (mass erase)
4. Write binary + read for checking data
5. Go
I’m encountering an issue when sending the Extended Erase command to the bootloader (3. Erase memory). I followed the documentation closely for both the hardware and protocol, as described in AN2606 (pattern 16) and AN3155.
Here is my manipulations :
=====================
First step : activation and synchronization with the bootloader :
0x7F sent
0x79 received
Then, Get command to check supported commands on the chip. Those are following :
I’m unsure why the bootloader stops responding after the global erase request (0xFFFF). Could you advise whether there’s a known issue or a missing step in this sequence?
Thanks in advance for your help.
Best regards,
2025-07-30 7:04 AM
How is the bootloader being launched? If you're jumping from the application, consider trying to hold BOOT0 high during reset instead. Could be something on the chip is in a non-reset state.
2025-07-30 7:45 AM
The bootloader follows this hardware configuration to be launched :
Pin PH3-boot0 connected to an IO of the esp32.
Pin Reset connected to another IO of the esp32.
This procedure is described inside the AN2606, pattern 16 (First condition).
The esp32 drives the stm32 inside the bootloader mode or application mode with the state of PH3-BOOT0 pin. It is not an IAP used.
This procedure seems to work perfectly, as I can synchronized with the bootloader and execute the Get command..