A Yocto Recipe for Qt Applications Built with CMake
Embedded Use
by Burkhard Stubert
1M 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
8M 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
Book Review: “The Art of Readable Code” by Dustin Boswell and Trevor Foucher
Embedded Use
by Burkhard Stubert
2y ago
When I looked up the publishing date for this book, I was surprised to find out that the book is 11 years old. The content feels as if written today. The authors’ advice is as relevant as ever. I am sure that it will stay relevant at least for the next 10 years. The book is organised in 15 chapters and 4 parts. Each chapter comes with many instructive code examples. I read each chapter in 30-45 minutes. I read the chapters out of order without losing track. For my review, I picked one chapter from Part 1: Surface-Level Improvements, one from Part 2: Simplifying Loops and Logic and one from Par ..read more
Visit website

Follow Embedded Use on FeedSpot

Continue with Google
Continue with Apple
OR