User Tools

Site Tools


OpenBLT Embedded Library (LibMicroBLT)

The LibMicroBLT library encompasses all the functionality needed to perform a firmware update on another microcontroller, running the OpenBLT bootloader. In essence, LibMicroBLT is a microcontroller optimized version of LibOpenBLT. The latter one was designed for PCs and embedded Linux devices.

LibMicroBLT assumes that the main controller features a file system for the storing firmware files. For example on an SD card, USB stick or a flash memory chip. Internally, the library uses the FatFs software component for accessing the file system:

You are free to choose how the firmware files end up on the file system. A few ideas:

  • Manually copied from your PC.
  • Downloaded from an FTP server or network drive.
  • Downloaded from cloud storage (S3 bucket, Dropbox, Google Drive, OneDrive, etc.)

LibMicroBLT is written in the C programming language (C99) with MISRA compliance in mind. Thanks to its permissive MIT license, you are free to integrate and distribute the library in your commercial closed source firmware.

Example system

Combining LibMicroBLT with OpenBLT's Master/Slave Gateway add-on module opens the path to all sorts of nifty system architectures for performing firmware updates. For example:

The main controller, running LibMicroBLT, could perform firmware updates on all attached nodes. In this system architecture, you would just need to integrate the Master/Slave Gateway add-on module with the OpenBLT bootloaders on Node A1 and Node B1.

Getting started

To get started with LibMicroBLT, it is recommended to download the latest stable release from the releases page. Next, read through the getting started documentation in the user manual.

User manual

The online user manual is located at the following location:


LibMicroBLT itself is not included in the OpenBLT download package. Development of LibMicroBLT takes place at GitHub. Feel free to contribute by submitting issues and pull requests.

Make sure to update the submodules after cloning the GIT repository, because LibMicroBLT makes use of a few submodules:

git clone
git submodule update --init
manual/libmicroblt.txt · Last modified: 2022/07/11 11:53 by voorburg