Raspberry Pi 4

HMI prototypes

fast and inexpensive

Embedded Software Development

Professional solutions

Embedded software is computer software, written to control machines or devices that are not typically thought of as computers, commonly known as embedded systems.
It is typically specialized for the particular hardware that it runs on and has time and memory constraints.

Yocto Bitbake

The project provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices that can be used to create tailored Linux images for embedded and IOT devices, or anywhere a customized Linux OS is needed.

Splash screen

Normally, if you create your custom linux image with Yocto for a Raspberry Pi, you also want to show a custom splash screen with a progress bar.

Yocto local.conf

In this guide we provide you informations, how to setup a Yocto Project to install Qt and a Qt demo application for a Raspberry Pi 4 and then autostart this Qt demo application.

Yocto - Raspberry - PIGPIO - Qt Embedded Software Raspberry Pi
Include PIGPIO library and Qt toolchain

Configure Yocto to create a customized Linux for Raspberry Pi 4 with integration of pigpio library, Qt and a toolchain for cross compilation.

Mender server
Part 1 - Basic setup of the Yocto environment

Part 1 of a series of articles, how to set up a Yocto environment to create a Yocto Linux with the integration of a Mender client.

Rotating a Raspberry Pi 4 Touch Monitor

I recently had to develop an application (kiosk system) for/on a Raspberry Pi 4. The special thing about it was that 2 touch monitors were to be connected via HDMI, which also had to be rotated 90 degrees to the right. So, portrait mode, with 2 monitors on top of each other. Rotating the screen and arranging the monitors on top of one another did not cause any problems, since this is easily to do via the user interface – a "Raspbian Buster with desktop and recommended software" was installed.

Raspberry Pi 4 RAM disk

Frequent writing or overwriting of data negatively affects the lifespan of an SD card.

For applications that often use temporary data (e.g., sensor values for comparative calculations) that are no longer required after a restart, it is therefore advisable to write these to a RAM disk.

Raspberry Pi 4 USB-C host mode

You can also use the Raspberry Pi 4's USB-C interface, which is normally used to provide a power supply, as a normal USB interface. However, in that case, the Raspberry should supply power via the GPIO pins.

Raspberry config screen

Qt is often used to develop graphic interfaces. Qt contains C ++ libraries for creating graphical interfaces that can be compiled on various operating systems.
Since this compilation requires a lot of computing power, it is advisable for processors with relatively little power to carry out the development and compilation on a host computer and only then to load the finished application onto the target computer.

Installing Raspberry Pi OS on the Raspberry Compute Module 4

This is a guide for installing Raspberry Pi OS Lite on the Compute Module 4. For my working computer, I use Ubuntu 20, installed on a virtual machine.

Qt 5.15 cross-compilation for Raspberry Compute Module 4 on Ubuntu 20 LTS

This is a guide for cross-compiling Qt 5.15.2 for Raspberry Pi 4 and installing it on Compute Module 4. It is an update to my blog post Qt on the Raspberry Pi 4, with the difference that this time I am using Raspberry Pi OS Lite.

Configuring Qt-Creator on Ubuntu 20 LTS for cross-compilation

This is a guide for configuring Qt Creator in order to be able to use cross-compiled Qt libraries for the Raspberry Pi 4 and create applications for the Raspberry.

Qt cross compile scripts for Raspberry Pi 4

On this page we provide download links for scripts to automatically set up cross compiling on linux host and Raspberry Pi 4 and a description, how to use them.

Qt Modbus with TCP/IP connection

In this blog, I would like to provide a small Qt-Quick application (qml) as an example for a Modbus connection via TCP/IP.

In the Qt examples, I only found QWidget examples for Modbus connections, and after recently creating a Qt Quick application for this purpose, I would like to provide a scaled-down version of it as an example.

Raspberry Pi 4 autostart Qt application during boot

If you have created a Qt application – or any other application – for the Raspberry Pi 4, you will very often want to have the application called up immediately after the Raspberry is restarted, once you have completed the application. This is often attempted using start scripts, which can be entered in various places. However, it is more sensible to set this up via systemd.

Running Windows .exe in the Qt application

The task was to write a Qt Quick application (GUI) to upload new firmware to a touch controller. The upload software was provided by the manufacturer in a .exe application that loads a .bin file onto the touch controller. I wanted to use the "QProcess" Qt classes for this, which can be used to call and control shell applications. On the Linux side, I had already used this successfully several times – but on Windows it didn't want to work at first.

HDMI Monitor Settings Embedded Software
Control HDMI Monitor Settings with ddcutil

Yocto recipe to install ddcutil and control settings of an HDMI monitor via I2C.

libgpiod Embedded Software
Include libgpiod in Yocto

Include libgpiod library in Yocto and use it in your embedded system.