Skip to content

embedded Linux

High-level architecture of Qt embedded system with controller, cloud and sensor

Architecture of Qt Embedded Systems: Getting Started

Which system-on-chip is best suited for your Qt embedded system? Should you build a custom Linux system with Yocto, use a container OS or a desktop Linux? Should you use Qt Commercial or Qt LGPLv3? How will the system be updated? What are the operating conditions of the system? How does the system communicate with sensors, ECUs and the cloud?

This is only a small selection of the 50+ questions in this post. You best tackle these questions early in the project. Fixing wrong decisions becomes exponentially harder with the duration of the project. Your decisions can make or break a project.

Read More »Architecture of Qt Embedded Systems: Getting Started
Build, deploy and run Qt application on embedded device by pressing the Run button in QtCreator.

Cross-Compiling Qt Embedded Applications with QtCreator and CMake

We change the code of our Qt application in QtCreator and press the Run button to try the changes on an embedded device. QtCreator cross-compiles the application, deploys it to the device and runs it on the device. QtCreator performs these steps in a breeze, because we spent quite some time to define a QtCreator Kit. The fairly unknown script configure-qtcreator.sh from the Yocto layer meta-boot2qt automates most of the kit definition.

Read More »Cross-Compiling Qt Embedded Applications with QtCreator and CMake

Qt Embedded Systems – Part 2: Building a Qt SDK with Yocto

We want to develop the Internet radio application for the Raspberry Pi in the same way as for a PC. We change the source code in QtCreator and run the application. QtCreator cross-builds the application on the PC for the Raspberry Pi, deploys it with SSH to the Pi and runs it on the Pi. We need a Qt SDK for this to work. In addition to the target libraries from the Linux image, the Qt SDK contains the library headers, a cross-compiler, a cross-linker, a cross-debugger and more.

Read More »Qt Embedded Systems – Part 2: Building a Qt SDK with Yocto

Docker Builds from QtCreator

On your development PC, you simply hit Ctrl+R (Run) in QtCreator to build and run your Qt application. When you want to run the application on an embedded system, you must perform four tasks:

  • You cross-build the Qt application for the target embedded system in a Docker container.
  • You stop the application on the target system.
  • You copy the application from the development PC to the target system with scp.
  • You start the application on the target system.

Wouldn’t you love to hit Ctrl+R in QtCreator and to have QtCreator perform the above four steps for you? Of course, you would! I’ll show you how in this post. Running an application on an embedded system will be the same as running the application on a PC.

Read More »Docker Builds from QtCreator

Less Love for FOSS Qt Users

From Qt 5.15, The Qt Company make their offering a bit more inconvenient for FOSS users. They announced three changes:

  • A Qt account is mandatory to download binary Qt packages. The offline installer is not available to FOSS users any more.
  • LTS (long-term support) releases are not available to FOSS users, once the next minor or major release is out.
  • Small business pay 499 USD per year, if their yearly revenue is less than 100,000 USD and they have less than five employees.

What do these changes mean for the development of Qt embedded Linux systems under LGPLv3?

Read More »Less Love for FOSS Qt Users

Detecting Overdraw in QML HMIs with GammaRay

Overdraw happens when one QML item fully eclipses another QML item. The QML renderer always draws both items, although there is no need to draw the eclipsed item. You must help out the renderer by explicitly setting visible: false on the eclipsed item.

On embedded systems, heavy overdraw makes animations or flicking jerky. In the worst case, it freezes your HMI. Fortunately, the Qt experts at KDAB developed a tool, GammaRay, which makes detecting overdraw a piece of cake. I’ll show you how to build GammaRay, how to detect overdraw in the home screen of a harvester HMI, and how to fix the overdraw.

Read More »Detecting Overdraw in QML HMIs with GammaRay