STM32CubeMX

Table Of Contents

- STM32CubeMX documentation
- CubeMX User Manual
  - 1 STM32Cube overview
  - 2 Getting started with STM32CubeMX
  - 3 Installing and running STM32CubeMX
  - 4 STM32CubeMX user interface
  - 5 STM32CubeMX tools
  - 6 STM32CubeMX C Code generation overview
  - 7 Code generation for dual-core MCUs (STM32H7 dual-core product lines only)
  - 8 Code generation with TrustZone enabled (STM32L5 series only)
  - 9 Device tree generation (STM32MPUs only)
  - 10 Support of additional software components using CMSIS-Pack standard
  - 11 Tutorial 1: From pinout to project C code generation using an MCU of the STM32F4 series
  - 12 Tutorial 2 - Example of FatFs on an SD card using STM32429I-EVAL evaluation board
  - 13 Tutorial 3 - Using the Power Consumption Calculator to optimize the embedded application consumption and more
  - 14 Tutorial 4 - Example of UART communications with an STM32L053xx Nucleo board
  - 15 Tutorial 5: Exporting current project configuration to a compatible MCU
  - 16 Tutorial 6 - Adding embedded software packs to user projects
  - 17 Tutorial 7 - Using the X-Cube-BLE1 software pack
  - 18 Creating LPBAM projects
  - Appendix A STM32CubeMX pin assignment rules
  - Appendix B STM32CubeMX C code generation design choices and limitations
  - Appendix C STM32 microcontrollers power consumption parameters
  - Appendix D STM32Cube embedded software packages
  - Revision history
- Release Notes
  - Release details
  - Release fixes
  - Known limitations
    - Miscellaneous
    - 2.1. When selecting microcontrollers in the STM32C0 series
    - 2.2. When selecting microcontrollers in the STM32G0 series
    - 2.3. When selecting microcontrollers in the STM32G4 series
    - 2.4. When selecting microcontrollers in the STM32H5 series
    - 2.5. When selecting microcontrollers in the STM32H7 series
    - 2.6. When selecting dual-core microcontrollers in the STM32H7 series
    - 2.7. When selecting microcontrollers in the STM32L5 series
    - 3.4. How to improve the wake-up from Stop sequences without relying on the global SystemClock_Config()
    - 3.3. List pinout-compatible microcontrollers
    - 3.2. DDR binaries for the STM32MP1 boards
    - 3.1. Command line authentication required
    - 2.21. Symbolic links on Ubuntu
    - 2.20. User manual
    - 2.19. DDR test suite
    - 2.18. STM32CubeIDE toolchain
    - 2.13. When selecting microcontrollers in the STM32WL series
    - 2.11. When selecting microcontrollers in the STM32WB series
    - 2.17. When using additional software packs
    - 2.16. When using the Example Selector
    - 2.15. When using the Memory Management Tool
    - 2.14. When selecting microprocessors in the STM32MP1 series
    - 2.11.1. When selecting microcontrollers in the STM32WB0 product lines
    - 2.12. When selecting microcontrollers in the STM32WBA series
    - 2.13.1. When selecting microcontrollers in the STM32WL33 product lines
    - 2.10. When selecting microcontrollers in the STM32U5 series
    - 2.9. When selecting microcontrollers in the STM32U3 series
    - 2.8. When selecting microcontrollers in the STM32N6 series
- Running STM32CubeMX in command-line mode
- FAQ
- Community

### On this page

- 3.1 System requirements
  - 3.1.1 Supported operating systems and architectures
  - 3.1.3 Software requirements
    - Java™ Runtime Environment
- 3.2 Installing/uninstalling STM32CubeMX standalone version
  - 3.2.1 Installing STM32CubeMX standalone version
    - On Windows
    - Figure 3. Select install mode
    - Figure 4. Welcome panel
    - Figure 6. Terms of use
    - Figure 8. Setup of shortcuts
    - Figure 10. Installation script
    - Figure 12. Current user shortcut creation
    - Figure 14. Installation completed
  - 3.2.2 Installing STM32CubeMX from command line
    - Interactive mode
    - Auto-install mode
  - 3.2.3 Uninstalling STM32CubeMX standalone version
    - Uninstalling STM32CubeMX on macOS®
    - Uninstalling STM32CubeMX on Linux
- 3.3 Launching STM32CubeMX
  - 3.3.1 Running STM32CubeMX as a standalone application
  - 3.3.2 Running STM32CubeMX in command-line mode
    - Table 1. Command line summary (continued)
- 3.4 Getting updates using STM32CubeMX
  - Figure 17. Displaying Windows default proxy settings
  - 3.4.1 Running STM32CubeMX behind a proxy server
  - 3.4.2 Updater configuration
  - 3.4.3 Installing STM32 MCU packages
    - Figure 21. Embedded Software Packages Manager window
  - 3.4.4 Installing STM32 MCU package patches
  - 3.4.5 Installing embedded software packs
    - Figure 23. Managing embedded software packages - Adding a new url
    - Figure 24. Checking the validity of vendor pack.pdsc file url
    - Figure 25. User-defined list of software packs
    - Figure 26. Selecting an embedded software pack release
    - Figure 27. License agreement acceptance
    - Figure 28. Embedded software pack release - Successful installation
  - 3.4.6 Removing already installed embedded software packages
  - 3.4.7 Checking for updates

# 3 Installing and running STM32CubeMX

## 3.1 System requirements

### 3.1.1 Supported operating systems and architectures

- Windows® 10 32 bits (x86) or 64 bits (x64), and Windows® 11 64 bits (x64)

- Linux®: Ubuntu® LTS 22.04 and LTS 24.04, and Fedora® 42

- macOS® 15 (Sequoia), macOS® 26 (Tahoe): x86_64 and ARM-aarch64 architectures

Note: Windows is a trademark of the Microsoft group of companies.

Linux® is a registered trademark of Linus Torvalds.

Ubuntu® is a registered trademark of Canonical Ltd.

Fedora® is a trademark of Red Hat, Inc.

macOS® is a trademark of Apple Inc., registered in the U.S. and other countries and regions.

> For macOS the full disk access is required to load project files or install other packages from the file system. To enable full disk access for STM32CubeMX:

1. Go to “System preferences” and click to open “Security & Privacy” window (Figure 2)

2. Select “Privacy” tab

3. Select “Full Disk Access” from the left panel

4. Click the checkbox to enable full disk access to STM32CubeMX

> Figure 2. Full disk access for macOS

- Recommended minimum RAM: 2 Gbytes

### 3.1.3 Software requirements

> If the initial installation was completed with administrator privileges, the user also needs these privileges to download and install the latest update package. Additionally, the user

> needs administrator rights to successfully apply the update at the next start of

> STM32CubeMX.

#### Java™ Runtime Environment

> For STM32CubeMX 6.13 the bundled JRE is openJDK Runtime Environment Temurin™ 21.0.3+9 (build 21.0.3+9-LTS) and JavaFX-21.0.3.

> Starting with version V6.2.0, STM32CubeMX embeds the Java Runtime Environment (JRE™ (a) ) required for its execution and no longer uses the one installed on the user machine.

- For STM32CubeMX 6.3 the bundled JRE is AdoptOpenJDK-11.0.10+9 and JavaFX-11.0.2

- For STM32CubeMX 6.2 the bundled JRE is Liberica 1.8.0_265 of BellSoft

> Versions earlier than STM32CubeMX V6.2.0 require to install a JRE, whose constraints are:

- 64-bit version mandatory, 32-bit version not supported

- the STM32PackCreator companion tool requires JRE supporting JavaFX

- minimum JRE version is 1.8_45 (known limitation with 1.8_251)

- version 11 is supported, versions 7, 9, 10, 12 and upper are not supported

> STMicroelectronics promotes the use of the following JREs:

- Oracle(a), subject to license fee

- Amazon Corretto™(a), no-cost solution based on OpenJDK, JDK installer recommended.

> STM32CubeMX operation is not guaranteed with other JREs.

macOS software requirements

- Xcode must be installed on macOS computers

## 3.2 Installing/uninstalling STM32CubeMX standalone version

### 3.2.1 Installing STM32CubeMX standalone version

> To install STM32CubeMX:

1. From an Internet browser, open the page www.st.com/stm32cubemx

2. Click “Get Software” to go to the software download section

#### On Windows

1. On STM32CubeMX-Win line, click “Get software” to download the package

2. Extract (unzip) the downloaded package

3. Double-click on SetupSTM32CubeMX-VERSION-Win.exe to launch the

> installation wizard

4. The installation wizard is displayed (see Figure 3), it gives the choice between two modes, namely “Install for all users”, and “Install for me only (recommended)”

1. Oracle and Java are registered trademarks of Oracle and/or its affiliates.

1. All other trademarks are the properties of their respective owners.

#### Figure 3. Select install mode

If you choose “Install for all users” mode:

- Enter administrator credentials

- Welcome panel (Figure 4)

- License agreement (Figure 5)

- Terms of use (Figure 6)

- The default installation path is set to C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX (Figure 7)

- The shortcuts for all users are created by default (Figure 8)

- Package installation (Figure 9)

- Installation script (Figure 10)

If you choose “Install for me only (recommended)” mode:

- Welcome panel (Figure 4)

- License agreement (Figure 5)

- Terms of use (Figure 6)

- The installation path is set on the home directory by default (Figure 11); the default installation folder is a system hidden folder.

- The shortcut can be created only for the current user (Figure 12)

- Package installation (Figure 13)

- Installation script (Figure 14)

#### Figure 4. Welcome panel

#### Figure 6. Terms of use

#### Figure 8. Setup of shortcuts

#### Figure 10. Installation script

#### Figure 12. Current user shortcut creation

#### Figure 14. Installation completed

Note: Upon successful installation, the STM32CubeMX icon is displayed on the desktop and the application is available from the Program menu. STM32CubeMX .ioc files are displayed with a cube icon, double-clicking on it opens the project in STM32CubeMX. Only the latest installation of STM32CubeMX is enabled in the Program menu. Previous versions can be kept on your PC (not recommended) when different installation folders have been specified.

Otherwise, the new installation overwrites the previous one(s).

On Linux:

1. On STM32CubeMX-Lin line, Click “Get software” to download the package

2. Extract (unzip) the downloaded package

3. Make sure you have administrator rights to access the target installation directory. You can run the installation as root (or sudo) to install STM32CubeMX in shared directories.

4. Do chmod 777 SetupSTM32CubeMX-VERSION to change the properties, so

> that the file is executable

5. Double-click on the SetupSTM32CubeMX-VERSION file, or launch it from the console window

On macOS:

1. On STM32CubeMX-Mac line, Click “Get software” to download the package

2. Extract (unzip) the downloaded package

3. Make sure you have administrator rights

4. Double-click SetupSTM32CubeMX-VERSION.app application file to launch the installation wizard

> In case of error, try to fix it: - $sudo xattr -cr <Folder where the zip was extracted>

> To ensure the best performance, choose the appropriate STM32CubeMX installer for your Mac. Currently two installers are available, one for Arm64 architecture, one for Intel-based Macs.

### 3.2.2 Installing STM32CubeMX from command line

> There are two ways to launch an installation from a console window: either in console interactive mode or via a script.

#### Interactive mode

> To perform interactive installation, proceed as follows:

1. Extract (unzip) to folder the auto-extract installation file (SetupSTM32CubeMXVERSION-Win.exe)

2. Open a standard console window to install for the current user, or the console window with administrator rights to install for all users

3. Go to the extracted folder (cd <folder path>)

4. Run the command jre\bin\java -jar SetupSTM32CubeMX-<VERSION>.exe console

> At each installation step, an answer is requested (see Figure 15).

Figure 15. Example of installation in interactive mode

Note: During the installation, ignore the warnings.

#### Auto-install mode

At end of an installation, performed either using STM32CubeMX graphical wizard or console mode, it is possible to generate an auto-installation script containing user preferences (see Figure 16).

You can then launch the installation by typing, from a console window (with or without administrator rights, according to your needs), the command:

SetupSTM32CubeMX-VERSION-Win.exe ABSOLUTE_PATH_TO_AUTO_INSTALL.xml

### 3.2.3 Uninstalling STM32CubeMX standalone version

#### Uninstalling STM32CubeMX on macOS ®

- Move STM32CubeMX.VERSION.app to the trash

- Use the following command line:

  - For STM32CubeMX 6.2.x and later versions:

> cd SetupSTM32CubeMX-VERSION.app/Contents/Resources/Uninstaller

> ./uninstall.sh

- For STM32CubeMX 6.1.x and older versions:

> java -jar SetupSTM32CubeMX-

> VERSION.app/Contents/Resources/Uninstaller/uninstaller.jar.

#### Uninstalling STM32CubeMX on Linux

- From a shell prompt by launching the uninstall script – For STM32CubeMX 6.2.x and later versions:

> cd <STM32CubeMX installation path>/Uninstaller uninstall.sh

- For STM32CubeMX 6.1.x and older versions:

> java -jar <STM32CubeMX installation path>/Uninstaller/uninstaller.jar.

- From a file explorer

  - Go to <STM32CubeMX installation path>/Uninstaller

  - For STM32CubeMX 6.2.x and later versions: double-click the uninstall.sh script

  - For STM32CubeMX 6.1.x and older versions: double-click the start uninstall desktop shortcut

Uninstalling STM32CubeMX on Windows - Through the Windows Control Panel:

1. Select Programs and Features from the Windows Control Panel to display the list of programs installed on your computer.

2. Right-click STM32CubeMX and select uninstall.

- From a shell prompt, by using the following commands:

  - For STM32CubeMX 6.10.x and later versions: with administrator rights:

    400. <STM32CubeMX installation path>/Uninstalleradmin_uninstall.bat without administrator rights:

> cd <STM32CubeMX installation path>/Uninstaller uninstall.batcd <STM32CubeMX installation path>/Uninstaller uninstall.bat

- From STM32CubeMX 6.2.x to STM32CubeMX 6.9.x versions:

  400. <STM32CubeMX installation path>/Uninstalleradmin_uninstall.bat

- For STM32CubeMX 6.1.x and older versions: java -jar <STM32CubeMX installation path>/Uninstaller/uninstaller.jar

- Through a Windows File Explorer window:

  1. For STM32CubeMX 6.2.x and later versions:

> Go to the Uninstaller folder in STM32CubeMX installation directory, then:

> > with administrator rights, right-click on admin_uninstall.bat and “run as administrator”

> without administrator rights, click on uninstall.bat

2. For STM32CubeMX 6.1.x and older versions:

> Go to the Uninstaller folder in STM32CubeMX installation directory

> Double-click startuninstall.exe, or double-click the uninstall shortcut on the desktop

## 3.3 Launching STM32CubeMX

> When running STM32CubeMX behind a proxy, see Section 3.4.1.

### 3.3.1 Running STM32CubeMX as a standalone application

> To run STM32CubeMX as a standalone application on Windows, select STM32CubeMX

> from Program Files > ST Microelectronics > STM32CubeMX,or double-click STM32CubeMX icon on your desktop.

> To run STM32CubeMX as a standalone application on Linux, launch the STM32CubeMX executable from STM32CubeMX installation directory.

> To run STM32CubeMX as a standalone application on macOS, launch the STM32CubeMX application from the launchpad.

Note: There is no STM32CubeMX desktop icon on macOS.

### 3.3.2 Running STM32CubeMX in command-line mode

> To facilitate its integration with other tools, STM32CubeMX provides command-line modes. Thanks to the commands listed in Table 1 it is possible to:

- load an MCU

- load an existing configuration

- save a current configuration

- set project parameters and generate corresponding code

- generate user code from templates

- load a board identified through its part number

- refresh the list of embedded software packages (packs and STM32Cube MCU packages) and install/remove a package

- select additional software (packs) components to add to the project.

> Three command-line modes are available:

- To run STM32CubeMX in interactive command-line mode, use the following command lines:

  - On Windows:

> cd <STM32CubeMX installation path>x jre\bin\java -jar –add-opens java.desktop/java.awt=ALL-UNNAMED -add-exports java.desktop/sun.awt=ALL-UNNAMED -

> Djavax.net.ssl.trustStoreType=WINDOWS-ROOT STM32CubeMX.exe -i – On Linux:

> cd <STM32CubeMX installation path>

> ./STM32CubeMX –i

- On macOS:

> cd <STM32CubeMX installation path> cd Contents/MacOs

> ./STM32CubeMX –i

> The “MX>” prompt is displayed, indicating that the application is ready to accept commands.

- To run STM32CubeMX in command-line mode, getting commands from a script, use the following command lines:

- On Windows:

  > cd <STM32CubeMX installation path> jre\bin\java -jar STM32CubeMX.exe –s <script filename> – On Linux and macOS:

  > ./STM32CubeMX –s <script filename>

  > All the commands to be executed must be listed in the script file. An example of script file content is shown below:

  > load STM32F417VETx project name MyFirstMXGeneratedProject project toolchain “MDK-ARM v4” project path C:\STM32CubeProjects\STM32F417VETx project generate exit

- To run STM32CubeMX in command-line mode getting commands from a script and without UI, use the following command lines:

- On Windows:

  > cd <STM32CubeMX installation path> jre\bin\java -jar STM32CubeMX.exe –q <script filename> – On Linux and macOS:

  > ./STM32CubeMX –q <script filename>

  > Here again, the user can enter commands when the MX prompt is displayed.

> Table 1. Command line summary

Command line | Purpose | Example
--- | --- | ---
help | Displays the list of available commands. | help
swmgr refresh | Refreshes the list of embedded software package versions available for download. | swmgr refresh
swmgr install stm32cube_<series> _<version> ask | Installs the specified STM32Cube MCU package version. (1) | swmgr install stm32cube_f1_1.8.0 ask
swmgr remove stm32cube_<series> _<version> | Removes the specified STM32Cube MCU package version. | swmgr remove stm32cube_f1_1.8.0
swmgr install <packVendor>.<packName>. <packVersion> ask | Installs the specified pack version. | swmgr install STMicroelectronics. X-CUBE-NFC4.1.4.1 ask
swmgr remove <packVendor>.<packName>. <packVersion> | Removes the specified pack version. | swmgr remove STMicroelectronics. X-CUBE-BLE1.4.2.0

#### Table 1. Command line summary (continued)

Command line | Purpose | Example
--- | --- | ---
pack enable <vendor> <pack>[/bundle] <version> <class> <group>[/subgroup] [variant] | Selects a software pack component to add in the project. The presence of “/” in the second and/or the fifth parameter(s) indicates, respectively, the explicit mention of a bundle and/or a subgroup (reference: Arm CMSIS pack pdsc format). To find out the pack / bundle / class / group / subgroup names of the component to enable, select the component and click “Hide/Show details” from the Additional Software window. | pack enable STMicroelectronics “X-CUBE-BLE1/BlueNRG-MS” 1.0.0 “Wireless” “Controller”
pack validate | Applies in the project all pack components enabled since the “pack validate” command was last called. | pack validate
load <mcu> | Loads the selected MCU. | load STM32F101RCTx load STM32F101Z(F-G)Tx
load <board part number> <allmodes|nomode> | Loads the selected board with all peripherals configured in their default mode (allmodes) or without any configuration (nomode). | loadboard NUCLEO-F030R8 allmodes loadboard NUCLEO-F030R8 nomode
config load <filename> | Loads a previously saved configuration. | config load “C:\Cube\ccmram\ccmram.ioc”
config save <filename> | Saves the current configuration. | config save “C:\Cube\ccmram\ccmram.ioc”
config saveext <filename> | Saves the current configuration with all parameters, including those for which values have been kept to default. | config saveext “C:\Cube\ccmram\ccmram.ioc”
config saveas <filename> | Saves the current project under a new name. | config saveas “C:\Cube\ccmram2\ccmram2.ioc”
csv pinout <filename> | Exports the current pin configuration as a csv file. This file can be (later) imported into a board layout tool. | Csv pinout mypinout.csv
script <filename> | Runs all commands in the script file. There must be one command per line. | script myscript.txt
project couplefilesbyip <0|1> | This option allows the user to choose between 0 (to generate the peripheral initializations in the main) and 1 (to generate each peripheral initialization in dedicated .c/.h files). | project couplefilesbyip 1
setDriver <Peripheral Name> <HAL | LL> | For the supported series, STM32CubeMX can generate peripheral initialization code based on LL or on HAL drivers. This command line allows the user to choose, for each peripheral, between HAL- and LL-based code generation. By default code generation is based on HAL drivers. | setDriver ADC LL setDriver I2C HAL

> Table 1. Command line summary (continued)

Command line | Purpose | Example
--- | --- | ---
generate code <path> | Generates only “STM32CubeMX generated” code and not a complete project (including STM32Cube firmware libraries and toolchains project files). To generate a project, use “project generate”. | generate code C:\mypath
set tpl_path <path> | Sets the path to the source folder containing the .ftl user template files. All the template files stored in this folder are used for code generation. | set tpl_path C:\myTemplates\
set dest_path <path> | Sets the path to the destination folder that will hold the code generated according to user templates. | set dest_path C:\myMXProject\inc\
get tpl_path | Retrieves the path name of the user template source folder. | get tpl_path
get dest_path | Retrieves the path name of the user template destination folder. | get dest_path
SetStructure <Advanced/Basic> | Selects the project structure to generate. | SetStructure Basic
SetCopyLibrary <copy all / copy only / copy as reference> | Selects how the reference libraries are copied to the projects. | SetCopyLibrary “copy all”
project setCustomFWPath <CustomFwLocation> | Specifies a path to STM32Cube MCU software libraries different from STM32Cube repository path (specified under Help > Updater settings). | project SetCustomFwPath “F:/SharedRepository/STM32Cube_F W_F0_V1.11.0”
project toolchain <toolchain> | Specifies the toolchain to be used for the project. Use the “project generate” command to generate the project for that toolchain. | EWARM MDK-Arm STM32CubeIDE Makefile CMake
project name <name> | Specifies the project name. | project name ccmram
project path <path> | Specifies the path where to generate the project. | project path C:\Cube\ccmram
project compiler <compiler/linker> | Set Compiler/Linker. Possible values: GCC Starm-Clang | project compiler “GCC” project compiler “Starm-Clang”
project generate | Generates the full project. (1) | project generate
login < email_adress> <password> <remember_me> | Allows you to login to download software packages. | login john.smith@st.com mypassword y
exit | Ends STM32CubeMX process. | exit

1. Use the login command before using this command.

## 3.4 Getting updates using STM32CubeMX

> STM32CubeMX implements a mechanism to access the Internet and to:

- download embedded software packages: STM32Cube MCU packages (full releases and patches) and third-party packages (.pack) based on the Arm® CMIS pack format

- manage a user-defined list of third-party packs

- check for STM32CubeMX and embedded software packages updates

- perform self-updates of STM32CubeMX

- refresh STM32 MCUs descriptions and documentation offer.

> Installation and update related submenus are available under the Help menu and from the home page as well.

Off-line updates can also be performed on computers without Internet access (see Section 3.4.3). This is done by browsing the filesystem and selecting available STM32Cube MCU packages.

> If the PC on which STM32CubeMX runs is connected to a computer network using a proxy server, STM32CubeMX needs to connect to that server to access the Internet, get self-updates and download firmware packages. Refer to Section 3.4.2 for a description of this connection configuration.

> To view Windows default proxy settings, select Internet options from the Control panel and select LAN settings from the Connections tab (see Figure 17).

### Figure 17. Displaying Windows default proxy settings

Several proxy types exist, and different network configurations are possible:

- Proxy without login/password

- Proxy with login/password: when using an Internet browser, a dialog box opens and prompts the user to enter its login/password.

- Web proxies with login/password: when using an Internet browser, a web page opens and prompts the user to enter its login/password.

- Without proxy: the application directly accesses the web (Windows default configuration).

> If needed, contact your IT administrator for proxy information (proxy type, http address, port).

STM32CubeMX does not support web proxies. In this case, the user cannot benefit from the update mechanism and must manually copy the STM32Cube MCU packages from http://www.st.com/stm32cube to the repository. To do it, follow the sequence below:

1. Go to http://www.st.com/stm32cube and download the relevant STM32Cube MCU package from the Associated Software section.

2. Unzip the zip package to your STM32Cube repository. Find out the default repository folder location in the Updater Settings tab as shown in Figure 18 (you might need to update it to use a different location or name).

### 3.4.1 Running STM32CubeMX behind a proxy server

> When proxies are implementing full SSL inspection, STM32CubeMX must be configured to use the proxy certificate.

- On Windows:

> Typically, it comes down to using Windows certificate list.

1. there is no additional configuration necessary to run STM32CubeMX executable

> (it is already configured to use Windows certificate list)

2. the command line must be adjusted to run STM32CubeMX from the command line:

> cd <STM32CubeMX install path>

> jre\bin\java -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT -jar STM32CubeMX.exe

- On Mac/Linux and on Windows systems when the proxy certificate is not in Windows certificate store, the certificate must be manually imported. This is done using keytool from a command prompt, as follows:

> $ cd <CUBEMX_INSTALL_DIR>/jre

> $ bin/keytool -importcert -alias <your certificate alias name> keystore lib/security/cacerts -file <path to you proxy certificate file>.crt

> When prompted, enter the password: changeit

> When prompted, accept to trust the certificate: yes

> Then (Windows only) edit file <CUBEMX_INSTALL_DIR>/STM32CubeMX.l4j.ini and remove the line: -Djavax.net.ssl.trustStoreType=WINDOWS-ROOT

### 3.4.2 Updater configuration

> To perform STM32Cube new library package installation or updates, the tool must be configured as follows:

1. Select Help > Updater Settings to open the Updater Settings window.

2. From the Updater Settings tab (see Figure 18)

   1. Specify the repository destination folder where the downloaded packages will be stored.

   2. Enable/Disable the automatic check for updates.

> Figure 18. Updater Settings window

3. In the Connection Parameters tab, specify the proxy server settings appropriate for your network configuration by selecting a proxy type among the following possibilities (see Figure 19):

   - No Proxy

   - Use System Proxy Parameters

> On Windows, proxy parameters are retrieved from the PC system settings. Uncheck “Require Authentication” if a proxy server without login/password configuration is used.

- Manual Configuration of Proxy Server

> Enter the Proxy server http address and port number. Enter login/password information or uncheck “Require Authentication” if a proxy server without login/password configuration is used.

4. Optionally uncheck Remember my credentials to prevent STM32CubeMX to save encrypted login/password information in a file. This implies reentering login/password information each time STM32CubeMX is launched.

5. Click the Check Connection button to verify if the connection works. A green check mark appears to confirm that the connection operates correctly .. image:: ../../../assets/media/image29.webp

6. Select Help > Install New Libraries submenu to select among a list of possible packages to install.

7. If the tool is configured for manual checks, select Help > Check for Updates to find out about new tool versions or firmware library patches available to install.

Note: If STM32Cube MX is not connected to the network, or if it detects a connection failure, an icon is displayed close to the myST menu item showing that there is no network connection. When the user clicks on that icon, “Configure network” menu is displayed, and by clicking on it, the “Updater Settings/Connection parameters” dialog pops up. Once the STM32CubeMX is connected to the network, the network icon disappears.

> Figure 20. Connection failure

### 3.4.3 Installing STM32 MCU packages

> To download new STM32 MCU packages, follow the steps below:

> 1. Select Help > Manage embedded software packages to open the Embedded Software Packages Manager (see Figure 21), or use Install/Remove button from the Home page.

> Expand/collapse buttons expands/collapses the list of packages, respectively.

If the installation was performed using STM32CubeMX, all the packages available for download are displayed along with their version including the version currently installed on the user PC (if any), and the latest version available from www.st.com.

If no Internet access is available at that time, choose “From Local …”, then browse to select the zip file of the desired STM32Cube MCU package that has been previously downloaded. An integrity check is performed on the file to ensure that it is fully supported by STM32CubeMX.

The package is marked in green when the version installed matches the latest version available from www.st.com.

2. Click the checkbox to select a package then “Install Now” to start the download.

   See Figure 21 for an example.

#### Figure 21. Embedded Software Packages Manager window

### 3.4.4 Installing STM32 MCU package patches

> Use the procedure described in Section 3.4.3 to download STM32 MCU package patches.

> A library patch, such as STM32Cube_FW_F7_1.4.1, can be easily identified by the version number, whose third digit is non-null (e.g. ‘1’ for the 1.4.1 version).

> The patch is not a complete library package but only the set of library files that need to be updated. The patched files go on top of the original package (e.g.

> STM32Cube_FW_F7_1.4.1 complements STM32Cube_FW_F7_1.4.0 package).

> Prior to 4.17 version, STM32CubeMX copies the patches within the original baseline directory (e.g. STM32Cube_FW_F7_V1.4.1 patched files are copied within the directory called STM32Cube_FW_F7_V1.4.0).

> Starting with STM32CubeMX 4.17, downloading a patch leads to the creation of a dedicated directory. As an example, downloading STM32Cube_FW_F7_V1.4.1 patch creates the

> STM32Cube_FW_F7_V1.4.1 directory that contains the original STM32Cube_FW_F7_V1.4.0 baseline plus the patched files contained in STM32Cube_FW_F7_V1.4.1 package.

> Users can then choose to go on using the original package (without patches) for some projects and upgrade to a patched version for others projects.

### 3.4.5 Installing embedded software packs

> Starting from the release 4.24, STM32CubeMX offers the possibility to select third-party embedded software packages coming in the Arm ® Keil ™ CMSIS-Pack format (.pack), whose contents are described thanks to the pack description (.pdsc) file. Reference documentation is available from http://www.keil.com.

1. Select Help > Manage embedded software packages to open the New Libraries Manager window (see Figure 22), or use Install/Remove button from the Home page, or from the project Pinout & Configuration view (select Software Packs > Manage Software Packs).

> Use Expand/collapse buttons to expand/collapse the list of packages, respectively.

Figure 22. Managing embedded software packages - Help menu

2. Click From Local … button to browse the computer filesystem and select an embedded software package. STM32Cube MCU packages come as .zip archives and embedded software packs come as .pack archives.

> This action is required in the following cases:

- No Internet access is possible but the embedded software package is available locally on the computer.

- The embedded software package is not public and hence not available on Internet. For such packages, STM32CubeMX cannot detect and propose updates.

> 3. Click From URL… button to specify the download location from Internet for one of the pack .pdsc file or from the vendor pack index (.pidx).

> Proceed as follow:

1. Choose From URL … and click New (see Figure 23).

2. Specify the .pdsc file url. As an example, the url of Oryx-Embedded middleware pack is https://www.oryx-embedded.com/download/pack/OryxEmbedded.Middleware.pdsc (see Figure 24).

#### Figure 23. Managing embedded software packages - Adding a new url

3. Click the Check button to verify that the provided url is valid (see Figure 24).

#### Figure 24. Checking the validity of vendor pack.pdsc file url

4. Click OK. The pack pdsc information is now available in the user defined pack list (see Figure 25).

To delete a url from the list, select the url checkbox and click Remove.

#### Figure 25. User-defined list of software packs

5. Click OK to close the window and start retrieving psdc information. Upon successful completion, the available pack versions are shown in the list of libraries that can be installed. Use the corresponding checkbox to select a given release.

#### Figure 26. Selecting an embedded software pack release

6. Click Install Now to start downloading the software pack. A progress bar opens to indicate the installation progress. If the pack comes with a license agreement, a window pops up to ask for user’s acceptance (see Figure 27). When the installation is successful, the check box turns green (see Figure 28). The user can then add software components from this pack to its projects.

#### Figure 27. License agreement acceptance

#### Figure 28. Embedded software pack release - Successful installation

### 3.4.6 Removing already installed embedded software packages

> To clean up the repository from old library versions, thus saving disk space, proceed as follows (see figures 29 and 30)

1. Select Help > Manage embedded software packages to open the Embedded Software Packages Manager, or use Install/Remove button from the Home page.

2. Click a green checkbox to select a package available in stm32cube repository.

3. Click the Remove Now button and confirm. A progress window opens to show the deletion status.

### 3.4.7 Checking for updates

Starting with version V6.12.0, if there is a new CubeFW, X-Cube, or I-Cube available for update, an icon is displayed close to the myST menu. The same dedicated icon is displayed left to the “CHECK FOR UPDATES” button. When the user clicks on that icon, the Update Manager window opens.

> Figure 31. Checking for available updates

When the updater is configured for automatic checks, it regularly verifies if updates are available.

When automatic checks have been disabled in the updater settings window, the user can manually check if updates are available:

1. Click the icon to open the Update Manager window or Select Help > Check for Updates. All the updates available for the user current installation are listed.

2. Click the check box to select a package, and then Install Now to download the update.