My Services

The Specialist in Smart HMIs for Industrial Machinery

Smart human-machine interfaces (HMIs) translate the actions of human operators into the instructions for machines. They simplify and automate the human-machine interaction so that operators become more productive, perform fewer routine tasks and come up with new solutions. I am on a mission to give smart machines the smart HMIs they deserve.

My marquee products are the operator terminals for sugar-beet harvesters, forage harvesters, excavators, metal-sheet bending machines, UV cleaning robots and professional cooking appliances as well as infotainment systems for cars and e-bikes. Although no industrial machines, infotainment systems share the same architecture and communication (CAN) as agricultural and construction machines.

Enabling Teams to Write Better Software Faster

My role in these projects is that of an enabler - true to this well-known proverb: "Give a man a fish and you feed him for a day; teach a man to fish and you feed him for a lifetime."

I enable embedded software development teams to become self-dependent and high-performing, while making me superfluous.

Burkhard Stubert

I prefer providing technical guidance to my clients' development teams over doing the implementation work. This makes the teams write better software faster on their own. Here are some examples.

Burkhard was the safe haven for our inexperienced development team. He always knew what to do next.

Michael Gruber, Head of Sugar-Beet Business Unit, ROPA Maschinenbau GmbH

Custom Services

The example projects for enabling teams - building new systems, improving legacy systems and making technology choices - are custom services. Custom services have one thing in common: a lot of uncertainty and risk. Businesses don't know how long the development of the new system takes, where the pitfalls hide, how to pull themselves out of the mud or which technology is best suited for their use case. These businesses don't have the expertise in-house to mitigate the risks. That's where I come in.

Diagnostic

Before jumping on a custom project, I perform a thorough diagnostic of my client's situation. In close collaboration with the client, I can, for example,

The diagnostic results in my recommendation how to reduce the clients' risks. It takes some of the uncertainty out of the project. The diagnostic enables me to take over some of the risks. Without a diagnostic, the project risks will mostly be with the client.

Three-Option Proposal

At this point, the client and I decide whether to go separate ways or whether to continue with the custom project. If both parties agree on a further cooperation, I'll typically provide a three-option proposal (Silver, Gold and Platinum) based on the diagnostic. Each option has a price tag.

The Silver option describes what clients get for their budget. It has the highest risk for the client and the lowest for me. For the Platinum option it is the other way round: lowest risk for the client and highest risk for me. The higher the client's return on investment and my risk are the higher the price is. That's only fair.

Without a diagnostic, I'd most likely bill clients by the hour. With a diagnostic, I can offer a much wider spectrum of pricing options. For example:

Productised Services

In contrast to custom services, productised services are clearly defined and hold hardly any risk. I have successfully performed these services many times. Therefore, a diagnostic is not needed. When a client contacts me about a productised service, I respond with a three-option proposal and a meeting suggestion. In the meeting, the client and I determine the option and the start and end date of the project. I send the contract. The client signs it. The project can start. It's that easy!

Checking License Compliance

These day, many embedded systems run on Linux custom-built with Yocto or Buildroot and use Qt for their HMIs. The makers must check that every package on the system (consisting of libraries, tools and files) complies with its licenses. A medium-sized Linux system can easily have 400 package with 80 different licenses (e.g., LGPLv3, GPLv2, MIT, BSD-2, BSD-3, MPL, Apache-2.0, EPL).

The situation is further complicated by the question whether the company can use Qt under LGPLv3 or whether it must buy a Qt for Device Creation license (Professional or Enterprise) for good money. My talk Using Qt under LGPLv3 and my post Using Qt 5.15 and Qt 6 under LGPLv3 are the standard introduction to license compliance.

My proposal has the following three options:

More Coming Soon

I am planning to introduce more productised services. A concrete request may be just the trigger I need. I have a couple of ideas.

My most refined idea is to build custom embedded Linux images and SDKs with Yocto. Clients can start developing their main Qt applications right away - without the heavy overhead of learning Yocto. I have done that for terminals and boards from Christ Electronics, Topcon, Seco, Toradex, Boundary Devices and others based on NXP, Texas Instruments, Raspberry Pi, AMD and Intel SoCs. The basic Linux system can be extended in many ways: windows and application manager, VNC viewer, OTA update, fast boot in less than 5 seconds, secure boot, communication between Cortex-A and Cortex-M processors on hybrid SoCs like iMX8 and iMX7.

Another less refined idea is to set up a CI/CD pipeline with GitHub Actions and CTest/CDash. The Silver option would implement the Commit Stage (running unit and integration tests on the build server). The Gold option would implement the Acceptance Stage (running acceptance tests on the embedded device). The Platinum option could add more checks to the pipeline or optimise the runtime of the pipeline stages.