How do you feel about this article? Help us to provide better content for you.
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
What do you think of this article?
Currently, the scope of use of HMI solutions is expanding. HMI devices serve to display data and interact with the user in the automotive, the services sector, medicine, and production. At the same time, the requirements for the functionality and efficiency of the HMI are increasing, making the configuration of systems more and more complicated. The Qt framework is the best solution for creating HMIs of any size and complexity. The number of well-known companies using Qt to create software for embedded HMIs is only increasing, and rightly so.
- Human-machine interfaces and software tools for their creation
- HMI software development with Qt
- Qt advantages
- Automotive HMI development with Qt
- Qt in an HMI-related project
Human-machine interfaces and software tools for their creation
A human-machine interface (HMI) is an engineering solution through which a person and a machine interact. At the same time, a person can control the production process, obtain information about the state of the system, make decisions, and troubleshoot.
Human-machine interfaces for production line control
HMIs are becoming more and more advanced, which greatly expands their influence. HMIs are no longer just local interfaces. Web technologies allow specialists to visualize remote operations and diagnostics using a browser. Interfaces are consistent with automation technology, integrated with archives, high-level reporting and analytics tools, and information portals.
Modern HMIs operate safely and reliably in both normal and emergencies, simplify decision-making, empower workers, and monitor the situation regarding business assets.
HMIs are hardware and software solutions, so their development process includes both of these areas, as well as the creation of the necessary infrastructure.
In creating a device architecture, specialists develop graphical software solutions for hardware systems.
Complex user interfaces that interact with each other, and transmit and receive information in real-time, are becoming integral elements of any production process.
Cross-platform GUI environments provide the ability to develop UIs for embedded HMI devices. GUI toolkits are used to develop simple HMIs and complex ones that can control production lines.
Flutter, .Net, Xamarin, GTK, JUCE, and other well-known cross-platform frameworks can be applied for HMI development. There are also HMI frameworks of a narrow focus, for instance, automotive HMI toolkits.
Cross-platform GUI toolkits
For example, Kanzi offers a family of software products for creating user interfaces for instrument clusters, head-up displays, and infotainment systems. The Kanzi Studio framework boasts seamless 2D and 3D composition, no-code visual editing, advanced animated and cinematic effects, and many more cool features.
Siemens provides developers with SIMATIC HMI software products for more flexible, transparent, and, therefore, efficient HMIs. SIMATIC WinCC has Basic, Comfort, and Advanced software packages for various HMI categories. Siemens also offers customers powerful SCADA solutions and software for process visualization.
HMI software development with Qt
Qt is one of the most widely used GUI toolkits for creating rich user interfaces suitable for all platforms. The framework has an extensive collection of C++/QML based libraries. Qt differs in its flexibility and ease of use and is widely applied for HMI software development.
Qt benefits for HMI development
The most obvious advantages of the Qt framework for creating HMI software include the following:
- Qt can be obtained under open-source and commercial licenses. Qt Open Source Licensing is suitable for projects with open source distribution, student/academic purposes, internal research projects without external distribution, or some other projects.
- Qt is famous for its incredible cross-platform capabilities - it supports Windows, Linux, iOS, Android, etc.
- Using the framework, engineers can quickly create prototypes. The design code can easily be implemented into the program logic.
- Qt is one of the few frameworks with such a huge and productive community. The Qt Company has created an extensive document database that includes application development guides, research, and case study tutorials. In addition, you can always get answers to your questions by contacting the developer community for help.
- Feedback - The Qt Company takes into account the opinions and wishes of developers, improving the accessibility of the framework and making it convenient to work with. In February 2022, the company announced the simplification and optimization of commercial licensing, which should make the platform more business-friendly.
Automotive HMI development with Qt
Automotive equipment is becoming more and more powerful. The HMI UI development should keep up with processes in the field of automotive. Nowadays, the popularity of multimodal vehicle interfaces is very high; vehicles connect to many software products and services. Advanced automotive UX/UI solutions reduce driver response time, improve human-vehicle interaction, and provide an efficient user experience. Designers use new tools to develop production-ready interfaces in a short time.
Qt cross-platform capabilities have been successfully applied to develop automotive HMI solutions. With the Qt framework, engineers can use a single, unified codebase for any screen size, operating system, or hardware architecture. Qt allows designers to implement advanced technological enhancements such as real-time 3D effects into HMIs to meet the changing demands of the automotive industry and create brand identities.
The Qt Framework is applied in the creation of automotive HMIs of such market leaders as Mercedes-Benz, Hyundai, Citroen, DS, Opel, and Peugeot.
One of the areas of Qt application is the Automotive in-vehicle infotainment system.
Hyundai Motor Group has chosen Qt to partner on HMI development for all Hyundai, Kia, and Genesis vehicles. Qt is used to create a connected Hyundai in-car operating system for an infotainment system.
Qt solutions are offered for developing technological systems in IVI and Cluster/HUD areas using a single code base. Hyundai Motor Group uses Qt Design Studio for rapid HMI development.
Changes in the automotive industry are taking place rapidly; electronics are increasingly gaining ground from mechanics, and the areas of application of software in the automotive industry are growing. Qt framework offers modern HMI cross-platform solutions, scalable across multiple brands and versions, and is becoming a leader in this segment.
The cross-platform Qt GUI framework is used by global giants LG Electronics, Bosch, Rockwell Automation, and many others. Qt can help companies of all sizes meet the changing demands of the software market. Using Qt, enterprises unify HMI development, thereby increasing production efficiency, reducing time to market, maintaining, and increasing competitive advantages.
Qt instruments and modules for embedded HMI development
The Qt toolkit offers a lot of solutions for easy and quick app development.
Using Qt 3D Studio with its 3D UI development system, Qt designers can use an open architecture with access to the source code. Qt 3D Studio offers ready-made UI libraries to build embedded systems with 3D/2D user interfaces.
The screenshot of the Qt Quick module.
The Qt SDK offers APIs for media, web, and navigation. By bringing together software components and modules, the Qt SDK helps make the development of custom embedded applications more efficient. The developer selects the required Qt modules, creates a custom Qt SDK, and connects it to the Qt Creator IDE, which automatically recognizes it. The Qt SDK is easy to set up using a single starter package. Developers can also use the simulator to understand how the application will run on Qt-enabled devices. Emulator devices are then not needed. Qt Creator has the Qt Designer tool which is needed to create the interface design layout. Qt Designer generates C++ code, which is then integrated into the application.
Qt in an HMI-related project
Qt with C++ can offer many tools for creating user interfaces with numerous effects and capabilities for applications on various platforms.
The Battery Management System (BMS) project is an excellent example of a successful implementation of Qt HMI solutions.
The client's request was to develop firmware for the BMS and software to communicate with the system.
The HMI part of the project was to develop an application for a colour touch panel with 1920:1080 screen resolution to display the BMS characteristics.
HMI screen of the Battery Management System
The BMS structure is multi-level, and each level needs screens for data display. It was also necessary to create screens for indicating system alarms, management options (Control screen), firmware versions, and system components (About screen). An additional task was to separate the rights of system users into guest, service, and super.
The second HMI-related challenge was to create a touch-screen application for BMS module testing. The application has to run on a special computer. The test results should be loaded into a separate JSON file.
Thresholds (for example, maximum and minimum cell voltage) are set on the settings screen.
The developers have chosen the C++/Qt/QML stack for HMI application creation. Using the power of Qt Creator IDE, the team did a great job of building applications with user interfaces in a short time.
HMI applications have been built using the detailed documentation provided by Qt. Some components such as buttons, dropdown menus, input fields, and checkboxes have been customized, and missing components have been created from scratch. The Qt community has helped solve some routine tasks. For example, newly entered data in the parameter list was reset to the old data stored in the C++ model when scrolling. Following the advice, the developers solved the problem by setting the caching of the widget (ListView).
With its versatility and vast scope, Qt is behind native environments in some respects.
By providing flexible tools, Qt allows developers to create animations in a few lines of code. But complex and persistent animations created with Qt can consume a lot of CPU resources and cause the screen HMI to overheat.
Qt animation optimization, based on the OpenGL library, does not support per-shader optimization. Therefore, Qt has to use many more resources than native environments use to create the same product.
While providing the logic of behaviour and interaction, Qt does not provide a ready-made solution for visual display. On the one hand, this is difficult, since the developer must have enough experience. On the other hand, Qt gives developers the freedom to choose styles and options without major system modifications.
So, for example, when creating tables, the framework has components for implementing simple functionality. To implement tables with tailor-made functionality and design, the developer needs to do a lot of manual work.
Industrial HMIs range from basic panels with a small set of functions to sophisticated environments with multimedia and networking abilities. All HMI changes are currently focused on expanding capabilities, increasing efficiency, and providing user-friendly solutions. HMI functionalities go up, and sizes become smaller, presenting complex challenges for developers. Today's realities require a quick product launch to the market to maintain all competitive advantages. HMI software can be created by various GUI tools, depending on the tasks and experience of developers.
Companies with vast expertise in system and application software development, including embedded app development, consider the Qt framework, not without good reason, as the most convenient set of GUI tools for creating cross-platform applications. Companies use the Qt framework to build multifunctional, rich and tailored human-machine interfaces.