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 an efficient GUI on an MPU requires to well interface with the Hardware itself and optimize the different layers of software stack. In addition of that, the software interface with IDE or tools is important to ease the GUI development. All graphics libraries are dedicated to run on Arm Cortex-A.The STM32 graphics offering is designed to help you create stunning graphical user interfaces (GUIs) on STM32 MPUs with ease. Building an efficient GUI on an MPU requires well interfacing with the hardware itself and optimizing the different layers of the software stack. In addition to that, the software interface with IDEs or tools is important to ease GUI development. All graphics libraries are dedicated to running on Arm Cortex-A.
ST recognizes these challenges and offers a range of graphics solutions, including support from ST Authorized Partners, to help you create a GUI that is both visually appealing and optimized for performance.
Additionally, 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.
The new TouchGFX add-on for STM32MP13x MPUs further enhances the graphical capabilities, providing a well-known powerful tool for developers.
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.
- WYSIWYG tools
- Drag and drop interface
- Bare metal
- Set of widgets ready to use
- Specific add-on for STM32MP13x lines
TouchGFX is an advanced, free-of-charge GUI optimized for STM32. By taking advantage of the STM32 graphical hardware acceleration, architecture, and ecosystem, TouchGFX accelerates the HMI-of-Things revolution through the creation of stunning smartphone-like user interfaces on embedded devices. These range from simple low-color UI applications to high-resolution and high-color UI applications. The TouchGFX MPU add-on offers support for STM32 MPU devices. With this add-on, you have everything you need to fully implement your GUI application on STM32 MPU-based hardware.
- 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) with X-LINUX-QT expansion package
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.
- 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.
- 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
- Bare metal or any (RT)OS
- Set of widgets ready to use
- Can be scaled to a variety of STM32
Embedded Wizard is a GUI solution that enables you to create a platform-independent and high-performance GUIs. Embedded Wizard simplifies the HMI development and lets the customer create GUIs with minimal effort by reducing the overall memory footprint. Embedded Wizard is highly adapted to support STM32MPUs in the best way by using ChromART, NeoChrom, NeoChromeVG, 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 | ||
TouchGFX | |||||||||
GTK | |||||||||
LVGL | |||||||||
Qt | |||||||||
Candera | |||||||||
Embedded wizard | |||||||||
Crank | |||||||||
Altia | |||||||||
Slint | |||||||||
Android |
Videos
A quick demo on
STM32MP157 DK
Candera CGI studio demo
STM32MP135 EV-charger