I'm going to evaluate STM32F030 microcontrollers (ARM) for replacement in one measuring device - and ordered a few already. Meanwhile I'm trying to collect info on how to work with them.

Currently I'm seeking for ways to flash them under Ubuntu - I want some console tool working via UART and built-in bootloader. I've found what seems to be an instruction with using OpenOCD, but I would be glad to hear about other utilities.

I need not debugging features, just to be able to flash a hex file to, probably, about a hundred devices... So the simpler - the better!

  • \$\begingroup\$ Setting up SWD is useful for development, but for the actual UART bootloader you might try sourceforge.net/projects/stm32flash though I've only used it with the F1 family and don't know if it supports the F0 parts out of the box. \$\endgroup\$ Dec 21, 2015 at 0:29

1 Answer 1


There is an Open Source Python serial bootloader which I have used with STM32F103.

It is described, along with a bug fix, at Pete Harrisons' Micromouse Online web site. It gives links to the original script as well as his fixed version. You will need Python 2.6 or newer, but not Python 3. You'll also need the PySerial library.

It is command-line driven, so you can use it from the console and scripts.

If you decide to use ST Micro's Discovery or Nucleo boards for development, which include an ST-Link/V2, there is an Open Source loader for STLink at by Texane at github. It requires the Open Source libusb-1.0 library, but you may already have that installed.

It is also command-line driven.

The ST Nucleo development boards are also mbed's, so they have a nifty feature. They look like a USB flash drive to the host OS, and copying a file to the drive programs the target MCU. So these don't need any extra host software for upload.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.