cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 field firmware upgrade with "CubeProgrammer Light"

blechleitner
Associate II

Hi everyone,

we have taken over the further development and support of a board containing a STM32F407. The board contains a USB port, connected to PA11/PA12, Reset and BOOT0 are connected to push-buttons. So a firmware upgrade by means of the STM32CubeProgrammer ist working well so far. The odd thing is, there are already a lot of boards in the wild, so we have to force the customer to perform firmware upgrades.

STM32CubeProgrammer is a development tool which has a lot of features. Most of them are not required for a simple firmware upgrade. When a customer wants to perform a firmware upgrade, it does not make sense to use the STM32CubeProgrammer pachkage as this is much too complicate and only confuses the customer. There is a potential risk do make things wrong, even with a precise step-by-step manual (erased Flash, ...). The installation of the tool needs administrator rights, which sometimes is a show stopper as well.

Is there any simple way to have a kind of "CubeProgrammer Light" which just have the necessary buttons to connect to the target, load a file and start the upgrade process, nothing more.Searching the forum and Google about field upgrade did not give me adequate results. I'm quite astonished that there is no simple solution for field upgrading. Idealy, this is a Tool which doesn't need any installation (for Windows).

I know about STM32CubeProgrammer_CLI.exe and the API together with the examples but the customer has still download and install the quite huge STM32CubeProgrammer package. Does someone know, which DLL's and so are required beside the USB driver, so that I could pack them into a own installer?

By the way, the solution has to run on Windows 11 and DFUse from ST is no longer supported and does not run under Windows 11.

Thanks a lot in advance!

Bernhard

4 REPLIES 4
Pavel A.
Evangelist III

So your update procedure is over USB, and you're using the built-in STM32 bootloader in DFU mode, is this correct? And the old DFUse worked well for this purpose?

 

I'm quite astonished that there is no simple solution for field upgrading. Idealy, this is a Tool which doesn't need any installation (for Windows).

As you may imagine you're not the first person with such need. There are lots of devices in the field and all that is serviced somehow. Have you looked around?

Modern Windows have the "WinUSB" feature (API, in-box driver ), it can be used to develop a custom tool for DFU protocol. Ideally the USB device firmware has a special descriptor that allows this without custom drivers. You can consider this for future firmware updates.

 

AScha.3
Principal III

Hi,

Something like this : webapp for dfu :

https://devanlai.github.io/webdfu/dfu-util/

 

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

Back in the day people used to employ engineers who could write Windows drivers and tools..

You should be able to get to the USB Stack and push in URB / IRP via IOCTL's, filter drivers, etc. I'd imagine Microsoft still has their Windows DDK

Several examples out there of USB devices providing a Faux MSC you can drag-n-drop updates into that might be relatively platform agnostic. Could present as a CDC/ACM and X-MODEM stuff in via connectivity to COM/TTY ports.

Complex devices people frequently use SD Cards, or USB Flash stick, or Network connection

People come up with commercial solutions, but they are often closed source and not shared. Designed around how the company thinks the user interface should present to an end user.

Tips, buy me a coffee, or three.. PayPal Venmo Up vote any posts that you find helpful, it shows what's working..

Back in the day people used to employ engineers who could write Windows drivers and tools.

LOL. Yes there were the days)) but no more.