====== 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 [[manual:libopenblt|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: {{:manual:libmicroblt_architecture.png?nolink&|}} 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 [[https://www.feaser.com/en/addons.php#gateway|Master/Slave Gateway add-on module]] opens the path to all sorts of nifty system architectures for performing firmware updates. For example: {{:manual:example_system_architecture.png?nolink&|}} 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 [[https://github.com/feaser/libmicroblt/releases|releases]] page. Next, read through the getting started documentation in the [[https://feaser.github.io/libmicroblt|user manual]]. ===== User manual ===== The online user manual is located at the following location: * [[https://feaser.github.io/libmicroblt|https://feaser.github.io/libmicroblt]] ===== Development ===== 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. * [[https://github.com/feaser/libmicroblt/|https://github.com/feaser/libmicroblt/]] Make sure to update the submodules after cloning the GIT repository, because LibMicroBLT makes use of a few submodules: git clone https://github.com/feaser/libmicroblt.git git submodule update --init