Arduino core support for STM32 based boards
Introduction
This repo adds the support of STM32 MCU in Arduino IDE.
This porting is based on:
- STM32Cube MCU Packages 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
- CMSIS device defintion for STM32
- CMSIS: Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortexยฎ-M processor series and defines generic tool interfaces. It has been packaged as a module for Arduino IDE: https://github.com/stm32duino/ArduinoModule-CMSIS
- GNU Arm Embedded Toolchain: Arm Embedded GCC compiler, libraries and other GNU tools necessary for bare-metal software development on devices based on the Arm Cortex-M. Packages are provided thanks The xPack GNU Arm Embedded GCC: https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack
Getting Started
This repo is available as a package usable with Arduino Boards Manager.
Use this link in the "Additional Boards Managers URLs" field:
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
For full instructions on using the "Boards Manager", see the Getting Started page.
Advanced user can use the repository to benefit from the latest development. See the Using git repository page.
User can add a STM32 based board following this wiki.
Supported boards
- Nucleo 144 boards
- Nucleo 64 boards
- Nucleo 32 boards
- Discovery boards
- Eval boards
- STM32MP1 series coprocessor boards
- Generic STM32F0 boards
- Generic STM32F1 boards
- Generic STM32F3 boards
- Generic STM32F4 boards
- Generic STM32H7 boards
- Generic STM32L0 boards
- 3D printer boards
- LoRa boards
- Electronic Speed Controller boards
- Generic flight controllers
- Garatronics boards
- Midatronics boards
Nucleo 144 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F207ZG | Nucleo F207ZG | 0.2.0 | |
๐ | STM32F429ZI | Nucleo F429ZI | 0.1.0 | |
๐ | STM32F767ZI | Nucleo F767ZI | 1.4.0 | |
๐ | STM32F746ZG | Nucleo F746ZG | 1.9.0 | |
๐ | STM32F756ZG | Nucleo F756ZG | 1.9.0 | |
๐ | STM32L496ZG | Nucleo L496ZG | 1.3.0 | |
๐ | STM32L496ZG-P | Nucleo L496ZG-P | 1.3.0 | |
๐ | STM32L4R5ZI | Nucleo L4R5ZI | 1.4.0 | |
๐ | STM32L4R5ZI-P | Nucleo L4R5ZI-P | 1.4.0 | |
๐ | STM32H743ZI | Nucleo H743ZI(2) | 1.5.0 | Nucleo H743ZI2 since 1.6.0 |
Nucleo 64 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F030R8 | Nucleo F030R8 | 0.2.0 | |
๐ | STM32F072RB | Nucleo F072RB | 1.9.0 | |
๐ | STM32F091RC | Nucleo F091RC | 0.1.0 | |
๐ | STM32F103RB | Nucleo F103RB | 0.2.0 | |
๐ | STM32F302R8 | Nucleo F302R8 | 1.1.0 | |
๐ | STM32F303RE | Nucleo F303RE | 0.1.0 | |
๐ | STM32F401RE | Nucleo F401RE | 0.2.1 | |
๐ | STM32F411RE | Nucleo F411RE | 0.2.1 | |
๐ | STM32F446RE | Nucleo F446RE | 1.1.1 | |
๐ | STM32G071RB | Nucleo G071RB | 1.6.0 | |
๐ | STM32G431RB | Nucleo G431RB | 1.7.0 | |
๐ | STM32G474RE | Nucleo G474RE | 1.7.0 | |
๐ | STM32L053R8 | Nucleo L053R8 | 0.1.0 | |
๐ | STM32L073RZ | Nucleo L073RZ | 1.4.0 | |
๐ | STM32L152RE | Nucleo L152RE | 1.0.0 | |
๐ | STM32L433RC-P | Nucleo L433RC-P | 1.9.0 | |
๐ | STM32L452RE | Nucleo L452RE | 1.5.0 | |
๐ | STM32L452RE-P | Nucleo L452RE-P | 1.8.0 | |
๐ | STM32L476RG | Nucleo L476RG | 0.1.0 | |
๐ | STM32WB55RG STM32WB55CG |
P-Nucleo-WB55RG | 1.6.0 | No BLE support |
Nucleo 32 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F031K6 | Nucleo F031K6 | 1.9.0 | |
๐ | STM32F303K8 | Nucleo F303K8 | 1.1.0 | |
๐ | STM32G431KB | Nucleo G431KB | 1.7.0 | |
๐ | STM32L031K6 | Nucleo L031K6 | 1.1.1 | |
๐ | STM32L412KB | Nucleo L412KB | 1.5.0 | |
๐ | STM32L432KC | Nucleo L432KC | 0.2.0 |
Discovery boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F030R8 | 32F0308DISCOVERY | 1.3.0 | |
๐ | STM32F072RB | 32F072BDISCOVERY | 1.5.0 | |
๐ | STM32F100RB | STM32VLDISCOVERY | 0.2.1 | |
๐ | STM32F407VG | STM32F407G-DISC1 | 0.1.0 | |
๐ | STM32F746NG | STM32F746G-DISCOVERY | 0.1.0 | |
๐ | STM32G031J6 | STM32G0316-DISCO | 1.9.0 | |
๐ | STM32L072CZ | B-L072Z-LRWAN1 | 1.1.0 | |
๐ | STM32L475VG | B-L475E-IOT01A | 1.0.1 | |
๐ | STM32F413ZH | 32F413HDISCOVERY | 1.9.0 | |
๐ | STM32L4S5VI | B-L4S5I-IOT01A | 2.0.0 |
Eval boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32L4R9ZI | STEVAL-MKSBOX1V1 (SensorTile.box) | 1.7.0 |
STM32MP1 series coprocessor boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32MP157A | STM32MP157A-DK1 | 1.8.0 | See the documentation to use this board |
๐ | STM32MP157C | STM32MP157C-DK2 | 1.8.0 | See the documentation to use this board |
Generic STM32F0 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F030F4 | STM32F030F4 Demo board | 1.5.0 |
Generic STM32F1 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F103C6 STM32F103C8 STM32F103CB |
Blue Pill | 1.2.0 | USB CDC support since 1.5.0 Maple bootloaders support since 1.6.0 |
๐ | STM32F103C8 STM32F103CB |
Black Pill | 1.5.0 | |
๐ | STM32F103C4 STM32F103C6 STM32F103C8 STM32F103CB |
Generic Board | 1.9.0 | |
๐ | STM32F103R6 STM32F103R8 STM32F103RB STM32F103RC STM32F103RD STM32F103RE STM32F103RF STM32F103RG |
Generic Board | 1.9.0 | |
๐ | STM32F103T4 STM32F103T6 STM32F103T8 STM32F103TB |
Generic Board | 1.9.0 | |
๐ | STM32F103V8 STM32F103VB STM32F103VC STM32F103VD STM32F103VE STM32F103VF STM32F103VG |
Generic Board | 1.9.0 | |
๐ | STM32F103ZC STM32F103ZD STM32F103ZE STM32F103ZF STM32F103ZG |
Generic Board | 1.9.0 | |
๐ | STM32F103TB | HY-TinySTM103T | 1.5.0 | More info |
๐ | STM32F103CB | Maple Mini | 1.2.0 | More info USB CDC support since 1.5.0 Maple bootloaders support since 1.6.0 |
๐ | STM32F103ZE | vcc-gnd.com | 1.9.0 | More info |
๐ | STM32F103ZE | vcc-gnd.com Mini | 1.9.0 | More info |
Generic STM32F3 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F303CC | RobotDyn Black Pill | 1.6.1 | More info |
Generic STM32F4 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F405RG | Adafruit Feather STM32F405 Express | 1.8.0 | |
๐ | STM32F401CC | WeAct Black Pill | 1.7.0 | More info |
๐ | STM32F411CE | WeAct Black Pill | 1.9.0 | More info |
๐ | STM32F407VE STM32F407VG |
STM32 F4VE / Black F407VET6 | 1.4.0 | STM32F407VG support since 1.5.0 |
๐ | STM32F407ZE STM32F407ZG |
Black F407ZE / Black F407ZG | 1.5.0 | |
๐ | STM32F407VE | vcc-gnd.com Mini | 1.4.0 | More info |
๐ | STM32F401RC | STM32F Core Board | 1.7.0 | |
๐ | STM32F407VG | DIYMORE STM32F407VGT | 1.5.0 | |
๐ | STM32F407VE | FK407M1 | 1.5.0 | |
๐ | STM32F401CB STM32F401CC STM32F401CD STM32F401CE |
Generic Board | 1.9.0 | |
๐ | STM32F401RB STM32F401RC STM32F401RD STM32F401RE |
Generic Board | 1.8.0 | |
๐ | STM32F405RG | Generic Board | 1.9.0 | |
๐ | STM32F407VE STM32F407VG |
Generic Board | 1.9.0 | |
๐ | STM32F410C8 STM32F410CB |
Generic Board | 1.9.0 | |
๐ | STM32F410R8 STM32F410RB |
Generic Board | 1.9.0 | |
๐ | STM32F411CC STM32F411CE |
Generic Board | 1.9.0 | |
๐ | STM32F411RC STM32F411RE |
Generic Board | 1.9.0 | |
๐ | STM32F412CE STM32F412CG |
Generic Board | 1.9.0 | |
๐ | STM32F412RE STM32F412RG |
Generic Board | 1.9.0 | |
๐ | STM32F413CG STM32F413CH |
Generic Board | 1.9.0 | |
๐ | STM32F413RG STM32F413RH |
Generic Board | 1.9.0 | |
๐ | STM32F415RG | Generic Board | 1.9.0 | |
๐ | STM32F417VE STM32F417VG |
Generic Board | 1.9.0 | |
๐ | STM32F423CH | Generic Board | 1.9.0 | |
๐ | STM32F423RH | Generic Board | 1.9.0 | |
๐ | STM32F446RC STM32F446RE |
Generic Board | 1.9.0 | |
๐ | STM32F411CE | ThunderPack v1.1+ | 1.9.0 |
Generic STM32H7 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32H750IB | Daisy | 1.9.0 |
Generic STM32L0 boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32L072RB | PX-HER0 | 1.8.0 | |
๐ | STM32L072KZ | ThunderPack v1.0 | 1.8.0 |
3D printer boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F407VE | ARMED V1 | 1.5.0 | |
๐ | STM32F030 | EExtruder F030 V1 | 1.5.0 | Small companion board for Prntr Board V1 |
๐ | STM32F103C8 | Malyan M200 V1 | 1.5.0 | |
๐ | STM32F070C8 | Malyan M200 V2 | 1.5.0 | |
๐ | STM32F070C8 | Malyan M300 | 1.8.0 | |
๐ | STM32F407VE | Prntr Board V1 | 1.5.0 | |
๐ | STM32F407VE | Prntr Board V2 | 1.8.0 | |
๐ | STM32F765VI | RemRam v1 | 1.4.0 | |
๐ | STM32F446VE | RUMBA32 | 1.5.0 | |
๐ | STM32F401VE | STEVAL-3DP001V1 | 1.6.0 | |
๐ | STM32F446RE | VAkE v1.0 | 1.6.0 | |
๐ | STM32F446VE | FYSETC_S6 | 1.9.0 |
LoRa boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F072C8 STM32F072CB |
Elektor LoRa Node | 1.8.0 | More info |
๐ | STM32L151RB | RAK811 LoRa Tracker | 1.4.0 | Wiki |
๐ | STM32L051C8 | RHF76-052 | 1.7.0 | Basic support |
Electronic Speed Controller boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F051K6 | Wraith V1 ESC | 1.8.0 |
Generic flight controllers
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F103CB | Afro Flight Rev5 (8/12MHz) | 1.7.0 | |
๐ | STM32F303CC | Sparky V1 | 1.6.0 |
Garatronic/McHobby boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32F072RB | PYBStick 26 Duino | 1.9.0 | More info |
๐ | STM32F401CE | PYBStick 26 Lite | 1.9.0 | More info |
๐ | STM32F411RE | PYBStick 26 Standard | 1.9.0 | More info |
๐ | STM32F412RE | PYBStick 26 Pro | 1.9.0 | More info |
Midatronics boards
Status | Device(s) | Name | Release | Notes |
---|---|---|---|---|
๐ | STM32WB55CG | SharkyMKR | 1.7.0 |
Next release
See milestones to have an overview of the next release content.
Troubleshooting
For question, support, ..., you could submit a topic on the stm32duino forum.
If you have any issue, you could file an issue on Github.
In any case, it always fine to search if your issue was not already existing before submit a new one.