How to design a Human-Machine Interface (HMI)

The development of control systems for complex equipment, a common task for Fly High Engineering, often involves the creation of suitable interfaces for the people who interact with the system in different roles, like operator, supervisor, maintenance, and possibly others. These interfaces are called HMI (Human-Machine Interface) and may have a variety of different forms, from small embedded LCD panels to large touchscreens, with the possibility of remote operation via a web browser or an app.  If you start from scratch, consider getting support from professional designers, who know how to effectively and efficiently address the complexity of usability engineering.

The modern approach to HMI design is not to think about how things are displayed, but to think about the behavior of the people interacting with the HMI.  This behavior is influenced by the user experience (UX), because we are more effective if we can perform our tasks in a way that we find natural and pleasant.  At the same time, the behavior is constrained by the required workflow of the system and by the processes of the organization using it.  Therefore, the HMI design must account for organizational processes, system workflow, and UX aspects, trying to find the “sweet spot” that makes everybody happy.  Easy, isn’t it? J

There is no single rule to design a HMI, but there is a list of good questions to ask, to better understand the processes, workflow, and UX requirements.  The very first questions are about the purpose and scope of the HMI.  Examples are:

  • Which roles will interact with the HMI?
  • What is the primary function of the HMI, for each role?
  • Which HMI tasks enable users to perform?
  • Which systems and/or machines will the HMI interact with?
  • Which are the regulations and standards to adhere to?

Once these top-level questions have been answered, one has to go deeper into understanding user requirements for the HMI.  Good questions are:

  • What is the difference between different roles (e.g. operator, supervisor, manager, etc.)?
  • Which technical skills and familiarity with the system do these users possess?
  • What are their primary goals and pain points?
  • What information and controls must be accessible at a glance?
  • How will users interact with the HMI (e.g., touch, keyboard, voice)?

The next step is to design the User Interface (UI) within the chosen technology.  One approach is to start from the UI and then identify the most suitable technology, but more often the technology platform is chosen already and the UI design must account for what is feasible under that platform.  Common questions about the technology are:

  • What hardware platforms (e.g., PLCs, SCADA systems) will the HMI run on?
  • What software frameworks and programming languages have to be used?
  • How will the HMI communicate with the underlying systems (e.g., via APIs, protocols)?
  • What are the performance requirements (e.g., response time, CPU power)?
  • How will the system handle data storage, processing, and real-time updates?

UI-related questions are:

  • Are there regulatory or standard requirements?
  • What visual elements (buttons, sliders, charts) will be most effective?
  • How should information be organized and prioritized on the screen?
  • What color schemes and typography will enhance usability?
  • How will the interface handle different screen sizes and resolutions?
  • What accessibility considerations (e.g., for colorblindness) need to be addressed?

At this stage, you will have quite a good understanding of the result you aim to achieve.  For simple systems, this is enough for you to start developing the HMI.  If you need support, just contact for Fly High Engineering.