stm32duino/Arduino_Core_STM32 logo

stm32duino/Arduino_Core_STM32

Free

STM32 core support for Arduino

FreeFree tier
Type
Open Source

About stm32duino/Arduino_Core_STM32

This repository provides Arduino core support for STM32 based boards, enabling their use in Arduino IDE 2.x. It is built upon STM32Cube MCU Packages including the HAL hardware abstraction layer, Low-Layer APIs, and CMSIS (Cortex Microcontroller Software Interface Standard). The core also integrates the GNU Arm Embedded Toolchain for compilation. It supports a wide range of STM32 boards including Nucleo, Discovery, Eval, and many generic series (STM32C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, L0, L1, L4, L5, U0, U3, U5, WB, WB0, WBA, WL3, WL) as well as specialized boards for 3D printers, flight controllers, LoRa, IoT, and more. Users can install the core via Arduino Boards Manager using the provided package index URL or use the git repository for the latest development.

Key Features

Support for over 30 STM32 microcontroller series
Based on STM32Cube HAL and Low-Layer (LL) APIs for portability and performance
Compatible with Arduino IDE 2.x only (since core release 2.8.0)
Installable via Arduino Boards Manager with an official package URL
Includes CMSIS module for Cortex-M processor abstraction
Uses GNU Arm Embedded Toolchain for bare-metal development
Open source on GitHub with active community maintenance

Pros & Cons

Pros
  • Free and open source with a permissive license
  • Large community and extensive support for many STM32 boards
  • Leverages official STM32Cube HAL for reliable, tested drivers
  • Easy to install via Arduino Boards Manager
  • Regularly updated on GitHub with new board support and improvements
Cons
  • Only supports Arduino IDE 2.x (version 1.x is deprecated since core release 2.8.0)
  • Requires manual addition of a board manager URL to get started
  • Some board support variants may be marked as experimental or limited (see release notes)
  • Not a full professional development environment; limited debugging compared to STM32CubeIDE

Best For

Embedded systems prototyping and development with STM32 microcontrollersEducational projects using STM32 boards in Arduino environmentIoT and LoRa applications using STM32WB, WL, and WBA series3D printer firmware development with dedicated board supportFlight controller and electronic speed controller projectsIndustrial control and automation with STM32Gx and Hx series

FAQ

What Arduino IDE versions are supported?
Since core release 2.8.0, only Arduino IDE 2.x is supported. Arduino IDE 1.x is no longer supported.
How do I install the STM32 core for Arduino?
Add the following Board Manager URL to Arduino IDE: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json. Then search for 'STM32' in the Boards Manager and install the package.
Which STM32 boards are supported?
A wide range of boards are supported including Nucleo-144/64/32, Discovery, Eval, STM32MP1 coprocessor, and generic boards for many series such as STM32C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, L0, L1, L4, L5, U0, U3, U5, WB, WB0, WBA, WL3, WL. Additionally, specialized boards for 3D printers, flight controllers, LoRa, IoT, and more are supported.
Is this core free to use?
Yes, the core is open source and free to use. It is hosted on GitHub under the stm32duino organization.