Skip to content

Embedded Devices Covered by EU Cyber Resilience Act (CRA)

Which devices are covered by the EU Cyber Resilience Act (EU CRA)?

  • An X-ray fluorescence (XRF) analyser connected with the Internet over WiFi.
  • A metal-sheet bending machine with an Ethernet port, which will only be used in the future.
  • The harvester ECUs connected over CAN bus.
  • A camera trap without any connectivity, where updates and photos are exchanged via SD card.
  • A full-body 3D X-ray scanner used by doctors.
Read More »Embedded Devices Covered by EU Cyber Resilience Act (CRA)

A Yocto Recipe for Qt Applications Built with CMake

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.

Read More »A Yocto Recipe for Qt Applications Built with CMake

Ports-and-Adapters Architecture: The Pattern

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.

Read More »Ports-and-Adapters Architecture: The Pattern

Accessing Private Git Repositories from Docker Containers

We keep the source code of our applications and libraries in private repositories. Quite a few SoM and terminal makers do the same with their Yocto layers and their additional software. We typically use a Docker container to build the whole embedded Linux system with Yocto. Hence, we must be able to clone and update private repositories from the container.

Read More »Accessing Private Git Repositories from Docker Containers

Using Qt 6 under LGPLv3

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?

Read More »Using Qt 6 under LGPLv3

The Key Principles of Continuous Delivery

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.

Read More »The Key Principles of Continuous Delivery

Creating A Custom Yocto Layer

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.

Read More »Creating A Custom Yocto Layer