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.
Contents
Configuration¶
Switching between Arduino cores¶
There are two different Arduino cores for STM32 microcontrollers:
STM32Duino and Arduino STM32 (maple). Both of them have been
developed independently, therefore, have different functionality and set of internal libraries.
By default, official STM32Duino core is used. Some of the boards support both cores.
To change the core you can use a board_build.core
option that needs be added to
build_flags:
An example of “platformio.ini” (Project Configuration File) with maple
core
[env:hy_tinystm103tb]
platform = ststm32
framework = arduino
board = hy_tinystm103tb
board_build.core = maple
STM32Duino configuration system¶
STM32Duino core has several options that can be configured using the next configuration flags in build_flags section of “platformio.ini” (Project Configuration File):
Name | Description |
---|---|
PIO_FRAMEWORK_ARDUINO_STANDARD_LIB |
Disable Newlib Nano library |
PIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF |
Newlib Nano + float printf support |
PIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_SCANF |
Newlib Nano + float scanf support |
Name | Description |
---|---|
PIO_FRAMEWORK_ARDUINO_SERIAL_WITHOUT_GENERIC |
Enabled (no generic Serial) |
PIO_FRAMEWORK_ARDUINO_SERIAL_DISABLED |
Disabled (no Serial support) |
Name | Description |
---|---|
PIO_FRAMEWORK_ARDUINO_ENABLE_CDC |
CDC (generic Serial supersede U(S)ART) |
PIO_FRAMEWORK_ARDUINO_ENABLE_CDC_WITHOUT_SERIAL |
CDC (no generic Serial) |
PIO_FRAMEWORK_ARDUINO_ENABLE_HID |
HID (keyboard and mouse) |
Name | Description |
---|---|
PIO_FRAMEWORK_ARDUINO_USB_HIGHSPEED |
High Speed mode |
PIO_FRAMEWORK_ARDUINO_USB_HIGHSPEED_FULLMODE |
High Speed in Full Speed mode |
Exmaple:
[env:nucleo_f401re]
platform = ststm32
framework = arduino
board = nucleo_f401re
build_flags =
-D PIO_FRAMEWORK_ARDUINO_ENABLE_CDC
-D PIO_FRAMEWORK_ARDUINO_NANOLIB_FLOAT_PRINTF
-D PIO_FRAMEWORK_ARDUINO_USB_HIGHSPEED_FULLMODE
Maple STM32 configuration system¶
In this core the USB peripheral (STM32F4 boards only) can be configured using the next configuration flags in build_flags section of “platformio.ini” (Project Configuration File):
Name | Description |
---|---|
ENABLE_USB_SERIAL |
USB serial (CDC) |
ENABLE_USB_MASS_STORAGE |
USB Mass Storage (MSC) |
Example:
[env:disco_f407vg]
platform = ststm32
framework = arduino
board = disco_f407vg
board_build.core = maple
build_flags = -D ENABLE_USB_MASS_STORAGE
Examples¶
Examples are listed from ST STM32 development platform repository:
- mbed-blink
- mbed-filesystem
- mbed-serial
- zephyr-blink
- stm32cube-ll-blink
- libopencm3-blink
- mbed-rtos
- mbed-events
- mbed-custom-target
- cmsis-blink
- arduino-blink
- spl-blink
- mbed-rtos-mesh-minimal
- arduino-mxchip-sensors
- zephyr-cpp-synchronization
- zephyr-net-https-client
- mbed-rtos-ethernet-tls
- stm32cube-hal-blink
- zephyr-drivers-can
- arduino-mxchip-azureiot
- arduino-mxchip-filesystem
- arduino-internal-libs
- mbed-rtos-ethernet
- arduino-external-libs
- mbed-rtos-semaphore
- mbed-dsp
- arduino-mxchip-wifiscan
- libopencm3-1bitsy
- zephyr-subsys-usb-hid-mouse
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 |
---|---|---|---|---|
32F412GDISCOVERY | STM32F412ZGT6 | 100MHz | 1MB | 256KB |
32F723EDISCOVERY | STM32F723IEK6 | 216MHz | 512KB | 192KB |
3D printer controller | STM32F765VIT6 | 216MHz | 2MB | 512KB |
3DP001V1 Evaluation board for 3D printer | STM32F401VGT6 | 84MHz | 512KB | 96KB |
96Boards B96B-F446VE | STM32F446VET6 | 168MHz | 512KB | 128KB |
L476DMW1K | STM32L476VGT6 | 80MHz | 1MB | 128KB |
Mbed Connect Cloud | STM32F439ZIY6 | 168MHz | 2MB | 256KB |
Microsoft Azure IoT Development Kit (MXChip AZ3166) | STM32F412ZGT6 | 100MHz | 1MB | 256KB |
P-Nucleo WB55RG | STM32WB55RG | 64MHz | 512KB | 192.00KB |
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 | 216MHz | 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 Discovery F072RB | STM32F072RBT6 | 48MHz | 128KB | 16KB |
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 | 12KB |
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 F722ZE | STM32F722ZET6 | 216MHz | 512KB | 256KB |
ST Nucleo F746ZG | STM32F746ZGT6 | 216MHz | 1MB | 320KB |
ST Nucleo F756ZG | STM32F756ZG | 216MHz | 1MB | 320KB |
ST Nucleo F767ZI | STM32F767ZIT6 | 216MHz | 2MB | 512KB |
ST Nucleo H743ZI | STM32H743ZIT6 | 400MHz | 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 L412KB | STM32L412KBU6 | 80MHz | 128KB | 40KB |
ST Nucleo L432KC | STM32L432KCU6 | 80MHz | 256KB | 64KB |
ST Nucleo L433RC-P | STM32L433RC | 80MHz | 256KB | 64KB |
ST Nucleo L452RE | STM32L452RET6 | 80MHz | 256KB | 64KB |
ST Nucleo L476RG | STM32L476RGT6 | 80MHz | 1MB | 128KB |
ST Nucleo L486RG | STM32L486RGT6 | 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 | 128KB |
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 |
STM32F7508-DK | STM32F750N8H6 | 216MHz | 64KB | 340KB |
STM32H747I-DISCO | STM32H747XIH6 | 400MHz | 2MB | 512KB |
Seeed Arch Max | STM32F407VET6 | 168MHz | 512KB | 192KB |
Seeed Wio 3G | STM32F439VI | 180MHz | 2MB | 256KB |
sakura.io Evaluation Board | STM32F411RET6 | 100MHz | 1MB | 128KB |
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 |
3D Printer Controller | STM32F407VET6 | 168MHz | 512KB | 192KB |
3D Printer control board | STM32F446RET6 | 180MHz | 512KB | 128KB |
AfroFlight Rev5 (8MHz) | STM32F103CBT6 | 72MHz | 128KB | 20KB |
Armstrap Eagle 1024 | STM32F417VGT6 | 168MHz | 1MB | 192KB |
Armstrap Eagle 2048 | STM32F427VIT6 | 168MHz | 1.99MB | 256KB |
Armstrap Eagle 512 | STM32F407VET6 | 168MHz | 512KB | 192KB |
Black STM32F407VE | STM32F407VET6 | 168MHz | 512KB | 128KB |
Black STM32F407VG | STM32F407VGT6 | 168MHz | 512KB | 128KB |
Black STM32F407ZE | STM32F407ZET6 | 168MHz | 512KB | 128KB |
Black STM32F407ZE | STM32F407ZGT6 | 168MHz | 1MB | 128KB |
BlackPill F103C8 | STM32F103C8T6 | 72MHz | 64KB | 20KB |
BlackPill F103C8 (128k) | STM32F103C8T6 | 72MHz | 128KB | 20KB |
BlackPill F303CC | STM32F303CCT6 | 72MHz | 256KB | 40KB |
BlackPill F401CC | STM32F401CCT6 | 84MHz | 256KB | 64KB |
Blue STM32F407VE Mini | STM32F407VET6 | 168MHz | 512KB | 128KB |
BluePill F103C6 | STM32F103C6T6 | 72MHz | 32KB | 10KB |
BluePill F103C8 | STM32F103C8T6 | 72MHz | 64KB | 20KB |
BluePill F103C8 (128k) | STM32F103C8T6 | 72MHz | 128KB | 20KB |
Core board F401RCT6 | STM32F401RCT6 | 84MHz | 256KB | 64KB |
Demo F030F4 | STM32F030F4P6 | 48MHz | 16KB | 4KB |
Espotel LoRa Module | STM32F411RET6 | 100MHz | 512KB | 128KB |
F407VG | STM32F407VGT6 | 168MHz | 512KB | 128KB |
FK407M1 | STM32F407VET6 | 168MHz | 512KB | 128KB |
M200 V2 | STM32F070CBT6 | 48MHz | 120KB | 14.81KB |
MKR Sharky | STM32WB55CG | 64MHz | 512KB | 192.00KB |
MTS Dragonfly | STM32F411RET6 | 100MHz | 512KB | 128KB |
Malyan M200 V1 | STM32F103CBT6 | 72MHz | 120KB | 20KB |
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 |
N2+ | STM32F405RGT6 | 168MHz | 1MB | 192KB |
NAMote72 | STM32L152RC | 32MHz | 256KB | 32KB |
Nucleo G071RB | STM32G071RBT6 | 64MHz | 128KB | 36KB |
Nucleo G431KB | STM32G431KBT6 | 170MHz | 128KB | 32KB |
Nucleo G431RB | STM32G431RBT6 | 170MHz | 128KB | 32KB |
Nucleo G474RE | STM32G474RET6 | 170MHz | 512KB | 128KB |
OLIMEXINO-STM32 | STM32F103RBT6 | 72MHz | 128KB | 20KB |
Olimex STM32-P405 | STM32F405RGT6 | 168MHz | 1MB | 192KB |
RAK811 LoRa Tracker | STM32L151RBT6 | 32MHz | 128KB | 16KB |
RAK811 LoRa Tracker | STM32L151RBT6 | 32MHz | 128KB | 32KB |
RHF76 052 | STM32L051C8T6 | 32MHz | 64KB | 8KB |
STM32-E407 | STM32F407ZGT6 | 168MHz | 1MB | 128KB |
STM32-H407 | STM32F407ZGT6 | 168MHz | 1MB | 128KB |
STM3210C-EVAL | STM32F107VCT6 | 72MHz | 256KB | 64KB |
STM32373C-EVAL | STM32F373VCT6 | 72MHz | 256KB | 32KB |
STM32F072-EVAL | STM32F072VBT6 | 48MHz | 128KB | 16KB |
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 | 64KB | 20KB |
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 |
STM32F303CB (32k RAM. 128k Flash) | STM32F303CBT6 | 72MHz | 128KB | 32KB |
STM32F407VE (192k RAM. 512k Flash) | STM32F407VET6 | 168MHz | 502.23KB | 128KB |
STM32F407VG (192k RAM. 1024k Flash) | STM32F407VGT6 | 168MHz | 1MB | 192KB |
STM32F4Stamp F405 | STM32F405RGT6 | 168MHz | 1MB | 192KB |
SensorTile.box | STM32L4R9ZI | 120MHz | 2MB | 640KB |
Sparky V1 F303 | STM32F303CCT6 | 72MHz | 256KB | 40KB |
Tiny STM103T | STM32F103TBU6 | 72MHz | 128KB | 20KB |
VAkE v1.0 | STM32F446RET6 | 180MHz | 512KB | 128KB |
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 = ststm32@x.y.z
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-arduinoststm32-maple | Arduino Wiring-based Framework (ST STM32 Maple 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 |
framework-zephyr | Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures. |
framework-zephyr-civetweb | Zephyr module CivetWeb Embedded C/C++ web server |
framework-zephyr-fatfs | Zephyr module for FATFS filesystem |
framework-zephyr-hal-st | Zephyr module for the official libraries provided by STMicroelectronics |
framework-zephyr-hal-stm32 | ST STM32 HAL for Zephyr framework |
framework-zephyr-libmetal | Zephyr module for HAL abstraction layer used by open-amp |
framework-zephyr-littlefs | Zephyr module for littlefs filesystem |
framework-zephyr-lvgl | Zephyr module for LittlevGL - an Open-source Embedded GUI Library |
framework-zephyr-mbedtls | mbedTLS module for Zephyr |
framework-zephyr-mcumgr | Zephyr module for mcumgr management library for 32-bit MCUs |
framework-zephyr-mipi-sys-t | Zephyr module for MIPI System Software Trace |
framework-zephyr-nffs | Zephyr module for the Newtron Flash File System |
framework-zephyr-open-amp | Zephyr module for Open Asymmetric Multi Processing (OpenAMP) framework |
framework-zephyr-openthread | OpenThread module for Zephyr |
framework-zephyr-segger | Zephyr module for Segger RTT |
framework-zephyr-tinycbor | Zephyr module for Concise Binary Object Representation Library |
tool-cmake | CMake is an open-source, cross-platform family of tools designed to build, test and package software. |
tool-dfuutil | Host side implementation of the DFU 1.0 and DFU 1.1 specifications |
tool-dtc | Device tree compiler |
tool-gperf | GNU gperf is a perfect hash function generator. |
tool-jlink | SEGGER J-Link Software and Documentation Pack |
tool-ninja | Ninja is a small build system with a focus on speed. |
tool-openocd | OpenOCD |
tool-stm32duino | STM32Duino Tools |
toolchain-gccarmnoneeabi | gcc-arm-embedded |
Warning
Linux Users:
- Install “udev” rules 99-platformio-udev.rules
- Raspberry Pi users, please read this article Enable serial port on Raspberry Pi.
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. |
Zephyr | The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind. |
Boards¶
Note
- You can list pre-configured boards by platformio boards command or PlatformIO Boards Explorer
- For more detailed
board
information please scroll tables below by horizontal.
96Boards¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
96Boards B96B-F446VE | On-board | STM32F446VET6 | 168MHz | 512KB | 128KB |
AfroFlight¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
AfroFlight Rev5 (8MHz) | External | STM32F103CBT6 | 72MHz | 128KB | 20KB |
Armed¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
3D Printer Controller | External | STM32F407VET6 | 168MHz | 512KB | 192KB |
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 |
---|---|---|---|---|---|
BlackPill F103C8 | External | STM32F103C8T6 | 72MHz | 64KB | 20KB |
BlackPill F103C8 (128k) | External | STM32F103C8T6 | 72MHz | 128KB | 20KB |
BluePill F103C6 | External | STM32F103C6T6 | 72MHz | 32KB | 10KB |
BluePill F103C8 | External | STM32F103C8T6 | 72MHz | 64KB | 20KB |
BluePill F103C8 (128k) | External | STM32F103C8T6 | 72MHz | 128KB | 20KB |
Demo F030F4 | External | STM32F030F4P6 | 48MHz | 16KB | 4KB |
FK407M1 | External | STM32F407VET6 | 168MHz | 512KB | 128KB |
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 | 64KB | 20KB |
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 |
STM32F303CB (32k RAM. 128k Flash) | External | STM32F303CBT6 | 72MHz | 128KB | 32KB |
STM32F407VE (192k RAM. 512k Flash) | External | STM32F407VET6 | 168MHz | 502.23KB | 128KB |
STM32F407VG (192k RAM. 1024k Flash) | External | STM32F407VGT6 | 168MHz | 1MB | 192KB |
STM32F4Stamp F405 | External | STM32F405RGT6 | 168MHz | 1MB | 192KB |
HY¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
Tiny STM103T | External | STM32F103TBU6 | 72MHz | 128KB | 20KB |
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 |
Malyan¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
M200 V2 | External | STM32F070CBT6 | 48MHz | 120KB | 14.81KB |
Malyan M200 V1 | External | STM32F103CBT6 | 72MHz | 120KB | 20KB |
Microduino¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
Microduino Core STM32 to Flash | External | STM32F103CBT6 | 72MHz | 105.47KB | 16.60KB |
Midatronics¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
MKR Sharky | External | STM32WB55CG | 64MHz | 512KB | 192.00KB |
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 |
Olimex¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
OLIMEXINO-STM32 | External | STM32F103RBT6 | 72MHz | 128KB | 20KB |
Olimex STM32-P405 | External | STM32F405RGT6 | 168MHz | 1MB | 192KB |
STM32-E407 | External | STM32F407ZGT6 | 168MHz | 1MB | 128KB |
STM32-H407 | External | STM32F407ZGT6 | 168MHz | 1MB | 128KB |
RAK¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
RAK811 LoRa Tracker | External | STM32L151RBT6 | 32MHz | 128KB | 16KB |
RAK811 LoRa Tracker | External | STM32L151RBT6 | 32MHz | 128KB | 32KB |
RUMBA¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
3D Printer control board | External | STM32F446RET6 | 180MHz | 512KB | 128KB |
RemRam¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
3D printer controller | On-board | STM32F765VIT6 | 216MHz | 2MB | 512KB |
RobotDyn¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
BlackPill F303CC | External | STM32F303CCT6 | 72MHz | 256KB | 40KB |
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 |
---|---|---|---|---|---|
32F412GDISCOVERY | On-board | STM32F412ZGT6 | 100MHz | 1MB | 256KB |
32F723EDISCOVERY | On-board | STM32F723IEK6 | 216MHz | 512KB | 192KB |
3DP001V1 Evaluation board for 3D printer | On-board | STM32F401VGT6 | 84MHz | 512KB | 96KB |
Black STM32F407VE | External | STM32F407VET6 | 168MHz | 512KB | 128KB |
Black STM32F407VG | External | STM32F407VGT6 | 168MHz | 512KB | 128KB |
Black STM32F407ZE | External | STM32F407ZET6 | 168MHz | 512KB | 128KB |
Black STM32F407ZE | External | STM32F407ZGT6 | 168MHz | 1MB | 128KB |
BlackPill F401CC | External | STM32F401CCT6 | 84MHz | 256KB | 64KB |
Blue STM32F407VE Mini | External | STM32F407VET6 | 168MHz | 512KB | 128KB |
Core board F401RCT6 | External | STM32F401RCT6 | 84MHz | 256KB | 64KB |
Nucleo G071RB | External | STM32G071RBT6 | 64MHz | 128KB | 36KB |
Nucleo G431KB | External | STM32G431KBT6 | 170MHz | 128KB | 32KB |
Nucleo G431RB | External | STM32G431RBT6 | 170MHz | 128KB | 32KB |
Nucleo G474RE | External | STM32G474RET6 | 170MHz | 512KB | 128KB |
P-Nucleo WB55RG | On-board | STM32WB55RG | 64MHz | 512KB | 192.00KB |
RHF76 052 | External | STM32L051C8T6 | 32MHz | 64KB | 8KB |
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 | 216MHz | 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 Discovery F072RB | On-board | STM32F072RBT6 | 48MHz | 128KB | 16KB |
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 | 12KB |
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 F722ZE | On-board | STM32F722ZET6 | 216MHz | 512KB | 256KB |
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 H743ZI | On-board | STM32H743ZIT6 | 400MHz | 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 L412KB | On-board | STM32L412KBU6 | 80MHz | 128KB | 40KB |
ST Nucleo L432KC | On-board | STM32L432KCU6 | 80MHz | 256KB | 64KB |
ST Nucleo L433RC-P | On-board | STM32L433RC | 80MHz | 256KB | 64KB |
ST Nucleo L452RE | On-board | STM32L452RET6 | 80MHz | 256KB | 64KB |
ST Nucleo L476RG | On-board | STM32L476RGT6 | 80MHz | 1MB | 128KB |
ST Nucleo L486RG | On-board | STM32L486RGT6 | 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 | 128KB |
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 |
STM3210C-EVAL | External | STM32F107VCT6 | 72MHz | 256KB | 64KB |
STM32373C-EVAL | External | STM32F373VCT6 | 72MHz | 256KB | 32KB |
STM32F072-EVAL | External | STM32F072VBT6 | 48MHz | 128KB | 16KB |
STM32F7508-DK | On-board | STM32F750N8H6 | 216MHz | 64KB | 340KB |
STM32H747I-DISCO | On-board | STM32H747XIH6 | 400MHz | 2MB | 512KB |
SensorTile.box | External | STM32L4R9ZI | 120MHz | 2MB | 640KB |
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 |
TauLabs¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
Sparky V1 F303 | External | STM32F303CCT6 | 72MHz | 256KB | 40KB |
sakura.io¶
Name | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|
sakura.io Evaluation Board | On-board | STM32F411RET6 | 100MHz | 1MB | 128KB |
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 |