2025-12-28 8:27 PM
I am using the STM32U585RIT6 MCU with the B-U585I-IOT02A development kit. My primary focus is on USB, and in my project, I have enabled USB CDC-ACM, through which data and messages are transmitted over USB.
For this project, I need to enable firmware update support. I have been searching for a suitable example, but most available examples require manual interaction with the hardware—such as setting the BOOT0 pin high and resetting the board, or pressing a user button to jump to the bootloader and perform the firmware update via a programmer.
However, I do not want any physical interaction with the board. I need the firmware update to be triggered purely through software, perform the update, and reset the device without manually changing the BOOT0 pin or pressing any buttons.
Is this possible? If so, what are the steps that need to be followed, and are there any reference examples available for this approach?
Solved! Go to Solution.
2025-12-30 7:47 AM
You can implement a composite device supporting DFU and CDC ACM to manage data communication and firmware update when needed.
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-12-28 8:44 PM
Jump to the bootloader in software, do the update, and reset the chip.
Here is how to jump to the bootloader in software. Don't jump from within an interrupt.
How to jump to system bootloader from application ... - STMicroelectronics Community
You can obviously make your own custom bootloader as well, but it's a lot easier to use the built in USB DFU bootloader along with STM32CubeProgrammer CLI.
2025-12-30 7:47 AM
You can implement a composite device supporting DFU and CDC ACM to manage data communication and firmware update when needed.
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.