ST STM32

Configuration:platform = ststm32

The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.

For more detailed information please visit vendor site.

Debugging

PIO Unified Debugger - “1-click” solution for debugging with a zero configuration.

Tools & Debug Probes

Supported debugging tools are listed in “Debug” column. For more detailed information, please scroll table by horizontal. You can switch between debugging Tools & Debug Probes using debug_tool option in “platformio.ini” (Project Configuration File).

Warning

You will need to install debug tool drivers depending on your system. Please click on compatible debug tool below for the further instructions.

On-Board Debug Tools

Boards listed below have on-board debug probe and ARE READY for debugging! You do not need to use/buy external debug probe.

Name MCU Frequency Flash RAM
96Boards B96B-F446VE STM32F446VET6 168MHz 512KB 128KB
Mbed Connect Cloud STM32F439ZIY6 168MHz 2MB 256KB
Microsoft Azure IoT Development Kit (MXChip AZ3166) STM32F412ZGT6 100MHz 1MB 256KB
RushUp Cloud-JAM STM32F401RET6 84MHz 512KB 96KB
RushUp Cloud-JAM L4 STM32L476RGT6 80MHz 1MB 128KB
ST 32F3348DISCOVERY STM32F334C8T6 72MHz 64KB 12KB
ST 32F401CDISCOVERY STM32F401VCT6 84MHz 256KB 64KB
ST 32F411EDISCOVERY STM32F411VET6 100MHz 512KB 128KB
ST 32F413HDISCOVERY STM32F413ZHT6 100MHz 512KB 128KB
ST 32F429IDISCOVERY STM32F429ZIT6 180MHz 2MB 256KB
ST 32F469IDISCOVERY STM32F469NIH6 180MHz 1MB 384KB
ST 32F746GDISCOVERY STM32F746NGH6 216MHz 1MB 320KB
ST 32F769IDISCOVERY STM32F769NIH6 80MHz 1MB 512KB
ST 32L0538DISCOVERY STM32L053C8T6 32MHz 64KB 8KB
ST 32L100DISCOVERY STM32L100RCT6 32MHz 256KB 16KB
ST 32L476GDISCOVERY STM32L476VGT6 80MHz 1MB 128KB
ST 32L496GDISCOVERY STM32L496AGI6 80MHz 1MB 320KB
ST DISCO-L072CZ-LRWAN1 STM32L072CZ 32MHz 192KB 20KB
ST DISCO-L475VG-IOT01A STM32L475VGT6 80MHz 1MB 128KB
ST Nucleo F030R8 STM32F030R8T6 48MHz 64KB 8KB
ST Nucleo F031K6 STM32F031K6T6 48MHz 32KB 4KB
ST Nucleo F042K6 STM32F042K6T6 48MHz 32KB 6KB
ST Nucleo F070RB STM32F070RBT6 48MHz 128KB 16KB
ST Nucleo F072RB STM32F072RBT6 48MHz 128KB 16KB
ST Nucleo F091RC STM32F091RCT6 48MHz 256KB 32KB
ST Nucleo F103RB STM32F103RBT6 72MHz 128KB 20KB
ST Nucleo F207ZG STM32F207ZGT6 120MHz 1MB 128KB
ST Nucleo F302R8 STM32F302R8T6 72MHz 64KB 16KB
ST Nucleo F303K8 STM32F303K8T6 72MHz 64KB 16KB
ST Nucleo F303RE STM32F303RET6 72MHz 512KB 64KB
ST Nucleo F303ZE STM32F303ZET6 72MHz 512KB 64KB
ST Nucleo F334R8 STM32F334R8T6 72MHz 64KB 16KB
ST Nucleo F401RE STM32F401RET6 84MHz 512KB 96KB
ST Nucleo F410RB STM32F410RBT6 100MHz 128KB 32KB
ST Nucleo F411RE STM32F411RET6 100MHz 512KB 128KB
ST Nucleo F412ZG STM32F412ZGT6 100MHz 1MB 256KB
ST Nucleo F413ZH STM32F413ZHT6 100MHz 512KB 128KB
ST Nucleo F429ZI STM32F429ZIT6 180MHz 2MB 256KB
ST Nucleo F439ZI STM32F439ZIT6 180MHz 2MB 256KB
ST Nucleo F446RE STM32F446RET6 180MHz 512KB 128KB
ST Nucleo F446ZE STM32F446ZET6 180MHz 512KB 128KB
ST Nucleo F746ZG STM32F746ZGT6 216MHz 1MB 320KB
ST Nucleo F756ZG STM32F756ZG 216MHz 1MB 320KB
ST Nucleo F767ZI STM32F767ZIT6 216MHz 2MB 512KB
ST Nucleo L011K4 STM32L011K4T6 32MHz 16KB 2KB
ST Nucleo L031K6 STM32L031K6T6 32MHz 32KB 8KB
ST Nucleo L053R8 STM32L053R8T6 32MHz 64KB 8KB
ST Nucleo L073RZ STM32L073RZ 32MHz 192KB 20KB
ST Nucleo L152RE STM32L152RET6 32MHz 512KB 80KB
ST Nucleo L432KC STM32L432KCU6 80MHz 256KB 64KB
ST Nucleo L433RC-P STM32L433RC 80MHz 256KB 64KB
ST Nucleo L476RG STM32L476RGT6 80MHz 1MB 128KB
ST Nucleo L476RG STM32L476RGT6 80MHz 1MB 128KB
ST Nucleo L496ZG STM32L496ZGT6 80MHz 1MB 128KB
ST Nucleo L496ZG-P STM32L496ZGT6P 80MHz 1MB 320KB
ST Nucleo L4R5ZI STM32L4R5ZIT6 120MHz 2MB 640KB
ST STM32F0308DISCOVERY STM32F030R8T6 48MHz 64KB 8KB
ST STM32F0DISCOVERY STM32F051R8T6 48MHz 64KB 8KB
ST STM32F3DISCOVERY STM32F303VCT6 72MHz 256KB 48KB
ST STM32F4DISCOVERY STM32F407VGT6 168MHz 1MB 192KB
ST STM32L073Z-EVAL STM32L073VZT6 32MHz 192KB 20KB
ST STM32LDISCOVERY STM32L152RBT6 32MHz 128KB 16KB
ST STM32VLDISCOVERY STM32F100RBT6 24MHz 128KB 8KB
ST Sensor Node STM32L476JG 80MHz 1MB 128KB
Seeed Arch Max STM32F407VET6 168MHz 512KB 192KB
Seeed Wio 3G STM32F439VI 180MHz 2MB 256KB
u-blox C030-R410M IoT STM32F437VG 180MHz 1MB 256KB

External Debug Tools

Boards listed below are compatible with PIO Unified Debugger but DEPEND ON external debug probe. They ARE NOT READY for debugging. Please click on board name for the further details.

Name MCU Frequency Flash RAM
1Bitsy STM32F415RGT 168MHz 1MB 128KB
Armstrap Eagle 1024 STM32F417VGT6 168MHz 1MB 192KB
Armstrap Eagle 2048 STM32F427VIT6 168MHz 1.99MB 256KB
Armstrap Eagle 512 STM32F407VET6 168MHz 512KB 192KB
BluePill F103C8 STM32F103C8T6 72MHz 64KB 20KB
Espotel LoRa Module STM32F411RET6 100MHz 512KB 128KB
MTS Dragonfly STM32F411RET6 100MHz 512KB 128KB
Maple STM32F103RBT6 72MHz 108KB 17KB
Maple (RET6) STM32F103RET6 72MHz 256KB 48KB
Maple Mini Bootloader 2.0 STM32F103CBT6 72MHz 120KB 20KB
Maple Mini Original STM32F103CBT6 72MHz 108KB 17KB
Microduino Core STM32 to Flash STM32F103CBT6 72MHz 105.47KB 16.60KB
MultiTech mDot STM32F411RET6 100MHz 512KB 128KB
MultiTech mDot F411 STM32F411RET6 100MHz 512KB 128KB
MultiTech xDot STM32L151CCU6 32MHz 256KB 32KB
NAMote72 STM32L152RC 32MHz 256KB 32KB
STM32F103C8 (20k RAM. 64k Flash) STM32F103C8T6 72MHz 64KB 20KB
STM32F103CB (20k RAM. 128k Flash) STM32F103CBT6 72MHz 128KB 20KB
STM32F103R8 (20k RAM. 64 Flash) STM32F103R8T6 72MHz 64KB 20KB
STM32F103RB (20k RAM. 128k Flash) STM32F103RBT6 72MHz 128KB 20KB
STM32F103RC (48k RAM. 256k Flash) STM32F103RCT6 72MHz 256KB 48KB
STM32F103RE (64k RAM. 512k Flash) STM32F103RET6 72MHz 512KB 64KB
STM32F103T8 (20k RAM. 64k Flash) STM32F103T8T6 72MHz 20KB 64KB
STM32F103TB (20k RAM. 128k Flash) STM32F103TBT6 72MHz 128KB 20KB
STM32F103VB (20k RAM. 128k Flash) STM32F103VBT6 72MHz 128KB 20KB
STM32F103VC (48k RAM. 256k Flash) STM32F103VCT6 72MHz 256KB 48KB
STM32F103VD (64k RAM. 384k Flash) STM32F103VDT6 72MHz 384KB 64KB
STM32F103VE (64k RAM. 512k Flash) STM32F103VET6 72MHz 512KB 64KB
STM32F103ZC (48k RAM. 256k Flash) STM32F103ZCT6 72MHz 256KB 48KB
STM32F103ZD (64k RAM. 384k Flash) STM32F103ZDT6 72MHz 384KB 64KB
STM32F103ZE (64k RAM. 512k Flash) STM32F103ZET6 72MHz 512KB 64KB
STM32F407VE (192k RAM. 512k Flash) STM32F407VET6 168MHz 502.23KB 128KB
STM32F407VG (192k RAM. 1024k Flash) STM32F407VGT6 168MHz 1MB 192KB
u-blox C030-N211 IoT Starter Kit STM32F437VG 180MHz 1MB 256KB
u-blox C030-U201 IoT Starter Kit STM32F437VG 180MHz 1MB 256KB
u-blox EVK-ODIN-W2 STM32F439ZIY6 168MHz 2MB 256KB
u-blox ODIN-W2 STM32F439ZIY6 168MHz 2MB 256KB

Stable and upstream versions

You can switch between stable releases of ST STM32 development platform and the latest upstream version using platform option in “platformio.ini” (Project Configuration File) as described below.

Stable

; Latest stable version
[env:latest_stable]
platform = ststm32
board = ...

; Custom stable version
[env:custom_stable]
platform = [email protected]
board = ...

Upstream

[env:upstream_develop]
platform = https://github.com/platformio/platform-ststm32.git
board = ...

Packages

Name Description
framework-arduinostm32mxchip Arduino Wiring-based Framework (ST STM32 MXChip Core)
framework-arduinoststm32 Arduino Wiring-based Framework (STM32 Core)
framework-cmsis Vendor-independent hardware abstraction layer for the Cortex-M processor series
framework-libopencm3 libOpenCM3 Framework
framework-mbed mbed Framework
framework-spl Standard Peripheral Library for STM32 MCUs
framework-stm32cube STM32Cube embedded software libraries
tool-openocd OpenOCD
tool-stlink ST-Link
tool-stm32duino STM32Duino Tools
toolchain-gccarmnoneeabi gcc-arm-embedded

Warning

Linux Users:

Windows Users:

Please check that you have a correctly installed USB driver from board manufacturer

Frameworks

Name Description
Arduino Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
CMSIS The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware. It simplifies software re-use, reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices.
libOpenCM3 The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
mbed The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
SPL The ST Standard Peripheral Library provides a set of functions for handling the peripherals on the STM32 Cortex-M3 family. The idea is to save the user (the new user, in particular) having to deal directly with the registers.
STM32Cube STM32Cube embedded software libraries, including: The HAL hardware abstraction layer, enabling portability between different STM32 devices via standardized API calls; The Low-Layer (LL) APIs, a light-weight, optimized, expert oriented set of APIs designed for both performance and runtime efficiency.

Boards

Note

1BitSquared

Name Debug MCU Frequency Flash RAM
1Bitsy External STM32F415RGT 168MHz 1MB 128KB

96Boards

Name Debug MCU Frequency Flash RAM
96Boards B96B-F446VE On-board STM32F446VET6 168MHz 512KB 128KB

Armstrap

Name Debug MCU Frequency Flash RAM
Armstrap Eagle 1024 External STM32F417VGT6 168MHz 1MB 192KB
Armstrap Eagle 2048 External STM32F427VIT6 168MHz 1.99MB 256KB
Armstrap Eagle 512 External STM32F407VET6 168MHz 512KB 192KB

Avnet Silica

Name Debug MCU Frequency Flash RAM
ST Sensor Node On-board STM32L476JG 80MHz 1MB 128KB

Espotel

Name Debug MCU Frequency Flash RAM
Espotel LoRa Module External STM32F411RET6 100MHz 512KB 128KB

Generic

Name Debug MCU Frequency Flash RAM
BluePill F103C8 External STM32F103C8T6 72MHz 64KB 20KB
STM32F103C8 (20k RAM. 64k Flash) External STM32F103C8T6 72MHz 64KB 20KB
STM32F103CB (20k RAM. 128k Flash) External STM32F103CBT6 72MHz 128KB 20KB
STM32F103R8 (20k RAM. 64 Flash) External STM32F103R8T6 72MHz 64KB 20KB
STM32F103RB (20k RAM. 128k Flash) External STM32F103RBT6 72MHz 128KB 20KB
STM32F103RC (48k RAM. 256k Flash) External STM32F103RCT6 72MHz 256KB 48KB
STM32F103RE (64k RAM. 512k Flash) External STM32F103RET6 72MHz 512KB 64KB
STM32F103T8 (20k RAM. 64k Flash) External STM32F103T8T6 72MHz 20KB 64KB
STM32F103TB (20k RAM. 128k Flash) External STM32F103TBT6 72MHz 128KB 20KB
STM32F103VB (20k RAM. 128k Flash) External STM32F103VBT6 72MHz 128KB 20KB
STM32F103VC (48k RAM. 256k Flash) External STM32F103VCT6 72MHz 256KB 48KB
STM32F103VD (64k RAM. 384k Flash) External STM32F103VDT6 72MHz 384KB 64KB
STM32F103VE (64k RAM. 512k Flash) External STM32F103VET6 72MHz 512KB 64KB
STM32F103ZC (48k RAM. 256k Flash) External STM32F103ZCT6 72MHz 256KB 48KB
STM32F103ZD (64k RAM. 384k Flash) External STM32F103ZDT6 72MHz 384KB 64KB
STM32F103ZE (64k RAM. 512k Flash) External STM32F103ZET6 72MHz 512KB 64KB
STM32F407VE (192k RAM. 512k Flash) External STM32F407VET6 168MHz 502.23KB 128KB
STM32F407VG (192k RAM. 1024k Flash) External STM32F407VGT6 168MHz 1MB 192KB

LeafLabs

Name Debug MCU Frequency Flash RAM
Maple External STM32F103RBT6 72MHz 108KB 17KB
Maple (RET6) External STM32F103RET6 72MHz 256KB 48KB
Maple Mini Bootloader 2.0 External STM32F103CBT6 72MHz 120KB 20KB
Maple Mini Original External STM32F103CBT6 72MHz 108KB 17KB

MXChip

Name Debug MCU Frequency Flash RAM
Microsoft Azure IoT Development Kit (MXChip AZ3166) On-board STM32F412ZGT6 100MHz 1MB 256KB

Microduino

Name Debug MCU Frequency Flash RAM
Microduino Core STM32 to Flash External STM32F103CBT6 72MHz 105.47KB 16.60KB

MultiTech

Name Debug MCU Frequency Flash RAM
MTS Dragonfly External STM32F411RET6 100MHz 512KB 128KB
MultiTech mDot External STM32F411RET6 100MHz 512KB 128KB
MultiTech mDot F411 External STM32F411RET6 100MHz 512KB 128KB
MultiTech xDot External STM32L151CCU6 32MHz 256KB 32KB

RushUp

Name Debug MCU Frequency Flash RAM
RushUp Cloud-JAM On-board STM32F401RET6 84MHz 512KB 96KB
RushUp Cloud-JAM L4 On-board STM32L476RGT6 80MHz 1MB 128KB

ST

Name Debug MCU Frequency Flash RAM
ST 32F3348DISCOVERY On-board STM32F334C8T6 72MHz 64KB 12KB
ST 32F401CDISCOVERY On-board STM32F401VCT6 84MHz 256KB 64KB
ST 32F411EDISCOVERY On-board STM32F411VET6 100MHz 512KB 128KB
ST 32F413HDISCOVERY On-board STM32F413ZHT6 100MHz 512KB 128KB
ST 32F429IDISCOVERY On-board STM32F429ZIT6 180MHz 2MB 256KB
ST 32F469IDISCOVERY On-board STM32F469NIH6 180MHz 1MB 384KB
ST 32F746GDISCOVERY On-board STM32F746NGH6 216MHz 1MB 320KB
ST 32F769IDISCOVERY On-board STM32F769NIH6 80MHz 1MB 512KB
ST 32L0538DISCOVERY On-board STM32L053C8T6 32MHz 64KB 8KB
ST 32L100DISCOVERY On-board STM32L100RCT6 32MHz 256KB 16KB
ST 32L476GDISCOVERY On-board STM32L476VGT6 80MHz 1MB 128KB
ST 32L496GDISCOVERY On-board STM32L496AGI6 80MHz 1MB 320KB
ST DISCO-L072CZ-LRWAN1 On-board STM32L072CZ 32MHz 192KB 20KB
ST DISCO-L475VG-IOT01A On-board STM32L475VGT6 80MHz 1MB 128KB
ST Nucleo F030R8 On-board STM32F030R8T6 48MHz 64KB 8KB
ST Nucleo F031K6 On-board STM32F031K6T6 48MHz 32KB 4KB
ST Nucleo F042K6 On-board STM32F042K6T6 48MHz 32KB 6KB
ST Nucleo F070RB On-board STM32F070RBT6 48MHz 128KB 16KB
ST Nucleo F072RB On-board STM32F072RBT6 48MHz 128KB 16KB
ST Nucleo F091RC On-board STM32F091RCT6 48MHz 256KB 32KB
ST Nucleo F103RB On-board STM32F103RBT6 72MHz 128KB 20KB
ST Nucleo F207ZG On-board STM32F207ZGT6 120MHz 1MB 128KB
ST Nucleo F302R8 On-board STM32F302R8T6 72MHz 64KB 16KB
ST Nucleo F303K8 On-board STM32F303K8T6 72MHz 64KB 16KB
ST Nucleo F303RE On-board STM32F303RET6 72MHz 512KB 64KB
ST Nucleo F303ZE On-board STM32F303ZET6 72MHz 512KB 64KB
ST Nucleo F334R8 On-board STM32F334R8T6 72MHz 64KB 16KB
ST Nucleo F401RE On-board STM32F401RET6 84MHz 512KB 96KB
ST Nucleo F410RB On-board STM32F410RBT6 100MHz 128KB 32KB
ST Nucleo F411RE On-board STM32F411RET6 100MHz 512KB 128KB
ST Nucleo F412ZG On-board STM32F412ZGT6 100MHz 1MB 256KB
ST Nucleo F413ZH On-board STM32F413ZHT6 100MHz 512KB 128KB
ST Nucleo F429ZI On-board STM32F429ZIT6 180MHz 2MB 256KB
ST Nucleo F439ZI On-board STM32F439ZIT6 180MHz 2MB 256KB
ST Nucleo F446RE On-board STM32F446RET6 180MHz 512KB 128KB
ST Nucleo F446ZE On-board STM32F446ZET6 180MHz 512KB 128KB
ST Nucleo F746ZG On-board STM32F746ZGT6 216MHz 1MB 320KB
ST Nucleo F756ZG On-board STM32F756ZG 216MHz 1MB 320KB
ST Nucleo F767ZI On-board STM32F767ZIT6 216MHz 2MB 512KB
ST Nucleo L011K4 On-board STM32L011K4T6 32MHz 16KB 2KB
ST Nucleo L031K6 On-board STM32L031K6T6 32MHz 32KB 8KB
ST Nucleo L053R8 On-board STM32L053R8T6 32MHz 64KB 8KB
ST Nucleo L073RZ On-board STM32L073RZ 32MHz 192KB 20KB
ST Nucleo L152RE On-board STM32L152RET6 32MHz 512KB 80KB
ST Nucleo L432KC On-board STM32L432KCU6 80MHz 256KB 64KB
ST Nucleo L433RC-P On-board STM32L433RC 80MHz 256KB 64KB
ST Nucleo L476RG On-board STM32L476RGT6 80MHz 1MB 128KB
ST Nucleo L476RG On-board STM32L476RGT6 80MHz 1MB 128KB
ST Nucleo L496ZG On-board STM32L496ZGT6 80MHz 1MB 128KB
ST Nucleo L496ZG-P On-board STM32L496ZGT6P 80MHz 1MB 320KB
ST Nucleo L4R5ZI On-board STM32L4R5ZIT6 120MHz 2MB 640KB
ST STM32F0308DISCOVERY On-board STM32F030R8T6 48MHz 64KB 8KB
ST STM32F0DISCOVERY On-board STM32F051R8T6 48MHz 64KB 8KB
ST STM32F3DISCOVERY On-board STM32F303VCT6 72MHz 256KB 48KB
ST STM32F4DISCOVERY On-board STM32F407VGT6 168MHz 1MB 192KB
ST STM32L073Z-EVAL On-board STM32L073VZT6 32MHz 192KB 20KB
ST STM32LDISCOVERY On-board STM32L152RBT6 32MHz 128KB 16KB
ST STM32VLDISCOVERY On-board STM32F100RBT6 24MHz 128KB 8KB

SeeedStudio

Name Debug MCU Frequency Flash RAM
Seeed Arch Max On-board STM32F407VET6 168MHz 512KB 192KB
Seeed Wio 3G On-board STM32F439VI 180MHz 2MB 256KB

Semtech

Name Debug MCU Frequency Flash RAM
NAMote72 External STM32L152RC 32MHz 256KB 32KB

u-blox

Name Debug MCU Frequency Flash RAM
Mbed Connect Cloud On-board STM32F439ZIY6 168MHz 2MB 256KB
u-blox C030-N211 IoT Starter Kit External STM32F437VG 180MHz 1MB 256KB
u-blox C030-R410M IoT On-board STM32F437VG 180MHz 1MB 256KB
u-blox C030-U201 IoT Starter Kit External STM32F437VG 180MHz 1MB 256KB
u-blox EVK-ODIN-W2 External STM32F439ZIY6 168MHz 2MB 256KB
u-blox ODIN-W2 External STM32F439ZIY6 168MHz 2MB 256KB