MicroHMIs: Conquer the complexity
In a world driven by rapid technological evolution, the MicroHMI architecture can be a true game-changer. Some time ago, a new and groundbreaking concept took centre stage in the sector of Human Machine Interfaces (HMIs), namely – MicroHMI. The microservices model inspires this new approach, and it reimagines how we design interfaces between humans and machines. In this article, we will show you what MicroHMIs are about and why you should be interested in them.
In general, MicroHMIs break down the interface system into smaller, independent components. This strategic breakdown fosters a modular structure where each component handles a specific task. As a result, development becomes more efficient, maintenance simpler, and adaptability heightened, making MicroHMI a worthy tool for everyone in the automotive, medical, and electronics sectors.
But let’s start from the beginning.
What is the MicroHMI architecture?
The MicroHMI architecture constitutes a way to create a broadly understood HMI (Human Machine Interface) in an approach similar to the well-known microservices. With MicroHMIs, the development team can separate individual layers and parts of our system, on which they can next work in smaller teams, making it possible to work in parallel and independently, implementing further functionalities of the software created.
Where can MicroHMI be used?
In this approach, the user interface of a device or system is simplified and streamlined to include only the most essential elements and interactions. That said, MicroHMI can be successfully used in the following applications:
- Industrial IT Systems: MicroHMI will prove effective when it comes to controlling machinery and monitoring processes.
- Healthcare devices: Medical equipment often requires simple and clear interfaces to ensure that users (e.g., nurses or even patients) can operate them on their own without the risk of doing something wrong.
- Consumer electronics: MicroHMI also proves useful in consumer electronics, such as smart home devices and appliances.
- Automotive applications and systems: Lastly, MicroHMI can be used in vehicles, especially in situations where the driver should be minimally distracted; MicroHMI can be employed to display critical information and controls without overwhelming the driver with unnecessary features. That’s exactly what we wanted to achieve in our Wavey model, which we will discuss shortly.
MicroHMI architecture in a commercial project
MicroHMI architecture can be utilised in a number of cases in commercial projects. The choice is often dictated by the nature of the work and the development environment of a large project that is difficult to maintain as a monolith.
One of the commercial users of MicroHMI technology is a leading passenger car manufacturer. Their entire system is divided into dozens of applications and services, managed by separate teams with their repositories. To deliver dependencies in the development environment, they use Conan. Thus, individual components are delivered as ready-to-use packages.
Building the finished system looks different. The entire application is completed using Yocto, and each team creates and maintains recipes defining the components for which it is responsible. Communication between applications and services occurs via standardised and well-defined interfaces generated from IDL files, like Thrift or QFace.
The MicroHMI architecture in such a large project with many components, often independent of each other, facilitates the division of duties and responsibilities between teams.
What are the benefits of the MicroHMI architecture?
Divide and conquer is a common way of solving a big problem by breaking it down into smaller “subproblems”. That’s what MicroHMI offers, and it’s by far the biggest advantage of this solution. MicroHMI enables the division of the system into smaller “blocks”, which makes it much easier to manage the project, easier to expand, and less complicated. What’s also significant is that with MicroHMI, it’s easier to divide work into smaller teams. As a result, there are fewer conflicts, several stages of the work can happen simultaneously, and the work goes smoothly.
It’s still a very fresh idea, but MicroHMI can even be used in R&D projects. That’s what we decided to do with our project – Wavey. But again, let’s start from the beginning.
Why would you use such an architecture in an R&D project?
We wanted to try something new here at Spyrosoft. Together with the MicroHMI architecture, we also decided to use the Dual-Track Agile methodology, which, simply put, allowed us to work closely with the development team and designers. This, in turn, allowed us to quickly introduce changes and adjustments at the development stage, and not only in the verification process. Moreover, this approach made it possible to combine the discovery phase with the implementation phase.
What we did was also the direct result of our client’s needs. Often, older, “proven” methods make it harder for us to stop and actually think at the early stage of creation whether what we are about to deliver is an appropriate and matching element of our system. More often than not, we rush at first and try to deliver as much as possible, only to stop after some time and think about what part of it is really useful and what we should discard. We wanted to try and stop this “vicious circle”.
We used the MicroHMI architecture in one of our projects – Wavey. Let’s talk a bit more about it.
Wavey – an IVI system constructed of MicroHMIs
Wavey is our R&D project. In essence, it’s an IVI – In-Vehicle Infotainment system, based on Android Automotive and Qt technologies. Wavey is our way of creating an innovative IT system in a car that can be controlled through the screen, recognising gestures and interactions, placed in the middle of the console in the car. There is also a large, panoramic screen on which the entire system can be displayed.
The essence of this idea is to operate the entire system without taking your eyes off the road – the gesture screen allows you to perform all actions in the system, and the panoramic screen itself is only used to display the system and user interaction (it is not touch-sensitive).
In fact, this project was very interesting and promising in terms of architecture and the phase of its development. We divided Wavey’s repository into smaller repositories, where each repository was responsible for a single and independent part of the system, just like in the microservices architecture (e.g., applications, system base, shared components, etc.).
We decided that each repository would generate packages, which were then automatically downloaded to the main repository (SystemUI). For this, we used a popular tool called Conan. The project was placed on the Qualcomm SA8155P board, which was based on Android Automotive.
The application management system we used is a Qt module called Qt Application Manager. We also used AppMan, a solution that allowed us to run both applications written by us in Qt and native Android ones. An equally important module that we used is the Qt Interface Framework – a module used to create and generate middleware code in a very short time. Thanks to this solution, we were able to connect the business logic with the visual layer.
What were the challenges related to this project and MicroHMI?
The initial stage of the project was especially tricky; inventing the whole thing, preparing the entire system architecture, and setting up CI/CD, iterative refinement of the database took some time and work. At first, we felt that this was overkill – our approach required more work compared to a classic monolith architecture.
However, over time, we have noticed the benefits of this solution and gained a lot of experience and valuable knowledge, which we try to pass on and use in other projects in which we participate. Moreover, the ease and speed of getting new people on board each new project proved that carrying out more work in the beginning was definitely worth it!
Wrapping up
The MicroHMI architecture provides a lot of amazing benefits, including flexibility, scalability, and ease of modification. What’s more, this solution enhances usability, especially when it comes to automotive systems, industrial controls, and consumer electronics. It reduces user errors, speeds up interactions, and ensures transparent and efficient communication between humans and machines. The result? Full usability and unmatched user experience.
If you want to use this architecture in your future IT project, we’re happy to assist you. Contact us or check our HMI development services if you would like to learn more; we are happy to show you the demo of our system and go through the concept and ideas behind it.
About the author
RECOMMENDED READING: