cancel
Showing results for 
Search instead for 
Did you mean: 

Request for Guidance on Software-Only Firmware Update Mechanism through USB

Rajendra_2002
Associate

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?

1 ACCEPTED SOLUTION

Accepted Solutions
FBL
ST Employee

Hi @Rajendra_2002 

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.




Best regards,
FBL

View solution in original post

2 REPLIES 2
TDK
Super User

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.

If you feel a post has answered your question, please click "Accept as Solution".
FBL
ST Employee

Hi @Rajendra_2002 

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.




Best regards,
FBL