STM32Cube MCU Overall Offer
Overview
STM32Cube is an STMicroelectronics original initiative to ease the developers life by reducing efforts, time and cost.
STM32Cube covers the overall STM32 products portfolio (MCU and MPU). It includes a comprehensive embedded software platform, delivered for each STM32 series.
- The CMSIS modules (core and device) corresponding to the ARM(tm) core implemented in this STM32 product.
- The STM32 HAL-LL drivers, an abstraction layer offering a set of APIs ensuring maximized portability across the STM32 portfolio.
- The BSP drivers of each evaluation, demonstration, or nucleo board provided for this STM32 series.
- A consistent set of middleware libraries such as RTOS, USB, FatFS, graphics, touch sensing library...
- A full set of software projects (basic examples, applications, and demonstrations) for each board provided for this STM32 series.
GitHub is a new publication model for the STM32Cube MCU embedded software. Different models of publication are proposed:
- The MCU Package: A unique repo per STM32 MCU series containing the different components of a STM32 MCU firmware (Drivers, Middleware, Utilities, Examples). Please refer to the STM32Cube MCU Packages chapter below.
- The MCU components: Each component of a STM32 MCU firmware (Drivers, Middleware, Utilities) is proposed in a dedicated repo, allowing the user to select and get only the required ones. Please refer to the STM32Cube MCU Components chapter below.
- The X-CUBE: Expansion software proposing examples and applications that complement the ones of the STM32Cube firmware.
- A set of MCU Utilities: Various utility features proposed in dedicated repos.
Please note that a MPU offer is also proposed for the STM32 MPU Products. You can refer to the repo STM32MPU_EmbSW_Overall_Offer.
Description
This repo is a simple Readme describing all STM32 MCU related GitHub projects, the overall offer for the STM32 MCU products.
This new publication channel of the STM32Cube embedded software components will provide new added values:
- In complement to the MCU Package zip files today proposed on st.com, the capability for STM32 customers to get a configuration management based delivery (Git)
- A more direct communication between developers, thanks to the Issues features. Caution: only software related questions will be taken into account. Any other subject must be submitted to the ST Community forum
- Thanks to the deployment of a Contributor License Agreement feature (please refer to each repo CONTRIBUTING guide), the Pull-Request permits also to take into account customers proposed updates and enrich the STM32Cube FW offer.
For general communication and support, you can use
Content
STM32Cube MCU Packages
X-CUBE Expansion softwares
The STM32Cube expansion software contains embedded software components that complement the functionalities of the STM32Cube and/or enable the usage of a multitude of ST devices in domains such as of sensing, power management, connectivity or audio, together with the most appropriate STM32 MCUs.
STM32Cube Azure RTOS X-CUBE |
Description |
x-cube-azrtos-f4 |
Azure RTOS Expansion Package for STM32Cube, for STM32F4 series. |
x-cube-azrtos-f7 |
Azure RTOS Expansion Package for STM32Cube, for STM32F7 series. |
x-cube-azrtos-g0 |
Azure RTOS Expansion Package for STM32Cube, for STM32G0 series. |
x-cube-azrtos-g4 |
Azure RTOS Expansion Package for STM32Cube, for STM32G4 series. |
x-cube-azrtos-h7 |
Azure RTOS Expansion Package for STM32Cube, for STM32H7 series. |
x-cube-azrtos-h7rs |
Azure RTOS Expansion Package for STM32Cube, for STM32H7RS series. |
x-cube-azrtos-l4 |
Azure RTOS Expansion Package for STM32Cube, for STM32L4 series. |
x-cube-azrtos-l5 |
Azure RTOS Expansion Package for STM32Cube, for STM32L5 series. |
x-cube-azrtos-wb |
Azure RTOS Expansion Package for STM32Cube, for STM32WB series. |
x-cube-azrtos-wl |
Azure RTOS Expansion Package for STM32Cube, for STM32WL series. |
STM32Cube Connectivity X-CUBE |
Description |
x-cube-ble1 |
BlueNRG-M0 Bluetooth Low Energy Expansion Package for STM32Cube. |
x-cube-ble2 |
BlueNRG-2 Bluetooth Low Energy Expansion Package for STM32Cube. |
x-cube-blemgr |
Expansion Package to set and configure bluetooth connectivity from board to mobile application such as ST BLE Sensor. |
x-cube-nfc4 |
Dynamic NFC/RFID tag IC (ST25DV04K device) Expansion Package for STM32Cube. |
x-cube-nfc7 |
Dynamic NFC/RFID tag IC (ST25DV64KC device) Expansion Package for STM32Cube. |
x-cube-sfxs2lp1 |
Embedded software S2-LP Sigfox library and GUI PC application to transmit messages to the Sigfox network. |
x-cube-subg2 |
Sub 1 GHz RF communication for S2-LP Expansion Package for STM32Cube. |
STM32Cube FreeRTOS X-CUBE |
Description |
x-cube-freertos |
FreeRTOS Expansion Package for STM32C0, STM32H5, STM32U5, and STM32WBA. |
STM32Cube IoT X-CUBE |
Description |
x-cube-aws |
AWS IoT Expansion Package for STM32Cube. |
x-cube-azure-telematics |
Azure IoT Expansion Package for STM32Cube. |
x-cube-iota1 |
IOTA Distributed Ledger Technology Expansion Package for STM32Cube. |
STM32Cube MEMS and Sensors X-CUBE |
Description |
x-cube-ispu |
Provides examples and drivers for STM32 to recognize sensors and collect temperature, humidity, pressure, motion, and ISPU (Intelligent Sensor Processing Unit) data. |
x-cube-mems1 |
X-CUBE-MEMS1 Expansion Package for STM32Cube. (X-NUCLEO-IKS01A2, X-NUCLEO-IKS01A3 and X-NUCLEO-IKS02A1). |
x-cube-memsmic1 |
Provides examples for STM32 using ST analog and digital MEMS microphones, and ultrasound condition monitoring (UltrasoundFFT). |
x-cube-soundter1 |
Provides drivers and middleware for STM32 to interface with the STA350BW Sound Terminal component mounted on X-NUCLEO-CCA01M1 expansion board. |
x-cube-tof1 |
Provides drivers drivers for a variety of VL53Lxxx ranging sensors running on STM32. |
STM32Cube USB-PD X-CUBE |
Description |
x-cube-tcpp |
USB-IF certified Expansion Package for the integration of TCPPs protection circuits (OV/OC). |
x-cube-usb-pd |
USB-IF certified Expansion Package as USB Type-C port manager (TCPM). |
STM32Cube Miscellaneous X-CUBE |
Description |
x-cube-eeprma1 |
M24XX I2C and M95XX SPI EEPROMs Expansion Package for STM32Cube. |
x-cube-gnss1 |
Teseo-LIV3F GNSS Expansion Package for STM32Cube. |
STM32Cube Function Packs
STM32 Function Packs (FP) are a combination of low-level drivers, middleware libraries and sample applications assembled into a single software package. You can get the entire list of available Function Packs on st.com here.
The below list represents the Function Packs available on github.com
STM32Cube Function Packs |
Description |
fp-atr-ble1 |
STM32Cube function pack for asset tracking using BLE&NFC connectivity for SensorTile.box PRO discovery box. |
fp-atr-sigfox1 |
STM32Cube function pack for reading data from GNSS and environmental sensors and sending this information via Sigfox. |
fp-aud-aec1 |
STM32Cube function pack for Acoustic Echo Cancellation implementing a USB smart speaker use case with microphone. |
fp-aud-smartmic1 |
STM32Cube function pack for acquiring audio signals from 4 digital MEMS microphones, processing them, and streaming them to both a USB host and a loudspeaker. |
fp-sns-allmems1 |
STM32Cube function pack for IoT node with BLE connectivity to view environmental and intertial sensors data, plus some advanced functionalities (e.g., voice communication over BLE, sound source localization). |
fp-sns-datalog1 |
STM32Cube function pack for IoT node with BLE connectivity to save data from any combination of sensors and microphones configured up to the maximum sampling rate. |
fp-sns-datalog2 |
STM32Cube function pack for IoT node with BLE connectivity to save data from any combination of sensors and microphones configured up to the maximum sampling rate (evolution of the fp-sns-datalog1 pack). |
fp-ind-datalogmc |
STM32Cube function pack for STEVAL-STWINBX1 and EVLSPIN32G4-ACT to collect heterogeneous data, combining STWIN.box sensor information with STSPIN32G4 motor control data (derived from the fp-sns-datalog2 pack). |
fp-sns-flight1 |
STM32Cube function pack for IoT node with BLE connectivity to view time-of-flight sensors data in real-time. |
fp-sns-motenv1 |
STM32Cube function pack for IoT node with BLE connectivity to view environmental and intertial sensors data for F4, L0, and L4 based on the BlueNRG transceiver. |
fp-sns-motenvwb1 |
STM32Cube function pack for IoT node with BLE connectivity to view environmental and intertial sensors data for WB. |
fp-sns-smartag2 |
STM32Cube function pack for IoT node to read the ambient light, motion, and environmental sensor data by means of a NFC-enabled reader. |
fp-sns-stbox1 |
STM32Cube function pack for the Pro Mode of wireless multi sensor development kits. |
STM32Cube MCU Components
As mentioned above, the STM32Cube Components is an alternative delivery model to the STM32 Packages. In this case, each module is delivered as individual repos, allowing the customer to select and download only the pertinent features.
- Components available today: CMSIS - HAL/LL - BSP - Base MW (USB, FatFS, FreeRTOS, LwIP)
- Components upcoming: Other MW - Utilities
In each module README file you will find the cross compatibility information. When all modules will be available a set of new Manifest files (series by series) will be proposed to drive the user.
STM32Cube CMSIS
STM32Cube CMSIS core |
Description |
cmsis_core |
The STM32 CMSIS Core, issued from ARM (tm) publication. Please check the ST_README.md file. |
STM32Cube HAL Drivers
The HAL Drivers MCU Components propose the HAL and LL Drivers modules controlling all the HW IPs embedded in the STM32 products.
-
HAL Drivers:
- A set of portable abstraction APIs offering high level services, built around standalone processes. The HAL drivers are functionalities oriented, example: for the Timer peripheral, the APIs could be split into several categories following the functions offered by the IPs (Basic timer, capture, PWM...) for a communication IP: an initialisation function, eventually a configuration function and data transfer services (polling, interruption or DMA based)
- The compatibility SHALL be guaranteed across all the STM32 families for the generic APIs, including generic macros and common structures defines. Any specific feature is given in a dedicated extension model available in the associated extension files
-
LL Drivers:
- Low Layer Drivers: a set of basic functions with direct hardware access (no standalone process), this layer can be called either by applications or by the HAL drivers.
HAL and LL Drivers are provided in the same module/repo
The dynamic usage of HAL APIs is provided thru projects examples, available in the respective STM32Cube MCU Packages STM32Cubexx where xx correspond to the series
STM32Cube BSP Drivers
The BSP Drivers MCU Components propose the BSP Drivers modules, which are constituted from the:
- STM32Cube BSP Boards Drivers, based on the HAL drivers, and providing a set of high level APIs allowing a quick access to the boards services (e.g., audio, graphics, access to external memories).
- STM32Cube BSP Components Drivers providing a set of high level APIs allowing a quick access to the (e.g., audio codecs, LCD drivers, SD cards, MEMS). The link between these external components and the HAL drivers (e.g., a SD card and the
OSPI
/QSPI
HAL driver) is done within the BSP Boards drivers.
NOTE: A number of BSP components drivers (particularly of MEMS) come in two forms, each addressing a different purpose. For each one of such BSP components drivers, two repositories are available as explained below:
-
PID: Platform-Independent Drivers. Recognizable to their repositories' names \<bspcomp> (e.g., hts221). Are low-level drivers allowing direct access to components' registers. These drivers are independent of any software platform, as the acronym PID suggests. The complete list can be found here.
-
STM32: STM32Cube-compatible drivers. Recognizable to their repositories' names stm32-\<bspcomp> (e.g., stm32-hts221). Are hardware-abstracted drivers, specially designed to be compatible with the STM32Cube software offer, as the stm32-
prefix suggests. The complete list is provided below (refer particularly to tables MEMS
and Temperature Sensor
).
STM32Cube BSP Boards Drivers
STM32Cube BSP Components Drivers
STM32Cube BSP BLE Components Drivers |
Description |
stm32-wb-at |
The WB-AT BSP Component Driver |
STM32Cube BSP EEPROM Components Drivers |
Description |
stm32-m24256 |
The M24256 BSP Component Driver |
STM32Cube BSP E-Paper Display Components Drivers |
Description |
stm32-gde021a1 |
The GDE021A1 BSP Component Driver |
stm32-gdem0213b74 |
The GDEM0213B74 BSP Component Driver |
STM32Cube BSP Networking Components Drivers |
Description |
stm32-lan8742 |
The LAN8742 BSP Component Driver |
STM32Cube BSP NFC/RFID Tag Components Drivers |
Description |
stm32-m24lr64 |
The M24LR64 BSP Component Driver |
stm32-m24sr |
The M24SR BSP Component Driver |
stm32-st25dv |
The ST25DV BSP Component Driver |
STM32Cube BSP Power Monitoring Components Drivers |
Description |
stm32-ina230 |
The INA230 BSP Component Driver |
STM32Cube BSP Miscellaneous Sensor Components Drivers |
Description |
stm32-veml3235 |
The VEML3235 BSP Component Driver |
stm32-veml6030 |
The VEML6030 BSP Component Driver |
stm32-vl53l5cx |
The VL53L5CX BSP Component Driver |
STM32Cube BSP Temperature Sensor Components Drivers |
Description |
stm32-stlm75 |
The STLM75 BSP Component Driver |
stm32-stts22h |
The STTS22H BSP Component Driver |
stm32-stts751 |
The STTS751 BSP Component Driver |
STM32Cube BSP Wi-Fi Components Drivers |
Description |
stm32-es-wifi |
The ES-WIFI BSP Component Driver |
STM32Cube Middleware Libraries and Applications
STM32Cube Classic Core MW Applications |
Description |
stm32c0-classic-coremw-apps |
Applications based on ST USB Device, ST USB Host, FatFS, and FreeRTOS libraries for STM32C0 series. |
stm32h5-classic-coremw-apps |
Applications based on ST USB Device, ST USB Host, FatFS, and LwIP libraries for STM32H5 series. |
stm32u5-classic-coremw-apps |
Applications based on ST USB Device, ST USB Host, and FreeRTOS libraries for STM32U5 series. |
STM32Cube Open Bootloader MW Applications |
Description |
stm32l5-openbl-apps |
Applications based on the Open Bootloader library for STM32L5 series. |
stm32wb-openbl-apps |
Applications based on the Open Bootloader library for STM32WB series. |
stm32wl-openbl-apps |
Applications based on the Open Bootloader library for STM32WL series. |
STM32Cube USB Power Delivery Components
STM32Cube USB-PD MW Libraries |
Description |
stm32-mw-usbpd-core |
USB Power Delivery core stack library component for STM32 |
stm32-mw-usbpd-device-g0 |
USB Power Delivery device driver specific to STM32G0 for managing the Type-C physical layer |
stm32-mw-usbpd-ucsi |
USB Type-C Connector System Software Interface (UCSI) for STM32 |
STM32Cube USB-PD BSP Components Drivers |
Description |
stm32-bsp-usbpd-tcpp0203 |
TCPP03-M20 and TCPP02-M18 Type-C protection ICs driver for STM32 |
STM32Cube USB-PD Utilities |
Description |
stm32-util-usbpd-tracer-emb |
USB Power Delivery embedded tracer for debugging STM32 USB-PD applications |
STM32Cube Utilities and Miscellaneous repos
Repository |
Description |
stm32-external-loader |
Flashloaders source code of external memories embedded in the STM32 HW boards. |
stm32ai |
Open source AI offer in STM32 products. |
STM32_open_pin_data |
This repo provides all the information required for the pin and board configuration of products based on STM32 MCU. |