Skip to main content
Visitor II
June 22, 2026
Question

Large Firmware File Transfer over UART on STM32H563ZI

  • June 22, 2026
  • 2 replies
  • 92 views

Dear  Team,

I am currently working on an application based on the STM32H563ZITx microcontroller using the NUCLEO-H563ZI development board.

The application is designed as a gateway that communicates with another controller through a UART interface. The same UART interface is also used to program the target controller with firmware updates.

For the software implementation, I am using STM32CubeH5 v1.6.0 and have adopted the Nx_Iperf reference project for the NUCLEO-H563ZI board to develop a web-based user interface.

The following functionalities have been successfully implemented and tested:

  • Reading data from the target controller via UART
  • Writing data to the target controller via UART
  • Firmware download and programming through the same UART interface

However, I am encountering an issue when transferring firmware (.bin) files. The system appears to accept only about 54 KB of data, after which the transmission stops. As a result, I am unable to transfer larger firmware images.

My application requirement is to support firmware files of up to 300 KB and transmit them reliably to the target controller over UART.

Could you please help me understand:

  1. Whether there are any known limitations in the Nx_Iperf reference application, NetX Duo HTTP server, FileX, or STM32CubeH5 framework that could cause this behavior.
  2. The recommended approach for handling large file uploads and UART forwarding on the STM32H563ZI.
  3. Any APIs, middleware components, examples, or reference projects that support large firmware file transfers (greater than 280 KB) through a web interface and subsequent transmission over UART.
  4. Best practices for buffer management, packetization, DMA-based UART transfer, and file streaming to avoid storing the entire firmware image in RAM.

Any guidance, application notes, or example implementations would be greatly appreciated.

2 replies

MOBEJ
ST Employee
June 22, 2026

Hello ​@Shubham K  ,


Did you try this example from the STM32CubeH5 package?
https://github.com/STMicroelectronics/STM32CubeH5/tree/main/Projects/NUCLEO-H563ZI/Applications/NetXDuo/Nx_Iperf
It may help you for your application  on the NUCLEO-H563ZI.


Br
 

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.
Andrew Neil
Super User
June 22, 2026

You could look at the STM32 UART Bootloader Protocol ?

 

X/Y/Z-Modem have been used; eg, Application Note AN4657STM32 in-application programming (IAP) using the USART

 

PS:

And there’s SLIP if you want to do something IP-based …

RFC 1055

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.