To improve the accessibility of our content, please find the audio version of this blog post.
How do you create a graphical user interface for a consumer product while keeping the bill of materials low? It’s the question the ST Blog asked PsiControl, a Belgian corporation and an ST Authorized Partner that specializes in human-machine interfaces and touch devices. We sat down with Jan Servaes, Product Manager at the company, who pointed us to a project his teams led for JDE Professional, a worldwide manufacturer of coffee machines. The Cafitesse Excellence Compact Touch uses a graphical interface built on TouchGFX. The menu runs on an STM32F767 and a 7-inch screen (800 x 400). The project required 18 months of development and yielded an interface that now serves as a foundation for future products. However, before arriving at such a successful outcome, PsiControl had to overcome various challenges.
Table of Contents
The Two Arguments That Convinced Skeptics
Engineers may not realize how foreign the concept of a GUI running on an embedded system may be for some managers. Many simply think that anything involving graphics and animations requires an MPU and Linux. Hence, the first job for PsiControl was to show JDE why an MCU was beneficial by employing two significant arguments. The company first established that an MCU led to a drastic reduction of the bill of materials. Secondly, PsiControl demonstrated the operation’s viability with a working demo very early in the process. Let’s, therefore, look at these two arguments more closely to see how they can help engineers wishing to create GUIs on embedded systems.
PsiControl and TouchGFX: Argument #1 — There’s More Graphical Power in an MCU Than Many Realize
Linux vs. Embedded Systems
As Jan told us,
“Using a Nucleo demo board with a display was crucial. It enabled us to show JDE Professional that we could realistically run the MCU interface while jumpstarting the project. The development platform and the TouchGFX demo also enabled us to show that our teams didn’t need Linux to run an impressive graphical interface.”
PsiControl explained that it wasn’t their first time using TouchGFX, but this project inaugurated their use of an STM32F7. The MCU was crucial in their decision to run the GUI on an embedded system. Indeed, the ST component provided enough power to enable their vision while keeping costs down, a decision with a tremendous impact given the large volumes of the final product. The lesson that Jan shared was that many teams working on small volume applications might choose Linux. It is undeniably popular, and even ST offers a Linux distribution called OpenSTLinux. However, when working on cost-sensitive or high-volume projects, high-performance MCUs can ensure GUIs don’t blow up costs.
PsiControl and TouchGFX: Argument #2 — It’s All About the Ecosystem
STM32 Open Development and the ST Ecosystem
The experience recounted by Jan highlights the importance of the ecosystem when working on an embedded system. PsiControl shared how they used STM32CubeMX, TouchGFX Designer, and TouchGFX Simulator to hasten developments. The company also explained that its engineers got onsite training with TouchGFX experts to gain a greater mastery of the framework. As Jan divulged,
“Developers may sometimes underestimate the complexity behind an animated user interface. It is, therefore, crucial to have an entire ecosystem behind a graphical framework to avoid massive delays. For instance, PsiControl not only relied on TouchGFX but hardware IP on STM32 MCUs, such as the ChromART engine. Similarly, our teams enjoyed ST tools but did also rapidly move to the source code to optimize the application. Finally, being able to quickly see what things would look like in the Simulator was invaluable.”
Case Study: An Original Use of the JPEG Decoder
Another example that Jan shared focused on their use of the STM32 hardware JPEG decoder. Initially, his teams worked on optimizing moving images by using ST’s hardware IP. However, by the end of developments, moving images were no longer in the specifications. Nevertheless, armed with their knowledge and experience, PsiControl engineers found another important use for the decoder. Indeed, the team stored images as a binary file into the flash. When the UI called the image, the application used the JPEG decoder to load the asset faster while utilizing few resources. This last example shows the importance of leveraging the entire ecosystem when working on a UI for embedded systems.