ST is announcing the release of a new version of the STM32 Finder mobile application and a new video feature for STM32CubeIDE. The new releases thus create a more comprehensive experience for everyone working on or with an STM32 microcontroller. STM32CubeMX will also continue to receive improvements to optimize developers’ workflow. Since nearly all projects relying on STM32 use one or more of these tools, it was critical to ensure that all could use them to solve the challenges inherent to product development and project management, regardless of their role and experience. Today’s updates also offer a taste of things to come.
Table of Contents
- 1 STM32CubeIDE
- 2 STM32CubeMX?
- 3 STM32 Finder
- 4 The STM32CubeEcosystem
What Is STM32CubeIDE?
STM32CubeIDE is ST’s first integrated development environment, and it serves as a reference to developers working on STM32 microcontrollers. Many use a toolchain from a third-party vendor, and we will continue to work with IAR, Keil, and others to ensure that they offer an exceptional experience to their users. STM32CubeIDE is a highly symbolic initiative because it provides a free and uniquely feature-rich environment to enthusiasts and professionals, thanks to the integration of tools like ￼STM32CubeMX￼ that enable a more efficient workflow. STM32CubeIDE is available for Windows, macOS, and Linux, with a version specific for Debian/Ubuntu, Fedora, and a more general installer for other distributions.
One of the distinguishing features of STM32CubeIDE is its integration of STM32CubeMX. Developers can select their board or microcontroller and start a project after configuring the pinout and clock tree. As a result, developers can far more easily switch from writing code to the configuration utility. If needs change or teams realize they must make adjustments, updating a project becomes more straightforward. STM32IDE is also fully compatible with Eclipse. Developers that use plugins to inspect their source code, find bugs, or manage teams using task management systems can use familiar tools, thus lowering the learning curve.
What’s New in STM32CubeIDE?
The first thing users will notice is the new Home Screen. Developers often struggle to know what’s new. There are so many advances and updates that it is hard to keep track of everything. By featuring new functionalities and software on the home page, users can get further information faster. For instance, the current Home Screen advertises how to access the Azure RTOS TraceX export mechanism. Developers can export traces and analyze them in TraceX to hasten debugging operations. ST is also showcasing its MPU Bootloader deployment tool. The tool will ensure users can load and test their Linux implementation faster on STM32MP1 MPUs.
The other significant new addition to STM32CubeIDE is its video corner. A new tab available from the Home Screen called “Access Video” offers a vast array of tutorial videos. Currently, most content focuses on the integrated development environment and STM32CubeMX, but more is on the way. Once users click on a thumbnail, a link opens a browser window to YouTube. Developers starting an application around Bluetooth, GNSS, MEMS, NFC, and more, can thus begin by first checking out the relevant video. Hence, the videos serve as a complement to the extensive user manual already available in STM32CubeIDE.
Where Did STM32CubeIDE Come From?
Before STM32CubeIDE, developers used SW4STM32, a free version of System Workbench. It was popular among enthusiasts and campuses, such as the University of Michigan-Dearborn, that used the toolchain to write their driverless car application. STM32CubeIDE now took over by supporting our microcontrollers and the STM32 MPUs but also integrating STM32CubeMX. ST continues to support SW4STM32 for the time being, even if it won’t receive any additional updates. We understand that some development teams still would like to use the legacy tool. However, STM32CubeIDE provides the ability to easily port projects from SW4STM32 to facilitate the transition to the new IDE.
One event that ultimately led to the arrival of STM32CubeIDE was ST’s acquisition of Atollic in 2017. The software company was famous for TrueSTUDIO, which helped many developers understand the inner workings of their applications. For instance, trace and profiling tools allowed to trace data, events, memory history, and visualize variables in real-time, which was invaluable to grasp the code’s behavior without freezing its execution. After the acquisition, STM32CubeIDE got all these features and more. STM32CubeIDE also offered the ability to easily port projects from TrueSTUDIO to help users move from one to the other.
What is STM32CubeMX?
STM32CubeMX is a graphical tool that helps developers generate code that initializes a system. Users get an interface to configure the microcontroller’s pinout and resolve conflicts as well as set up hardware peripherals and middleware. They can also configure their clock tree and benefit from a wizard that automates specific calculations. Similarly, another utility sets up and tunes the DDR on systems with STM32MP1 MPUs. The tool also helps select the right MCU or MPU and download its software package. Hence, it’s very often the first step for developers looking to create an application. The tool is available in STM32CubeIDE or as a standalone download.
STM32CubeMX also assists developers in other parts of the job. For instance, finding documentation may be a source of friction. ST is famous for its extensive documentation, and partners often tell us that it’s one of the reasons they select our devices. Hence, we decided to offer tutorial videos within the standalone version of STM32CubeMX to help developers searching for information. Users thus get a more intuitive first look into our tools and products. We offer videos on how to configure the clock tree, the pins, or different software features, for instance. Programmers who are new to our tools can start their application quicker, making it another way to lower the barrier entry and reduce friction.
What to Expect in STM32CubeMX?
Developers often use the standalone version of STM32CubeMX to select and initialize an STM32 microcontroller. They have an IDE from Keil or IAR, to name a few. One of our goals is thus to improve the search feature available in STM32CubeMX. We will also continue to help developers find additional X-CUBE and I-CUBE packages from the utility (more on that later). Therefore, developers rely on STM32CubeMX to get all the middleware, header files, and other code they need without having the leave STM32CubeMX. Additionally, we keep adding example projects to jumpstart workflows. Users can thus get a complete configuration for a board or a device to start writing code faster.
What is STM32 Finder?
Not everyone working with STM32 necessarily writes code or designs a PCB. For instance, a manager may plan for a project, or a decision-maker may want to know a component’s specifications. In such a situation, having to download STM32CubeIDE or STM32CubeMX standalone would be cumbersome. As a result, we created STM32 Finder, ST’s mobile for smartphones and tablets to find STM32 microcontrollers. The tool includes an extensive search feature to find a device or a related development board rapidly. Users also get to download various documentation or rapidly access social media channels and community forums.
What Is New in STM32 Finder?
To improve the user experience, ST made STM32 Finder faster and added features for power users. The former came from overhauling the mobile version. By optimizing its code, we increased response times significantly. We are also adopting a responsive design to allow users to compare many devices at once, regardless of the display size. ST also changed the app’s update system to only download changes to the database rather than an entirely new one. Hence, updates are more frequent and take far less time to install to ensure searches are up to date. The latest version also includes new links to various online outlets to find partners, ask questions, or learn what’s new.
ST also reworked the search feature to make it vastly more customizable. For instance, users can now distinguish between packages. As a result, they can see how various models may influence thermal performance or prices, among other things. The application can also group categories of specifications. For example, users can search for a device by grouping UART, LPUART, and USART together. Hence, finding a device’s total number of peripherals can help answer specific questions without digging into the datasheet. Developers could also use the new grouping system to search for devices with SPI and USART since the latter also serves as an SPI.
What is the STM32CubeEcosystem?
Launched five years ago, the STM32Cube brand designates our solutions to help developers design products and applications. The software ecosystem relies on two pillars: embedded packages and software tools. There are two types of STM32Cube Packages: MCU Packages and Expansion Packages. The MCU Packages (STM32CubeF4, for instance) contain drivers, low-level APIs, and demo and example codes for Nucleo and Discovery boards. The STM32Cube Expansion Packages complement the MCU Packages by offering additional middleware or drivers, as we recently saw with X-CUBE-AI, the first package in the industry to enable the conversion of a neural network into the optimized code for STM32 MCUs.
The STM32Cube software tools for PCs assist in the design of applications. This blog post focuses on STM32CubeIDE, STM32CubeMX, and STM32 Finder, because they are often at the core of product developments. It is common to hear partners say they rely on one of them or more for their project. And many of our tutorials use them to make our technologies more accessible. However, there are many other STM32Cube software tools. For instance, STM32CubeMonUCPD is a monitoring tool that works with all our USB-C PD interfaces and libraries to facilitate testing and implementation operations. And STM32CubeProgrammer is a programming tool that makes STM32 MCUs more accessible and efficient.
How Tools in the STM32Cube Ecosystem Work Together?
Over time, STM32CubeIDE will integrate other STM32Cube software tools. We will share more details as they become available, but, in the meantime, developers have the assurance that the toolchain will become a one-stop-shop for all their STM32Cube needs. Just as with STM32CubeMX, we will continue to release standalone versions of our STM32Cube tools for the developers that use other toolchains, ensuring that anyone can easily benefit from our STM32Cube ecosystem, whether engineers are looking for packages or software utilities. Our engineers and researchers will also be using STM32CubeIDE to improve it further.
How Software Packages in the STM32Cube Ecosystem Work Together?
Up to now, developers that wanted to use a STM32Cube expansion package had to find the right one, download it, and unpack it. That meant adding source files to an IDE or even exploring its source code. Additionally, porting it from one MCU to the next isn’t always straightforward if an application uses specific pins or IPs. It may also be imperative to install drivers, libraries, or middleware. Until now, ST offered documentation and tutorials to help developers. When there were only a few expansion packages, things were much more straightforward. Now that the STM32Cube ecosystem is so large, frictions can significantly increase.
The solution comes from the integration of STM32Cube expansion packages within STM32CubeMX. Put simply, developers can select an X-CUBE package straight from the MCU configuration tool. It required that we update existing packag es, and a list of compatible solutions is available. We will also continue to ensure that most upcoming STM32 expansion packages from ST support this feature. By integrating these software packs within STM32CubeMX, users select the package, generate the files, and start coding. As a result, it lowers the barrier to entry for developers less familiar with our ecosystem.
How Can ST Authorized Partner Bring Their Software Package to the STM32Cube Ecosystem?
Another issue that developers may encounter pertains to the ability to share their custom solutions. It is common for a company with specific needs to create its expansion package. Partners may also want to offer solutions to the community. For instance, we talked about embOS from Segger and Unison RTOS from Rowebots on the blog, but there are many others. These solutions, found under the I-CUBE initiative, help engineers add features and experiment with various technologies. However, sharing a custom package within a company or the community is not always obvious or easy. Hence, we wanted to help partners more easily create highly sharable packages.
To remedy this particular point of friction, ST is opening STM32CubeMX to I-CUBE packages. Put simply, the same integration we bring to our STM32 expansions (X-CUBE) is now available to all developers. Anyone can now create a package using STM32CubePackCreator to create a solution that can appear within STM32CubeMX. However, we’ll curate what’s visible by default within the MCU configurator tool. We offer documentation to guide developers in this process to ensure uniformity and compatibility within the STM32Cube Ecosystem. We are also offering STM32PackCreator. The utility, found within STM32CubeMX, facilitates the creation of a software package from scratch.
An expansion software observes the CMSIS-Pack (Cortex Microcontroller Software Interface Standard). Many will also be configurable within STM32CubeMX’s GUI. To abide by the CMSIS-Pack specifications, developers must include a PDSC (Pack Description) file. Such a document uses XML and demands precise, specific, and detailed information on all the pack’s content. Similarly, to make the X-CUBE or I-CUBE configurable within STM32CubeMX, STM32PackCreator uses a specific UI. It opens the door to a system that puts a wealth of options at a user’s fingertips. Developers no longer have to do configure everything manually by writing code. Put simply, STM32PackCreator removes friction by automatically generating the PDSC file. It also ensures the software components are configurable within STM32CubeMX.