Using STM32's Serial Bootloader

All STM32 ARM chips contain a hard-coded bootloader that allows them to be programmed via USART1.

Note: Espruino boards have a USB implementation of the STM32 bootloader protocol built in. Do not follow these instructions unless you want to overwrite the bootloader.

Wiring Up

USART1 is usually on pins PA9 (TX) and PA10 (RX) of the chip itself, and it is 3.3v TTL level. If you have an:

Enabling the Bootloader

To get into the bootloader, you need to reset the device with the BOOT0 pin set to 1, and  BOOT1 set to 0:


On Windows

ST provide an application called the 'ST Flash Loader Demonstrator' that allows you to easily flash your device. Just download the tool and follow their instructions.

On Mac OS / Linux 

The instructions are detailed more fully here:

Beaglebone Black (or other embedded Linux)

See this forum post for more details.

After Flashing

Just ensure that the BOOT0 pin is set to 0 again (On Maple/Olimexino you don't need to worry) and press Reset. Espruino should start right up!