Updating U-Boot with an A/B Strategy
Embedded Use
by Burkhard Stubert
2w ago
Unlike consumer devices, machines, ECUs or medical devices are in the field for 15 or more years. There inevitably comes the time in their life, when you must update their boot loader. I’ll show you how to do this from an embedded Linux system running on an NXP iMX8M Plus. You can adapt the method to other SoCs and use it for OTA updates, as well. Introduction If you don’t have to update the boot loader over the lifetime of your device, be happy and don’t touch the boot loader. This “strategy” might work for a consumer device with a lifetime of three years or less. However, it is very unlikely ..read more
Visit website
A Yocto Recipe for Qt Applications Built with CMake
Embedded Use
by Burkhard Stubert
2M ago
How hard can it be to write a Yocto recipe for building a Qt application with CMake? Actually, it turns out to be pretty hard. I have seen my fair share of slow-and-dirty workarounds (nothing is ever quick with Yocto, not even the diry workarounds) how to force the Qt application into the Linux image and onto the device. Over the years, I turned my own slow-and-dirty workarounds into a hopefully quick-and-clean solution. Here it comes. Context After a painful struggle and probably with some external help, you managed to build the Linux image for your chosen SoM, SBC or panel PC (a.k.a. operato ..read more
Visit website
Ports-and-Adapters Architecture: The Pattern
Embedded Use
by Burkhard Stubert
10M ago
The ports-and-adapters architecture should be the standard architecture for HMI applications. Its parts are loosely coupled, cohesive, easy to test and easy to extend. We can apply the reverse Conway manoeuvre to create self-dependent teams with minimal dependencies on other teams. I’ll motivate the ports-and-adapters or hexagonal architecture with USB ports and adapters and look at the architecture pattern from the production, testing and team perspective. I’ll apply the architecture to the HMI terminal of a harvester. Introduction In his original work, Alistair Cockburn explains the ports-an ..read more
Visit website
Using Qt 6 under LGPLv3
Embedded Use
by Burkhard Stubert
1y ago
The Qt Company changed Qt licensing in February 2022. All the separate commercial packages – including Qt for MCU, Qt Safe Renderer, Qt Automotive Suite and Qt Automation – were folded into two Qt for Device Creation licenses: Professional and Enterprise. The Qt Marketplace license for modules like CoAP, MQTT, Charts and for the design tool bridges was discontinued. My post helps you answer the crucial question: Shall you use Qt Commercial or Qt LGPL-3.0? The Three Qt License Offerings The Qt Company offers Qt for embedded devices under three licenses: Qt for Device Creation, LGPL-3.0 and GPL ..read more
Visit website
The Key Principles of Continuous Delivery
Embedded Use
by Burkhard Stubert
1y ago
In the seminal book Accelerate, Forsgren and her co-authors provide empirical evidence that Continuous Delivery has a positive impact on the performance of software development organisations. If organisations neglect some of the principles and practices of Continuous Delivery, their performance will suffer. They will reach the point where simple changes will take ages to implement. Not so with Continuous Delivery. Continuous Delivery in a Nutshell Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Agile Manifesto, 2001 The Agile Manifes ..read more
Visit website
Creating A Custom Yocto Layer
Embedded Use
by Burkhard Stubert
1y ago
After having built the reference Linux image from a SoM, SoC or terminal maker and having run it on the board, we must inevitably custom-tailor this image to our needs. We must create our own Yocto layer. We must remove all the unnecessary packages and make our core application start automatically on power-up. Here is a step-by-step guide how to turn the application layer for a Toradex Verdin iMX8M Plus board into our own custom layer. The guide should also work for other boards. Motivation The reference images from SoM and SoC manufacturers come with some undesirable features: They include m ..read more
Visit website
Installing Linux Images on Toradex Verdin Boards
Embedded Use
by Burkhard Stubert
1y ago
In the post Setting Up Yocto Projects with kas, we built the Linux image for the Toradex Verdin iMX8M Plus. It’s time to flash the image on the board using the Toradex Easy Installer (TEZI). It’s a three-step procedure: wire up the board in a special way, install and run TEZI on the board, and flash our custom-built Linux image from a USB drive on the board. Connecting Board and Host PC with Cables Figure 1: Wiring up the Verdin iMX8M Plus board for flashing a Linux image Figure 1 shows how to wire up the Toradex Verdin iMX8M Plus board for flashing a Linux image with the Toradex Easy Installe ..read more
Visit website
Implementing Qt Signals and Slots in Pure C++
Embedded Use
by Burkhard Stubert
1y ago
Signals and slots are my favourite Qt feature, as they make loose coupling between components or between layers super easy. I miss them most when I must write pure C++ code without the C++ goodies. I invite you to follow along while I translate signals and slots into function-object member variables and lambda functions, respectively. Motivation Helen drives home in her car after a summer day in the mountains. She decreases the target temperature of the AC to 16 °C through the HMI of her car’s infotainment system. The HMI application performs the following steps. When Helen presses the minus ..read more
Visit website
Building Qt 6.2 For Old Yocto Versions
Embedded Use
by Burkhard Stubert
2y ago
The Qt version of an embedded Linux system is tied to the Yocto version. Yocto 2.7 (Warrior) comes with Qt 5.12, Yocto 3.1 (Dunfell) with Qt 5.14, Yocto 3.2, 3.3 and 3.4 with Qt 5.15 . There is no Yocto version with Qt 6 yet. How can we build Qt 6.2 against the SDK of old Yocto versions? Introduction Yocto releases rarely come with the latest Qt release. Terminal manufacturers are very slow in updating their BSPs to newer Yocto versions. The Qt applications on these terminals depend on older and older Qt versions. Currently, I am helping a client build the driver terminal for a construction ma ..read more
Visit website
A Mock QCanBusDevice for TDD
Embedded Use
by Burkhard Stubert
2y ago
I am using TDD to implement a hardware-independent mock QCanBusDevice. We can use MockCanBusDevice in unit, integration and acceptance tests – without access to a hardware CAN bus. A terminal application can also use it in its own process to simulate the communication with a machine. Motivation The machine component in the hexagonal architecture of a harvester terminal comes with three adapers: The Machine adapter communicates over 1-4 CAN busses with the other ECUs of the harvester. The In-Process Simulator adapter runs on the development computer in the same process as the terminal applicat ..read more
Visit website

Follow Embedded Use on FeedSpot

Continue with Google
Continue with Apple
OR