Additional memory device in OpenBLT

All ports available in the OpenBLT bootloader support reprogramming the microcontroller’s internal flash memory. But what if your system features an additional memory device, such as an external flash memory or serial EEPROM? The OpenBLT bootloader can work with these types of additional memory devices as well. In essence, you simply change one configuration macro in the bootloader’s configuration header-file:

Code editor screenshot that shows the configuration macro that enables support for an additional memory device in the OpenBLT bootloader.

Although practically, enabling the additional memory device involves a few more steps. One of which being the binding of your memory device’s driver with the OpenBLT bootloader. This article explains in depth how to add support for an additional memory device in the OpenBLT bootloader.

Continue reading
Posted in OpenBLT | Tagged | Comments Off on Additional memory device in OpenBLT

OpenBLT 1.17.0 release notes

The OpenBLT 1.17.0 release was made today, after another half year of development work. 15 tickets were processed, which resulted in 74 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Roadmap image of the OpenBLT 1.17.0 release.

“Modbus-RTU and new ports” best summarizes the new OpenBLT release. A few highlights:

  • The PC tools and all microcontroller ports now support firmware updates via Modbus-RTU.
  • Improved accuracy for the internally used software timer.
  • New Infineon TriCore TC2 and ST STM32C0 ports, including demo programs.
Continue reading
Posted in OpenBLT | Tagged , , | Comments Off on OpenBLT 1.17.0 release notes

OpenBLT 1.16.0 release notes

The OpenBLT 1.16.0 release was made today, after another half year of development work. 23 tickets were processed, which resulted in 68 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Roadmap image of the OpenBLT 1.16.0 release.

“Improved USB support and flash erase performance” describes this new OpenBLT release the best. A few highlights:

  • Automatic USB driver installation.
  • USB serial number configuration.
  • More ports with USB support.
  • Faster flash erase operation.
Continue reading
Posted in OpenBLT | Tagged , , | Comments Off on OpenBLT 1.16.0 release notes

STM32 Modbus RTU server tutorial

This hands-on tutorial explains how to setup a Modbus RTU server on an STM32 microcontroller system. We’ll use a Nucleo-F401RE board in combination with the STM32CubeIDE development environment. However, you can use any other STM32 microcontroller board.

Feature image for the STM32 Modbus RTU server tutorial
Continue reading
Posted in MicroTBX, STM32 | Tagged , | Comments Off on STM32 Modbus RTU server tutorial

MicroTBX-Modbus 0.9.0 release notes

Towards the end of last week, I created the first public release of the Modbus communication stack, build on top of the MicroTBX microcontroller toolbox. Wait..Modbus? Isn’t that that old communication protocol, the one that nobody uses anymore? Well, that’s what I thought too. Turns out I was wrong.

Brief overview of the MicroTBX-Modbus release version 0.9.0 including download link.
Continue reading
Posted in MicroTBX | Tagged , , | Comments Off on MicroTBX-Modbus 0.9.0 release notes

OpenBLT 1.15.0 release notes

The OpenBLT 1.15.0 release was made last Monday, after another half year of development work. 21 tickets were processed, which resulted in 52 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Redmine roadmap progress image showing that OpenBLT release 1.15 is ready and on time.

“More ports” describes this new OpenBLT release the best. A few highlights:

  • Developed a new port for the Infineon AURIX TriCore TC3 family.
  • Developed a new port for the ST STM32L0 family.
  • Developed a new port for the ST STM32L1 family.
Continue reading
Posted in OpenBLT | Tagged , , | Comments Off on OpenBLT 1.15.0 release notes

OpenBLT 1.14.0 release notes

The OpenBLT 1.14.0 release was made last Friday, after another half year of development work. 20 tickets were processed, which resulted in 23 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

“Shiny new things” describes this new OpenBLT release the best. A few highlights:

  • Availability of LibMicroBLT, the OpenBLT Embedded Library.
  • 64-bit version of the Windows PC tools.
  • Automatic dependency generation in the Makefiles.
  • Improved data throughput on RS232 and TCP/IP.
Continue reading
Posted in OpenBLT | Tagged , , | Comments Off on OpenBLT 1.14.0 release notes

MicroTBX 1.0.0 release notes

About three years ago, I publicly released MicroTBX for the first time. MicroTBX is a free embedded software library, packed with functionality commonly needed in embedded software applications. Over time, I kept on working on MicroTBX to the point that it is now ready for the official version 1.0.0 release. This article describes the release notes of MicroTBX version 1.0.0.

Continue reading
Posted in MicroTBX | Tagged | Comments Off on MicroTBX 1.0.0 release notes

How to update the OpenBLT bootloader itself

The OpenBLT bootloader offers a versatile and flexible solution for in-field firmware updates on your embedded system. It’s a mature and stable bootloader solution. Pretty much Flash-and-forget. Over the last decade no one reported that firmware updates stopped working for some reason. Nonetheless, a situation might arise where you want to update the bootloader itself. Perhaps you added a new feature or simply just want to upgrade to the latest stable release of OpenBLT. Not a problem if you can still connect a JTAG or SWD type programming interface.

However, that is not always possible. You might not offer a connector for this on your final PCB or it’s no longer physically accessible. Some users even secure their microcontroller such that access with a debugger or programming interface is completely locked out. In this scenario the following question pops up in my inbox: Can I update the OpenBLT bootloader itself? Well, no..but also yes. Read on for more details.

Overview that shows how to update the OpenBLT bootloader itself, by using a secondary OpenBLT bootloader.
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on How to update the OpenBLT bootloader itself

Introducing the LibMicroBLT library

The OpenBLT bootloader just got even better. Last week saw the release of the OpenBLT embedded library, or LibMicroBLT in short. The LibMicroBLT library contains all the functionality for performing a firmware update on another connected microcontroller, running the OpenBLT bootloader. Think of LibMicroBLT as a microcontroller optimized version of the OpenBLT host library (LibOpenBLT). The following picture illustrates in what type of system architecture you could use LibMicroBLT:

Illustration showing the architecture of a system, featuriing a main controller that integrates LibMicroBLT.
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on Introducing the LibMicroBLT library

OpenBLT 1.13.0 release notes

The OpenBLT 1.13.0 release was made last Friday, after another half year of development work. 20 tickets were processed, which resulted in 38 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Roadmap image showing the 100% progress on the OpenBLT 1.13.0 release.

“Improved CAN support” describes this new OpenBLT stable release the best. A few highlights:

  • Support for Ixxat CAN PC interfaces from HMS Products.
  • Support for CAN in the STM32G0 port.
  • Resolved an issue that caused extremely slow firmware updates via CAN for certain users on Windows 10.
  • Developed a new port for the ST STM32G4 microcontroller family.
  • Added demo programs for the Nucleo-G474RE, Nucleo-G0B1RE and Nucleo-L496ZG boards.
Continue reading
Posted in OpenBLT | Tagged , , | Comments Off on OpenBLT 1.13.0 release notes

Reflecting on 10 years of the OpenBLT bootloader

The 12th of November 2021 marked a special day for the OpenBLT bootloader: Its 10-year anniversary. A great opportunity to take a moment and reflect on its history and ponder the question of how it became such a success.

Version 0.90.0 was the first ever open source version of the OpenBLT bootloader. I published it on SourceForge on the 12th of November 2011. You can still download it:

Partial web browser screenshot of where you can download the first public release of the OpenBLT (version 0.90.0) from SourceForge.

Only 1 MB in size and it supported just one microcontroller family, the NXP LPC2000 series based on an ARM7 core. In contrast, the current stable release (version 1.12.1) is 137 MB in size and supports nineteen different microcontroller families. The majority of them Cortex-M core based, simply because that is what most of us are using nowadays.

Continue reading
Posted in OpenBLT | Tagged , , | Comments Off on Reflecting on 10 years of the OpenBLT bootloader

OpenBLT 1.12.0 release notes

The OpenBLT 1.12.0 release was made earlier today, after another half year of development work. 18 tickets were processed, which resulted in 45 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Roadmap overview of the OpenBLT version 1.12.0 release. It shows that the release is on time and that 18 tickets were processed.

“Shiny new things and some spring cleaning” describes this new OpenBLT stable release the best. A few highlights:

  • LibOpenBLT now features C# bindings, for those that plan on developing their own firmware update tool in C#.
  • A new port for the ST STM32L5 microcontroller family was developed, including Nucleo-L552ZE demo programs.
  • New demo programs for the popular Nucleo-F429ZI board were developed, replacing the Olimex STM32-E407 demo programs.
  • Demo programs for the Keil MDK IDE were added for all supported ST STM32 boards.
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on OpenBLT 1.12.0 release notes

Develop your own firmware update tool in C# with LibOpenBLT

Did you know that the OpenBLT bootloader includes a shared library, allowing you to quickly develop your own firmware update tool? This library is called LibOpenBLT. Recently, I developed LibOpenBLT bindings for the C# programming language. It’s basically a wrapper class for easily accessing the functionality inside LibOpenBLT. This article explains how to get started with the C# bindings for LibOpenBLT. Together we’ll build a firmware update tool in the C# programming language.

Screenshot of the C# console application in Visual Studio that uses the LibOpenBLT C# bindings.
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on Develop your own firmware update tool in C# with LibOpenBLT

Install STM32CubeIDE on Linux as a Flatpak

This tutorial shows you how to install STM32CubeIDE as a Flatpak on Linux. STM32CubeIDE is an Eclipse based C/C++ integrated development environment for STM32 microcontrollers. Besides functionality for compiling, linking and debugging your STM32 firmware, STM32CubeIDE also integrates the CubeMX tool. CubeMX makes it quick and easy to configure your STM32 microcontroller. STMicroelectronics develops and maintains STM32CubeIDE and they decided to offer STM32CubeIDE to your at no cost.

Decorative image for the article about how to install STM32CubeIDE on Linux as a Flatpak.

STM32CubeIDE is truly cross-platform. You can use it on Windows 10, Linux and macOS. Personally, I find this feature the most appealing, since I prefer Linux for my development work. The ST website offers download links and installation information for Linux. What most users don’t realize is that you can also install the STM32CubeIDE as a Flatpak on your Linux system. For this reason I dedicated this article to the topic of installing STM32CubeIDE on Linux as a Flatpak.

Continue reading
Posted in STM32 | Tagged | Comments Off on Install STM32CubeIDE on Linux as a Flatpak

OpenBLT 1.11.0 release notes

The OpenBLT 1.11.0 release was made earlier today, after another half year of development work. 12 tickets were processed, which resulted in 39 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Picture of the OpenBLT version 1.11.0 roadmap. It shows that the release is on schedule and that 12 issue tickets were resolved.

“All about ST and the CubeIDE” describes this new OpenBLT stable release the best. With ever more embedded developers switching to the STM32CubeIDE development environment, it was about time that OpenBLT followed suit. This new OpenBLT release features full support of STM32CubeIDE for all the included STM32 demo programs. On top of that, the OpenBLT bootloader now support the STM32H7 microcontroller family.

Continue reading
Posted in OpenBLT | Tagged , | Comments Off on OpenBLT 1.11.0 release notes

Import TrueSTUDIO projects into STM32CubeIDE

A future release of the OpenBLT bootloader will feature full support of the relatively new STM32CubeIDE. For those that would like to use STM32CubeIDE sooner, there is the TrueSTUDIO project import feature. So you can take the already existing OpenBLT demo programs for TrueSTUDIO and import them in STM32CubeIDE. The goal of this article is to show you step-by-step how to import OpenBLT demo programs, which are configured for TrueSTUDIO, into STM32CubeIDE.

Screenshot of the STM32CubeIDE about dialog to show the version of the IDE that is used for importing the TrueSTUDIOprojects.
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on Import TrueSTUDIO projects into STM32CubeIDE

OpenBLT 1.10.0 release notes

The OpenBLT 1.10.0 release was made earlier today, after another half year of development work. 20 tickets were processed, which resulted in 57 commits. Feel free to download the new version of the OpenBLT bootloader and give it a try. This release is on track with the standard release cycle. This article describes in more detail what you can expect from the new OpenBLT release.

Image that shows the progress of the OpenBLT 1.10.0 release, based on the tickets that were worked on.
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on OpenBLT 1.10.0 release notes

CANopen bootloader based on OpenBLT

CANopen is a popular higher-layer protocol for a CAN based embedded distributed network. It provides a ready-to-use and proven blueprint for application data exchange between multiple nodes on a CAN network. Furthermore, CANopen includes network management functionality and pretty much everything else you need to get a CAN system up-and-running. Unfortunately, the CANopen protocol specification does not specify how a CANopen bootloader should behave. This article explains how you can make use of the OpenBLT bootloader in your CANopen network and rely on it for making firmware updates on your CAN nodes.

Feaser images for the article titled CANopen bootloader based on OpenBLT
Continue reading
Posted in OpenBLT | Tagged , | Comments Off on CANopen bootloader based on OpenBLT

NXP S32K support in the OpenBLT bootloader

Over the past year requests started to trickle in for being able to run the OpenBLT bootloader on S32K11 and S32K14 microcontrollers. As a reaction to these requests, support for the entire NXP S32K microcontroller range was developed in the OpenBLT bootloader. The goal of this article is to describe in more detail how this support was realized and to point you in the right direction in case you want to start evaluating this bootloader solution for your NXP S32K based product. It is targeted towards those who are involved with developing hardware based on a NXP S32K microcontroller and looking for a flexible, reliable and readily available solution for performing firmware updates.

Continue reading
Posted in OpenBLT | Tagged , | Comments Off on NXP S32K support in the OpenBLT bootloader