stm8-bootloader logo

stm8-bootloader

Free

Serial bootloader for STM8S microcontrollers

FreeFree tier
Type
Open Source

About stm8-bootloader

A serial bootloader for STM8S and STM8L microcontrollers, designed to be small (fits in 547 bytes) and fast (uploads a 4k binary in 1 second at 115200 bps). It is configurable for different flash block sizes, boot addresses, and entry jumper pins, with optional interrupt vector relocation. The project includes a Python uploader utility and is open source under the MIT license. Note: the repository was archived on April 3, 2025, and is no longer maintained; a fork with additional features is available.

Key Features

Extremely small footprint (547 bytes) fitting in low-density devices
Fast firmware upload: 4 kilobytes in 1 second at 115200 bps
Configurable parameters: flash block size, boot address, entry jumper pin, interrupt vector relocation
Supports both STM8S and STM8L microcontroller families
Includes a Python-based uploader utility for flashing firmware
Open source with MIT license, allowing free use and modification

Pros & Cons

Pros
  • Very small code size saves valuable flash memory
  • High upload speed reduces programming time
  • Configurable for different hardware setups
  • Open source with permissive MIT license
  • Comes with a ready-to-use uploader utility
Cons
  • Repository archived and no longer maintained by the original author
  • Requires an external UART-USB converter for communication
  • Limited to STM8S and STM8L families; does not support all STM8 variants
  • Only supports serial (UART) upload; no other interfaces like SPI or I2C

Best For

Programming and updating firmware on STM8S and STM8L microcontrollersEmbedded development and debugging with serial bootloadingCustom hardware projects requiring a minimal, configurable bootloader

FAQ

What microcontrollers are supported?
The bootloader supports STM8S and STM8L microcontrollers.
How do I upload firmware using this bootloader?
Short the BOOT_PIN (default PD3) to ground, power-cycle the MCU, then run the Python uploader utility (boot.py) with the firmware binary file.
Is this bootloader still maintained?
No. The repository was archived on April 3, 2025, and is now read-only. A fork by MKesenheimer with more features is available.