AUTOMOTIVE

PERUN

A dual-platform automotive HMI demo built to support a Qt vs Android whitepaper. The same instrument cluster was implemented twice - once in Qt6/QML on a custom Yocto embedded Linux, and once in Kotlin on Android OS - enabling a direct, like-for-like comparison.

Qt frameworkYocto

See the Demo in Action

The same embedded HMI application was developed in both Qt and Android to evaluate how the two platforms perform under identical conditions. Explore the full whitepaper to compare each stack across development effort, UI responsiveness, resource usage, and real-world implementation trade-offs on embedded hardware, and discover which platform is the better fit for your next embedded HMI project.

Read the Qt vs Android Whitepaper

Engineering challenge

The main challenge was building the same automotive HMI twice, once in Qt 6/QML on a custom Yocto-based embedded Linux system, and once in Kotlin on Android, while maintaining visual and behavioral consistency. Both applications and operating systems also had to be carefully optimized to ensure a fair and meaningful comparison between the two technologies. Almost every visual element in the application was drawn entirely from scratch, including custom gauges, masked level indicators, animated paths, and styled widgets, with no reliance on off-the-shelf controls.

Application Key Features

The speedometer combines an animated analog needle with a large digital speed readout, giving the driver clear feedback at a glance. The illuminated scale responds dynamically to the current speed, while the gear indicator provides additional driving context in the same compact view.

The Vehicle Status screen presents a top down overview of the vehicle, showing simulated door and trunk status, tire pressure, battery condition, and engine temperature. Indicators animate as the simulated data changes, including open and closed doors and OK or NOK system states, providing a clear view of changing vehicle conditions.

Sixteen status and warning indicators surround the central speedometer, covering driver assistance, safety, lighting, and vehicle systems such as cruise control, lane keeping, ABS, and more. Driven by simulated real world data, the indicators dynamically reflect active states, warnings, and faults, while illuminated turn signals provide clear directional feedback.

The Power and Energy section visualizes simulated real world vehicle data, including power output, energy usage, battery charge, driving range, and charging status. Animated masked meters show live kW and kWh values, while the battery indicator combines remaining charge percentage with estimated range.

The Navigation Panel displays the planned route as a dynamically drawn path, with an animated vehicle marker showing progress and direction along the journey. It also presents key trip information, including remaining distance, elapsed trip time, and estimated time to destination.

Supported platforms

  • Any desktop platform (macOS / Linux / Windows)
  • Android OS
  • Any Qt6-capable embedded Linux board with an OpenGL-capable display driver
  • Verified and tested on: Toradex Verdin iMX8M Plus, NXP i.MX 8M Plus Applications Processor, Quad-core Arm Cortex-A53 @ 1.8 GHz + Cortex-M7 @ 800 MHz

Custom Figma design

The complete Figma design for this project was created in-house by the Somco Software team. From the overall visual direction to individual interface components, every element was designed by us with usability, consistency, and the target platform in mind.

We also offer UI/UX design as a service - Somco can create a complete, implementation-ready Figma design tailored to your product and hardware.

CONTACT US

Involved in the project

Przemysław Adam Sowa

CTO

Robert Kołodziejewski

Designer

Now let's talk about your project

Lukas Kosiński

Lukas Kosiński

Chief Executive Officer

We'll address every query and pinpoint
the ideal strategy for your project's success.

Fill out the form, and we’ll get back to you shortly.

The administrator of the personal data is Somco Software sp. z o.o., 13 Gen. Ottokara Brzoza-Brzeziny St., 05-220 Zielonka, KRS: 855688. The personal data are processed in order to answer the question contained in the contact form. More information, including a description of data subjects rights, is available in the information clause.