ST released an important upgrade to its STM32 MCU Developer Zone and introduced a new STM32 MPU Developer Zone to reflect how developers approach their applications. The Developer Zone thus improves the overall accessibility of the STM32Cube ecosystem and fulfills a new role as an essential hub for the STM32 community and as a starting point before teams use other tools like the STM32 Finder mobile application or STM32CubeIDE and STM32CubeMX. Since nearly all projects relying on STM32 use one or more of these tools, it was critical to improve how they interact and inform one another to serve our community better as it faces the challenges inherent to product development and project management, regardless of their role and experience.
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. STM32CubeIDE 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 MCUs or MPUs and download their software packages. 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 to 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 to 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 application for smartphones and tablets. 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.
The STM32 Developer Zone
New approaches to development
Increasingly, new markets are adopting embedded systems, and engineers must familiarize themselves with new concepts. For instance, developers may need to quickly learn how to take advantage of AI on a microcontroller, write a low-power wireless tool designed for harsh environments, or implement strong security safeguards to meet new regulatory requirements. It was thus important for ST to help teams make the right choices for their products faster. The STM32 MCU Developer Zone is already playing a significant role in our community and is ranked as the number one page on ST.com in customer satisfaction. It was thus normal to use this platform to serve STM32 developers better.
Consequently, while keeping the original spirit that made the Developer Zone successful, we felt it would help our community further by providing a new STM32 MPU Developer Zone. Additionally, we also worked on a new application-based approach to complement the existing product or software selectors for tools like STM32CubeIDE. Additionally, we have a “Solutions” section with sections on GUIs, motor controls, USB-C Power Delivery, and more. There’s also a “Developer Resources” tab to guide newcomers and provide technical documentation. The website thus remains a jumping point to find the right development board and software tools. However, the new application-based sections and resources provide a quick-start guide to help engineers as they take their first steps.
Operating systems and an official Visual Studio Code extension
The STM32 Developer Zone will continue to receive frequent updates. For instance, we are working on releasing other solutions for the STM32U5 besides AzureRTOS in STM32CubeU5. Similarly, the STM32 Developer Zone will also promote an official Visual Studio Code extension. Developers will be able to flash their devices, track variables, and get error messages within their environment, thus vastly simplifying their workflow. Finally, the STM32 Developer Zone will also receive updates featuring software for the newly announced STM32H5 and for the new STLINK-V3PWR, which both launched at this year’s STM32 Innovation Live.
What is the STM32CubeEcosystem?
Launched in mid-2014, 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 development. 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 packages, and a list of compatible solutions is available. We will also continue to ensure that most upcoming STM32 expansion package 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 Partners 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 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.
For detailed information, kindly visit ST Blogs.