Entry-level graphics running on mainstream microcontrollers are among the most popular trends in embedded systems today, with numerous manufacturers using knob displays, among other features, to improve the user experience. Consequently, we are using the STM32 Summit to help our community be ready for this new trend. Indeed, during the keynote, we showcased a smart knob with a 240 x 240 display running at 60 FPS on an STM32C0. The demonstration is a milestone because it shows that the costs and requirements for running a UI continue to decrease significantly. In fact, we see it among our customers, who are rapidly adopting entry-level systems and small displays to stand out from competitors and better serve their users.
Taking advantage of new mainstream hardware
Finding the right entry-level MCU

A common refrain among engineers is the fact that it’s hard to determine the minimum requirements for a graphical user interface. The vast majority understands the boundaries of a microcontroller very well by now. They know they must be mindful of the available memory, the power consumption, especially on battery-powered devices, the computational throughput, and more. However, over the years, MCUs have become a lot more capable. That has meant, among other things, the ability to run a GUI in systems that previously couldn’t have one. However, while many are trying to figure out how far into the entry-level portfolio they can go, most don’t have the time or budget to test a myriad of MCUs to settle the issue.
Seeing the STM32C09x in action
This is why we are showcasing a real-world graphical user interface running on an STM32C0. The MCU made waves when it came out as it became an alternative to 8-bit microcontrollers and represents one of the most accessible MCU series in the ST portfolio, price-wise. In our demo, attendees of the STM32 Summit could see for themselves a GUI that used only 18 KB of RAM and 123 KB of flash, meaning it could run on the STM32C09x devices. More importantly, it shows the type of graphical assets and framebuffer strategy (partial framebuffer), that developers can use in TouchGFX to make this a reality.
Benefitting from the ST ecosystem
Hardware availability

As we explain in the demo, we used a TSD knob display and will have a limited stock in various regions, and is also available online. More importantly, it demonstrates how we work with the rest of the industry to make these displays more accessible. Many companies don’t build a GUI because they don’t know where to source a screen, or they worry it will blow up their bill of materials. Thanks to ST’s collaborations with various partners, we are ensuring that more engineers in our community can reliably use displays like the one in our demo, enabling them to offer a GUI on mainstream systems.
Framework optimizations
The video above also gives pointers to engineers looking to get started. Indeed, it shows how it is possible to offer a convincing UI with basic graphics that compress well in the L8 format, and how using background boxes instead of bitmaps can help save a ton of flash. ST also goes over some of the most popular widgets in TouchGFX Designer that would offer a convincing experience, such as the image progress widget to fill a volume bar, container widget, to allow a UI to fill the screen with a color while limiting the impact on the memory usage, or the circle widget to help developers rapidly create an intensity level indicator.
Design flexibility
Those who wish to build a richer UI on the STM32C0 can use external SPI flash to store more complex images. And many may choose to do that because the added costs are well worth the gain in user experience. However, the point of the demo is not only to show that a GUI can run on a mainstream MCU, but that, if needed, it can run without external memory. This was important for our teams because we know that applications that require mainstream MCUs often have tight bills of materials. Hence, we not only showed that an STM32C0 is enough, but that, by using TouchGFX and its numerous optimizations, a good GUI is compatible with constrained budgets.
