STM32CubeIDE 2.0.0 Tutorial
On Nov. 18, 2025, ST released a major upgrade to STM32CubeIDE. Unfortunately, the announcement began like this:
Now, this would appear to be a massive step backwards, destroying the one thing STM32CubeIDE had going for it - the single download with everything you need to get started. Unfortunately, and possibly even worse, it rendered 99 % of existing STM32CubeIDE tutorials on the Internet completely obsolete and more confusing than helpful for beginners.
We, here at STM32World, are not great fans of Arduino, but the one thing they got going for them is the ease of getting started. Unfortunately, in Arduino's case that is mostly due to it being extremely simple and lacking features. The complete STM32CubeIDE had that same quality and was probably originally inspired by Arduino. Now, ST have decided to ditch that ease of getting started, which is quite an unfortunate move.
At the point of writing this page, we have just finalized a Tutorial video, which will be published soon.
Videos
The first video was (and is) a bit of a rant because of what appeared to be a monumentally stupid decision:
ST later elaborated on the decision and well, they provided better reasoning, so here is a more positive tutorial video:
Tutorial steps
Prerequisites
STM32CubeIDE
Download STM32CubeIDE from https://www.st.com/en/development-tools/stm32cubeide.html.
The installation depends on your OS.
STM32CubeMX
Download STM32CubeMX from https://www.st.com/en/development-tools/stm32cubemx.html.
Contrary to STM32CubeIDE this one is using a graphical installer (at least on Linux).
Creating a workspace
First step would be to create an empty folder to be used as a Eclipse workspace:
lth@nb7:~$ cd tmp lth@nb7:~/tmp$ mkdir cube
The workspace will now be in ~/tmp/cube
Starting STM32CubeIDE
Start up STM32CubeIDE. It will ask for a workspace. Based on the workspace created in the previous section it should be filled in like this:
After a while:
Close the "Information center" tab.
With the old version of STM32CubeIDE one could now have created a new project inside the IDE. Now that is no longer as integrated (I guess it is now a Disintegrated Development Environment - DDE). So, leave STM32CubeIDE running while firing up the external STM32CubeMX.
Staring STM32CubeMX
For some reason, on Linux, the STM32CubeMX installer does not create a graphical way of starting it up.
lth@nb7:~$ ~/st/STM32CubeMX/STM32CubeMX
After a while:
At this point, start a new project, either through the MCU Selector or the Board Selector. In this case we'll use the MCU Selector:
Once the right MCU (or Board) is selected, click the "Start Project" button.
At this point it is good to switch to the Project Manager tab and save the configuration.
At this point click "Generate Code".
Once code has been generated you can switch back to the Pinout & Configuration and the Clock configuration and setup the MCU as required.
Now, the code has been generated, we can switch back to STM32CubeIDE and import the project.
Import Project in STM32CubeIDE
Back in STM32CubeIDE, select "File/Open Projects from filesystem":
You can now edit the project as normal, build, debug and flash:
Final thoughts
All the steps in this document was handled internally in STM32CubeIDE in the previous versions. After removing STM32CubeMX everything have just become more complicated.