How to flash firmware

From STorM32-BGC Wiki
Revision as of 07:34, 23 April 2018 by OlliW (talk | contribs)
Jump to navigation Jump to search

This page is for instructions on how to flash firmware onto v3.x STorM32 boards.

For instructions on how to flash v1.1/v1.2/v1.3/v1.3x STorM32 boards, please consult How to flash v1.x STorM32 boards.

The flashing manual is different for the v3.x and v1.x boards because the v3.x boards can be upgraded via the USB plug, which is not possible with the v1.x boards. For the v3.x boards in fact two situations can be distinguished, which are called "Upgrading" and "First-Time Flashing":

  • Upgrading: If your v3.x board runs a valid STorM32 firmware, and you want to upgrade or downgrade, then this is the procedure to choose, since it is most simple.
  • First-Time Flashing: In all other cases, i.e., if your v3.x board has not yet a STorM32 firmware installed or you don't want to use the upgrade method, then this is what needs to be done.

In the following the flashing procedures for both cases are described.

Comment: The same distinction also exists for flashing NT modules, see How to flash NT Modules.

Updating Firmware

If your v3.x STorM32 board runs already a firmware, then this is the canonical procedure for upgrading:


First-Time Flashing

If your v3.x STorM32 board has not yet been flashed with a firmware, or runs a wrong firmware, then one needs to resort to grass roots flashing methods for flashing the firmware (first-time flashing). For details see here:


General Comments on the First-Time Flashing Process

In general the firmware can be flashed in two different ways into the STM32 micro-controllers used in the STorM32 board:

  1. via the serial (system) bootloader using the USB port
  2. via SWD using a ST-Link programmer

Method (1) is most convenient in the sense that no additional hardware is needed. However, the grain of salt, the BOOT0 pin needs to be temporarily shortened to GND for method (1) to work, e.g., by closing the solder pad.

Method (2) requires a dedicated ST-Link programmer as additional hardware. It is cheaply available, but nevertheless it is an additional piece of hardware.