To improve the accessibility of our content, please find the audio version of this blog post.
We recently updated our STM32Cube ecosystem to offer STM32Cube expansion packages within STM32CubeMX. Among other things, we are also offering new tutorial videos from inside the configuration tool. The goal is to make the entire ecosystem more practical. Developers can start to work with expansion packages earlier, and the system scales more easily. Developers can apply the expansion package of their choice to jumpstart their projects. We are also launching STM32PackCreator to help teams bundle their custom STM32Cube packages. Hence, they can more easily share their solution with the rest of their company or even the STM32 community.
On-Demand Webinar: Watch our latest webinar on the new STM32Cube Ecosystem
STM32Cube Ecosystem: Growing Without Bloating
The STM32Cube ecosystem currently includes a variety of solutions. STM32CubeMX 6.0 is an MCU configuration tool. STM32CubeIDE is the first IDE to integrate STM32CubeMX to hasten developments. STM32CubeProgrammer assists developers flashing their MCU, debugs their code, or takes advantage of cryptographic features, among other things. Finally, STM32CubeMonitor enables developers to watch their MCU perform in real-time. Each microcontroller series has its STM32Cube MCU package that contains drivers, middleware, application examples, and source code. Additionally, STM32Cube expansion packages from ST (X-CUBE) bundle significant features like sensor management, or a Bluetooth layer, to facilitate their integration. Our partners can also offer their packages, which we denote by the prefix I-CUBE.
The challenge for a developer is to juggle all these tools at once. Some of them, like STM32CubeProgrammer or STM32CubeMonitor, have specific purposes. Engineers thus use them often independently from the rest of the ecosystem when they need to perform particular tasks. However, others depend on one another. A project usually starts in STM32CubeMX, which generates initialization source code and header files. Until now, these files had to go to an IDE before programmers selected relevant STM32Cube expansion packages. They would then find the relevant X-CUBE or I-CUBE, download it and unzip it. They would then add it to their project, write their app, then compile, and debug. Moreover, as projects change, teams may also decide to go back to STM32CubeMX to change settings.
Engineers may thus experience two points of friction. They may have a hard time finding and integrating the expansion packages they need. They may then have problems creating what they want. The latest updates to the ecosystem are answers that address these two issues.
STM32CUBE Ecosystem: More Intuitive Thanks to New Integrations
Integration of X-CUBE Packages Within STM32CubeMX
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, if an application uses specific pins or IPs, porting it from one MCU to the next isn’t always straightforward. 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 now 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 work to ensure that most of the upcoming STM32 expansion packages from ST will support this feature. By integrating these software packs within STM32CubeMX, users just 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.
Integration of Videos Within STM32CubeMX
Finding documentation can also be a source of friction. Developers know that scanning websites for literature is par for the course. ST is famous for its extensive documentation, and partners tell us that it’s one of the reasons they select our devices. Yet, we updated the STM32Cube ecosystem to transform the users’ first interactions. By integrating tutorial videos within STM32CubeMX, developers get a more intuitive first look into our tools and products. We will offer videos on how to configure the clock tree, the pins, or different software features, for instance. The list of videos is growing. Hence, programmers who are new to our tools can start their application quicker. It is, therefore, another solution to lower the barrier to entry and reduce friction.
STM32CUBE Ecosystem: More Openness Thanks to a New Package Creation Workflow
A Better Exposure
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, and 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. Partners that have I-CUBE packages on our website benefit a lot from this exposure. Nevertheless, we wanted to help other users more easily create highly sharable packages.
STM32CubePackCreator to More Easily Create Expansion 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 that they can add to STM32CubeMX. However, we will continue to 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 pack 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 has 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.