The design trends in embedded HMI (Human-Machine Interface) are continuously evolving. With products getting smarter and offering an increasing number of features, end users expect HMIs to provide an engaging experience and easy access to product features.
Including a GUI (Graphical User Interface) in your products will allow you to design a more user-friendly, safe, and modern device, offering end users more value. The key design requirements of GUIs are shaped by the one device we all interact with every day: the smartphone in our pockets.
Ready to get started?
The STM32 family provides the tools required to easily add smartphone-like Graphical User Interfaces (GUIs) in embedded devices, accelerating the "HMI of Things" revolution.
STM32 GUI developer kits
The STM32 offer for Graphical User Interfaces includes a large choice of developer kits, software examples and demos.
Each developer kit comes with a flashed demonstration. The code for each demo is made available in the associated STM32Cube software packages.
An extended ecosystem to support your development
Display module makers
Avoid the hassle of sourcing your own display kit. Select a production-ready display module from one of our ST Authorized Partners and add it to your product.
UI Tool providers
Several ST Authorized Partners provide GUI development tools for STM32 hardware. They are all committed to support you to ensure smooth GUI development on STM32.
Graphics on STM32 MCUs
Use GUIs to offer the best UX
To design embedded products offering an outstanding user experience, the STM32 family offers the industry’s broadest range of graphics-enabled MCUs with over 200 active part numbers, supporting different display interfaces and packaging options. The STM32 graphics enabled MCUs embed different features that allow developers to achieve the desired performance and optimization trade-offs required for embedded devices, such as:
- The Chrom-ART Accelerator™ offers memory-efficient 2D graphics acceleration and enables smooth transitions and transparency effects while offloading the main CPU
- NeoChrom GPU, New 2.5D Accelerator With Massive Hardware Optimizations for Rich UIs on STM32. The technology optimizes animations such as flips, spins, scaling, zooms, and more. In a nutshell, the new hardware IP accelerates texture mapping and alpha blending. Offloading these computations to NeoChrom GPU vastly increases the number of frames per second.
- NeoChrom VG GPU is the first vector graphics accelerator specifically designed for vector graphics computations. It builds upon the technology of the NeoChrom GPU.
- The JPEG codec allows you to add M-JPEG videos for branding and tutorials
- Fast access to internal and external memory avoids bottlenecks, supporting smooth animations
- The large internal memory supports a one-chip solution, without requiring an external RAM and Flash for small-resolution displays. This brings you additional flexibility to secure system architecture, your buffer strategy and memory budget
- Support for large display interfaces with parallel interfaces, LCD-TFT, and MIPI-DSI embedded controllers
What it takes to develop a GUI
Creating a good GUI requires skills and expertise, and involves many building blocks, starting with the selection and sourcing of the right display and casing, the art-creation of menus and screens, the programming of the art-design into a user interface and the electronic development, before being able to connect the dots and to trigger the spark that will bring your design to life.
We know it can be overwhelming to develop a GUI.
That is the reason why ST provides state-of-the-art and MCUs, combined with the tools and the support you need every step of the way, to ensure you bring your GUI project to success.
Define your needs and select your MCU & developer kit accordingly
STM32 portfolio of graphics enabled MCUs
STM32 GUI developer kits
The STM32 offer for Graphical User Interfaces includes a large choice of developer kits, software examples and demos.
Each developer kit comes with a flashed demonstration. The code for each demo is made available in the associated STM32Cube software packages.
Download TouchGFX
What is TouchGFX
Integrated in the STM32 ecosystem, TouchGFX is a free GUI tool providing everything you need to create cutting-edge GUIs.
TouchGFX is delivered in the X-CUBE-TOUCHGFX package which includes:
- TouchGFX Designer, a PC GUI-builder and simulator
- TouchGFX Generator, to configure and generate a TouchGFX project
- TouchGFX Engine, which is an optimized, hardware-accelerated graphical library
Start creating your own GUI
Select examples, watch demos, or start from scratch by importing graphical assets and use widgets in TouchGFX Designer to create your GUI application.
Flash your design kit and run your smartphone-like GUI
With your developer kit connected to your PC, you just hit the “Run Target” and TouchGFX Designer will automatically use installed STM32Cube Programmer to flash to your kit.
TouchGFX Experts
Our dedicated and highly skilled TouchGFX Experts help you move from idea to market-leading products. They are able to provide support and services on STM32 and TouchGFX solution, bringing their innovative approach, combined with their extensive knowledge and experience, to help you design your next embedded product and quickly move from idea to end-product.
Additional resources
Videos
TouchGFX 4.23 fast flash programming and vector font
STM32U5G9 cost-effective solution
STM32 graphics cost-effective GUI solution
Run MPU-like GUI applications on STM32H7RS
STM32U599 Neochrom GPU demonstration
STM32 GUI development with low-flash usage
Graphics on STM32 MPUs
The STM32 graphics offer is designed to help you create stunning graphical user interfaces (GUIs) on STM32 MPUs with ease. Building a GUI on an MPU requires optimization for memory usage, performance, input/output devices, power consumption, and user experience. ST recognizes these challenges and offers a range of graphics solutions, with ST Authorized partners' support, to help you create a GUI that is both visually appealing and optimized for performance. This comprehensive approach takes into account the unique constraints of embedded systems, ensuring your MPU-based GUI delivers a smooth and responsive user experience.
3D Graphics Processing Units (GPUs) offer the capability to handle complex 3D graphics calculations and rendering much faster than CPUs, while also being more power-efficient.
STM32MPU wiki
Helps you get started your GUI design on STM32MPUs
Select your MPU
STM32MP13 | STM32MP15 | STM32MP25 | |
Camera interface | DCMI Up to 240 Mbytes using a 120 MHz pixel clock and 16-bit of data. 3 megapixels @30 fps in color 5 megapixels @15 fps in color | DCMI Up ot 140 Mbytes using an 80 MHz pixel clock and 14-bit of data | MIPI CSI-2 with Lite-ISP (5 megapixels @30 fps DCMI 1megapixels @15 fps) |
Display interface | LCD-TFT WXGA (1366×768) @60 fps up to full HD (1920 x 1080) @ 30 fps | LCD- TFT WXGA (1366 × 768) @60 fps up to full HD (1920 × 1080) @30 fps MIPI® DSI 2 data lanes | LCD-TFT FHD (1920 × 1080) @60 fps LVDS Up to QXGA (2048 × 1536) @60 fps with dual link DSI Up to QXGA (2048 × 1536) @60 fps |
NEON (Arm Cortex®-A) | video encode/decode, 2D/3D graphics | video encode/decode, 2D/3D graphics | audio, video, 3D graphics, image, and speech processing |
GPU | 3D GPU: Vivante® OpenGL® ES 2.0 - Up to 26 Mtriangle/s, 133 megapixels | 3D GPU: VeriSilicon® - Up to 900 MHz OpenGL® ES 3.2.8 - Vulkan 1.2-OpenCL™ 3.0, OpenVX™ 1.3 Up to 150 Mtriangle/s, 900 megapixels |
Libraries running on the STM32 ecosystem
Develop smartphone-like UIs thanks to powerful tools, fully supported with OpenSTLinux or OpenSTDroid and enrich your designs on STM32MPU platforms.
- GTK - GIMP Toolkit
- Free and open-source
- C and many other languages
- Set of widgets ready to use
- OpenSTlinux support (Yocto and Buildroot)
Free and open-source cross-platform widget toolkit for creating graphical user interfaces. GTK provides a set of widgets and tools for building GUIs, including buttons, text boxes, menus, and dialog boxes. It’s written in C and provides bindings for many other programming languages, including Python, Perl, and Ruby.
Widely used in the Linux and Unix communities, GTK is licensed under the LGPL (Lesser General Public License), which allows developers to use and distribute GTK in both open-source and commercial applications.
- Free and open-source (Android open-source project)
- Variety of graphics rendering APIs for 2D and 3D
- Android support
The Android framework provides plenty of standard tools for creating attractive, functional graphical user interfaces. However, if you want more control of what your application draws on screen, or are venturing into 3D graphics, you need to use a different tool. The OpenGL ES APIs provided by the Android framework offers a set of tools for displaying high-end, animated graphics that are limited only by your imagination and can also benefit from the acceleration of graphics processing units (GPUs) provided on many Android devices.
- QT
- Set of widgets ready to use
- C++ and many other languages
- Supported on many platforms
- OpenSTlinux support (Yocto and Buildroot)
QT is a popular cross-platform framework for developing graphical user interfaces (GUIs) and applications. It provides a set of tools and libraries for building GUIs, including widgets, layouts, and styles. QT is written in C++ and provides bindings for many other programming languages, including Python and JavaScript.
- LVGL - Light and Versatile Graphics Library
- Free and open-source
- C language
- Set of widgets ready to use
- OpenSTlinux support (Yocto and Buildroot)
- Bare metal support
LVGL is an open-source graphics library that provides a set of graphics and user interface components for creating embedded GUIs. It is designed to be lightweight and flexible, making it suitable for use in a wide range of applications, from simple displays to complex graphical interfaces. LVGL supports a variety of display drivers and input devices and can be easily integrated into Linux and bare metal-embedded systems.
- WYSIWYG tools
- Drag and drop interface
Embedded Wizard is a GUI technology that enables you to create a platform-independent and high-performance GUI. Embedded Wizard simplifies the HMI development and lets the customer create high-performance graphical user interfaces with minimal effort by reducing the overall memory footprint.
Embedded Wizard is highly adapted to support STM32MPU in the best way by using, OpenGL ES 2.0, or even highly optimized software renderers.
- WYSIWYG GUI editor
- Can be scaled to a variety of STM32
Altia specializes in graphical user interface (GUI) development solutions for production-embedded displays. The Altia software tool chain includes an integrated, efficient, and easy-to-use workflow with advanced 3D capabilities, global language support and much more.
- Works with LVGL or GTK libraries
- Programming language needed
Slint is a Linux distribution that can be used on STM32MPUs to create GUIs for embedded systems. With a range of tools and libraries for graphics development, Slint is a popular choice for developers who need to create high-quality and visually appealing graphics applications for a variety of platforms and devices.
STM32MP13x | STM32MP15x | STM32MP25x | Via partners | ||||||
Bare metal | Yocto | Buildroot | Yocto | Buildroot | Yocto | Buildroot | Android | ||
GTK | |||||||||
LVGL | |||||||||
Qt | |||||||||
Candera | |||||||||
Embedded wizard | |||||||||
Crank | |||||||||
Altia | |||||||||
Slint | |||||||||
Android |
Videos
A quick demo on
STM32MP157 DK
Candera CGI studio demo
STM32MP135 EV-charger