STM32CubeProgrammer Download, Installation & Usage Guide (2025)

2025-09-17 09:19:56

Overview

STM32CubeProgrammer is the official programming software developed by STMicroelectronics for STM32 microcontrollers. It supports programming, flashing, and debugging via multiple interfaces including STLink, UART, JTAG, and USB DFU modes. The tool supports Windows, Linux, and MacOS platforms, making it versatile for development and production use.

STM32CubeProgrammer Interface Screenshot

Download STM32CubeProgrammer

The latest official version of STM32CubeProgrammer can be downloaded from STMicroelectronics' website:

STM32CubeProgrammer Official Download Page

  • Supports Windows 7, 10, 11
  • Supports Linux distributions (Ubuntu, Debian, etc.)
  • Supports MacOS

Get Software

Part Number General Description Latest Version Download All Versions
STM32CubePrg-Lin STM32CubeProgrammer software for Linux 2.19.0 Get latest 📥
📥
STM32CubePrg-Mac STM32CubeProgrammer software for Mac 2.19.0 Get latest 📥
📥
STM32CubePrg-W32 STM32CubeProgrammer software for Win32 2.19.0 Get latest 📥
📥
STM32CubePrg-W64 STM32CubeProgrammer software for Win64 2.19.0 Get latest 📥
📥

STMicroelectronics recommends always keeping your software up to date.

Installation Guide

  1. Download the installer package from the official ST page.
  2. Run the installer and follow on-screen instructions.
  3. Install required drivers for STLink or USB interfaces.
  4. Restart your computer if prompted.
  5. Launch STM32CubeProgrammer and verify the connection to your STM32 device.

Usage Scenarios

1. Using STLink Interface

Connect your STM32 device via STLink debugger/programmer. STM32CubeProgrammer will auto-detect the device and allow flash programming, memory viewing, and erasing.

2. USB DFU Mode

Put your STM32 device into DFU mode to update firmware via USB without an external debugger.

3. UART Programming

Use UART bootloader interface for programming when other interfaces are unavailable.

4. JTAG and SWD Interfaces

Advanced debug and programming using JTAG/SWD connectors.

Watch this tutorial video:

STM32CubeProgrammer vs STLink Utility

Feature STM32CubeProgrammer STLink Utility
Supported Devices All STM32 families Older STM32 devices only
Interface STLink, UART, JTAG, DFU STLink only
OS Support Windows, Linux, MacOS Windows only
Command Line Support Yes No
Flash Programming Yes, with extended features Basic

Command Line Usage

STM32CubeProgrammer supports command line operations, useful for automation and batch programming. Example usage:

STM32_Programmer_CLI -c port=SWD -w firmware.bin 0x08000000

Where -c port=SWD specifies the connection type, and -w writes the firmware binary to the target flash starting at the specified address.

Error Codes & Troubleshooting

  • Device not detected: Check USB or STLink connection, update drivers.
  • Programming failed: Verify firmware integrity, device boot mode.
  • Unknown errors: Restart the software, try different USB ports.

Frequently Asked Questions

Q1: What platforms does STM32CubeProgrammer support?
A: STM32CubeProgrammer supports Windows 7/10/11, Linux distributions (such as Ubuntu, Debian), and MacOS.
Q2: Can I use STM32CubeProgrammer without STLink hardware?
A: Yes, STM32CubeProgrammer supports USB DFU (Device Firmware Upgrade) mode and UART bootloader mode, allowing programming without STLink hardware.
Q3: Is there a command line interface (CLI) for STM32CubeProgrammer?
A: Yes, STM32CubeProgrammer provides a CLI (Command Line Interface) called STM32_Programmer_CLI. It allows you to program STM32 devices via command line, useful for automation or production line programming.
Example to view help options:
STM32_Programmer_CLI.exe --help
Q4: Where can I download the latest STM32CubeProgrammer?
A: You can download the latest version directly from the official STMicroelectronics website:
STM32CubeProgrammer Official Download Page
Q5: Does STM32CubeProgrammer support automated programming in mass production?
A: Yes, using the CLI interface, STM32CubeProgrammer can be integrated into scripts for automated mass production programming and testing environments.
Raj Bhatt
Raj Bhatt
Raj Bhatt launched Eletronic Lab in 1999 as a passion project to share his journey in electronics and to contribute to the DIY and maker communities. Over the years, his work has evolved into a valuable resource for hobbyists and enthusiasts, offering detailed tutorials and practical projects that inspire creativity and learning. Raj's expertise and enthusiasm for electronics shine through in every project he shares. His mission is to make electronics accessible and engaging for everyone, especially newcomers to the field. He welcomes feedback, suggestions, and error reports from readers, believing that collaboration and shared knowledge drive continuous improvement. Raj hopes you enjoy exploring his work as much as he enjoys creating it.