2025-06-27 8:24 AM - last edited on 2025-06-27 11:33 AM by Peter BENSCH
Hi,
I am new to the field of ST Microcontrollers and am currently working on developing firmware for a product that utilizes the STM32 Microcontroller, specifically the NUCLEO-H7A3ZI board. We are using the design implemented on this board as a reference for our product.
This product will be deployed at remote locations for data collection purposes, among other things. We have a requirement from our customer to frequently update the firmware on these deployed products. The most feasible option we have identified is to distribute the latest firmware on USB pen drives, which local technicians or end-users can then use to perform the update.
Could you please explain the necessary steps to accomplish this firmware update process using a USB pen drive?
You can explain the process of firmware upgrade using USB pen drive, by taking a simple example say :Hello world or a LED blinking program as an example. Once I learn how to do it for simple LED blinking program I can extend it to larger firmware which I am developing
Additionally, are there any tutorials or guides available that detail this procedure?. Pls note I am new to the field of ST Microelectronics, where as I am familiar with other Microcontrollers.
Thank you for your time and assistance.
2025-06-27 9:39 AM
This is not an MPU class device (Embedded Linux, STM32MP), but rather an MCU
Perhaps look for examples of FWUpgrade using a USB MSC Host driver and FAT File System
Here for a different H7 EVAL board
If you have other storage requirements, could perhaps look to using Micro SD card.
Look at other examples of IAP (In Application Programming), use of boot loaders, and erase/write of portions of FLASH
2025-06-27 10:17 AM - edited 2025-06-27 10:18 AM
@GirishKumar wrote:Could you please explain the necessary steps to accomplish this firmware update process using a USB pen drive?
This would be exactly the same as with any other microcontroller.
There are 2 things you require:
To read from the USB stick, you will need:
For the bootloader, as @Tesla DeLorean said, see the various IAP application notes.
See also the ST Open Bootloader:
2025-06-27 2:35 PM - edited 2025-06-27 2:40 PM
As Andrew Neil mentioned, your update solution requires USB *host* mode. If your data logger already has the USB host port and can handle USB drives, fine. Otherwise, can you consider USB *device* mode? This has several advantages:
But you'll need other computer (laptop, android phone etc.) to perform the update as the USB host.
2025-06-27 2:46 PM
https://github.com/microsoft/uf2
https://github.com/mmoskal/uf2-stm32f103
https://github.com/mmoskal/uf2-stm32f
https://github.com/striso/uf2-ChibiOS