Making updates to edge and embedded systems has historically been a painful process. Often, this involves working with multiple microcontrollers from different brands with different capabilities. Usually, each has its own custom bootloader, so it can be updated each board, one by one, with a specific firmware.
Another common issue is updating the system without physical access to the board.
Luos has developed an open source generic bootloader that addresses these issues by updating all the boards of your system through one connection to your device and without requiring physical access to the other boards. It can work for every microcontroller unit (MCU) covered by the Luos library. It allows for flexibility and adaptability in edge and embedded systems development, making managing and updating distributed systems easier. This article explains how the Luos bootloader works.
Advantages of open source on edge and embedded devices
Updating edge and embedded systems can be challenging, especially when it comes to maintaining stability and reliability. These systems are often used in critical applications, and any disruption to their functioning can have serious consequences.
Open source projects are released under a license that allows anyone to use, modify, and distribute the software freely. This collaborative approach to software development has several advantages, particularly when it comes to updating edge and embedded systems.
One of the main benefits of using open source projects is that they are constantly being improved and updated by a community of developers. Any bugs or issues will likely be detected and fixed quickly, ensuring that the software remains stable and reliable. Additionally, open source projects often have extensive documentation, making it easier to understand how the software works and how to integrate it into your system.
Luos, like so many other open source projects, has built an active community of developers and users to help everyone exchange information and knowledge. If you try Luos, you're not alone. You can get help and share your experience with others.
Use a flexible bootloader
One way to update an edge or embedded system is to use a bootloader. Bootloaders can update the binaries of your system (at Luos, we call it a "node").
This can be useful if you want to improve your system's capabilities, fix a bug, or make it more adaptable based on your increasing needs. In the context of open source, choosing a bootloader that is part of an open source project means taking advantage of the collaborative work of many experienced developers from the same field as the users.
Another advantage of open source projects (and significantly for a bootloader feature) is that they are usually well-tested thanks to a wide user base. They have often been used in a variety of different environments.
A proprietary bootloader works with the system it was designed for but is unusable with other devices. Most of the time, developers don't develop bootloaders and perform updates on individual boards one at a time. A bootloader might work with more than one board or brand in very few cases.
Two central concerns typically arise when using a bootloader: Its adaptability with the boards used and its ease of use.
At Luos, we've chosen to develop a bootloader that allows developers to update any board, whatever the microcontroller provider, based on its hardware abstraction layer (HAL). If your system is composed of ST, Raspberry Pi, and Arduino boards, you can update all the binaries of the system without updating each board individually.
With the Luos open source bootloader, it's no longer necessary to dismantle your system each time you need to update. You don't have to physically access the board for updating each board individually.
While many frameworks offer flexible solutions for their own products (allowing you to update them remotely by WiFi, for example), few projects provide compatibility with other brands. The strength of Luos is that it's compatible with many MCUs. A developer doesn't have to creeate several specific bootloaders for a system that uses boards with different capabilities.
By using a bootloader with this type of flexibility, a developer can easily configure the bootloader to fit the firmware and system requirements. By adding a WiFi gateway, you can update an entire system remotely, regardless of the board's brand. This is a considerable time and cost savings, especially with large-scale projects.
Using a flexible bootloader is an effective way to update an edge or embedded system. Of course, it's important to test your updates before deploying them in a production environment, and with Luos, you can focus your efforts on code tests rather than bootloader tests.
Updating edge and embedded systems can be complex, but using open source projects can make it easier. Open source projects are developed and maintained by a large community of volunteers, which means they are constantly being improved and updated. They also have extensive documentation and are often well-tested, making them compatible with a wide range of hardware and software configurations.
If you want to know more about how the Luos bootloader works, visit the project's technical guide.