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.
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.
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.
“More ports” describes this new OpenBLT release the best. A few highlights:
Developed a new port for the Infineon AURIX TriCore TC3 family.
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.
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.
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.
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:
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.
“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.
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:
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.
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.
“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.
Feaser is a provider of products and engineering services for microcontroller based embedded systems.
We develop and maintain the open source OpenBLT bootloader and are known for creating innovative and
customer oriented solutions that are delivered on time and within budget.