Many embedded systems today use a human machine interface (HMI) to interact with the users and world around them. HMI’s are so common that a first time HMI developer often under estimates the total extent of what is necessary to successfully pull off the project. In this post, we will examine what is necessary to scope your first HMI project and make it a success.
Usually the first instinct a developer has when working on an HMI project is to build the solution from scratch. I often see developers start by searching the internet for cheap LCD’s, video graphic chips, single board computers and even start to generate block diagrams for building their own custom display module. There are several major issues with going down this path such as:
Rather than starting at the implementation level, first time HMI project developers should take a 30,000-foot view and think through the entire HMI process to fully understand everything that will need to go into the project.
There are four major areas that a developer needs to consider in order to make their HMI successful that covers far more than just driving a LCD. These include:
Developers should start their scoping process in the same order that these major areas are listed.
The UI/GUI can make or break a product. A user isn’t going to care about the underlying hardware or what it is does. Their main care is whether the UI is intuitive, fast and easy to use. In order to achieve these factors, a developer needs to make time to map out the menu’s and functions within their UI and also follow a creative process to provide the UI with a good look and feel. The more options available in the user interface, the more time that will need to be allocated for creating graphics, reviews and testing.
Many first time HMI developers overlook how important communications can be in their project and often create extremely complex solutions to have their HMI communicate with the external world. This often stems from starting with a hardware focus and working up into the higher-level requirements. Leveraging existing communication modules such as the SCM208 or the SCM318 can simplify the need for complex hardware designs and decrease development time by avoiding the typical design cycle issues.
If developers spend most of their time focusing on their HMI and how that HMI will communicate with the external world, essentially focusing on their products value add for their clients, they can then minimize the time spent developing firmware, infrastructure and hardware by looking at their HMI and communication requirements and finding existing solutions that support their HMI needs. They can then completely eliminate the need to develop hardware and instead can focus on the HMI design which will prevent them from reinventing the wheel. Most of an HMI project should be spend on the HMI and not on developing the components that support the HMI like the hardware, software and infrastructure.
In the next post, we will start to explore how developers can simplify device communications in the IoT age using existing communication devices.
Creating an HMI for the first-time developer can be a bit overwhelming. Please check-out two resources for ideas on how to develop and design an HMI: