// the find
feaser/openblt
Official read-only mirror of the SVN OpenBLT bootloader repository. Updated daily.
OpenBLT is a production-grade open source bootloader for embedded microcontrollers, primarily STM32 but also NXP, Infineon, and TI targets. It handles firmware updates over RS232, CAN, CAN FD, USB, TCP/IP, and Modbus RTU, and ships with both a GUI tool (MicroBoot) and a CLI (BootCommander). The target audience is embedded firmware engineers who need a field-updatable bootloader they can actually modify and own.
The transport layer abstraction is genuinely well-designed — the same host-side LibOpenBLT works across all transports, so switching from UART to CAN doesn't mean rewriting your update tool. The demo projects are extensive: pre-configured Boot and Prog examples for each supported board/toolchain combination (GCC and IAR variants both present), which cuts days off initial bring-up on a supported target. LibOpenBLT ships language bindings for Python, C#, and Pascal, meaning you can script firmware updates or integrate into existing test infrastructure without shelling out to BootCommander. The XCP-over-transport protocol design means the bootloader doesn't invent its own wire format — it rides an established automotive standard.
The SVN-mirrored-to-GitHub workflow is annoying: PRs are pointless, issues get no traction, and the git history is machine-generated commit noise rather than meaningful changesets. The dual license (GPL / commercial) is a hidden cost center — if you ship a closed-source product you need a paid commercial license from Feaser, which isn't priced publicly and creates vendor dependency. MicroBoot is written in Pascal (Lazarus/FPC), which almost nobody on a modern embedded team will want to touch or build from source. The porting guide for new MCUs exists but requires understanding an underdocumented HAL abstraction; if your target isn't in the demo list you're reading source to figure out what hooks actually need implementing.