Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
This project tests the STM32C5's XSPI capability to drive QSPI display using the NUCLEO-C5A3ZG M.2/SerialMem connector. GitHub - stm32-hotspot/STM32C5-M2-Serial-Mem-QSPI-Display · GitHub
We wish to always improve our documentation. The best reviews and critics always come from the people that read it, so we would like to use this post to collect your thoughts and feedbacks. Please share what you like, dislike, what you think is missing, etc ... /The TouchGFX team
Dear STM32 Community, We believe that the example projects provided for the STM32Cube embedded software are a valuable resource when developing projects. We would like to better understand how developers use these examples in their workflow and explore ways to improve them. Therefore, we have a few questions we would like to ask: From where do you obtain the examples, and why? Are you working with the examples through the STM32Cube MCU packages, the STM32CubeMX Example Selector, or through GitHub? Is there a particular reason you prefer one channel over the others? How do you use the examples in your work with STM32 embedded software? Do you use the examples to learn how to use a driver or a feature, as reference code for implementation, and/or for debugging? What is working well, and what can we do to improve the examples and/or your experience working with them? You can either reply directly in this thread or feel free to send me a private message. &nb
TouchGFX 4.26.1 is now out. Please follow this link to download it.This version is a patch release and includes bugfixes of issues seen on TouchGFX Designer 4.26.1 version, as well as adding support of the new STM32H5F5 and Chrom-ART 2.Please visit our dedicated website for STM32H5 graphics to know more about high performance graphics on our most powerful Cortex-M33 MCU. Release details: Release date: March 2nd, 2026 New TouchGFX Designer Features Allow selecting a CMakeLists.txt file as the project file without requiring a STM32CubeMX .ioc file. Bugfixes in TouchGFX Designer Fix caching issue when changing text configurations and re-generating code. Fix outdated timestamp on files when importing a GUI. Fix faulty code generation when a Shape widget has two identical end points. Fix faulty code generation when a Shape widget uses an "interaction ended" callback. New TouchGFX Generator Features Support for STM32H5F5/E5 and STM32H5F4/E4 series with the
When creating a UI project, you may need widgets that are not part of the TouchGFX library. To create your own graphical element, the TouchGFX team suggests using the Custom Container approach. Since TouchGFX 4.20 it is possible to export and import Custom Containers into different projects. The TouchGFX team is working on developing new custom containers that could be useful for our own projects. You will find them under this post. The first widget is a keyboard. We hope that the idea will please you and that it will be useful for your projects ;)! We invite you to do the same. In the guide attached you will learn how to create your own widgets and how to export them. We wish to create a space where the community can find and share custom widgets. To keep this space a good place for collaboration between all of us, we invite you to share your project in a zip format which includes you widget (.tpkg) and a short document explaining your widget. Your post needs
Dear MCSDK users, The full MCSDK documentation is embedded in the Motor Control Workbench tool. Refer to Workbench tool > About > Documentations > Documentation.This document provides: Introduction: Includes startup guide links for MCSDK, HSO feature, MC Workbench and Pilot tools. User manual: Description of Motor Control features, algorithms, reported errors and procedures to address them. Motor control firmware files, functions, and data. You can also access the HTML documentation at the following location:file:///C:/_your_install_folder_/MC_SDK_x.y.z/Documentation/html/index.html Motor Control wiki page with FAQ page for MCSDK versions prior to MCSDK6.x
Dear MCSDK users, MCSDK version 6.4.0 is now available: Download It here. This version of the new Motor Control SDK 6 series (X-CUBE-MCDSK) provides mainly FOC and 6Step improvements, here are the main changes for this version: Motor Control Features: Common: Regular conversion manager (RCM) component has been modified to reduce memory footprint and to meet the requirement of synchronizing ADC conversions "regular" and "injected". 6Step: Increased 6Step firmware architecture efficiency and reduced FLASH and RAM Memory footprint Added Initial Position Detection and On-The-Fly Startup features. Added Software Current Sensing Monitoring mode supported for series STM32C0xx/F0xx/F3xx/G0xx/G4xx. FOC: New Maximum Modulation Index (MMI) computation compatible for all sensor-less or sensor algorithms. Mitigated speed overshoot during startup. Added ICS (Isolate Current Sensors) support for profiler for F3, G4, F4, F7, and L4. Added the ability to switch to/from primary to aux
The documentation of the Board descriptions format is now available on Motor Control Boards Description Wiki page, this documentation is compatible with MCSDK versions from 6.1.2. Board Descriptions are used by the ST motor-control workbench to enable users to configure their motor-control application and produce a software project that implements it following its hardware component features. Wiki Link A new documentation will arrive soon and will detail these features: Current Sensing: three-shunt-raw-currents-differential-internal-opamp-with-external-gain-and-filtered-adc-intput-hwv ICS Phase Voltage sensing feature Driver Protection feature The descVersion property is equal to 4 from version 6.2.0 of the MCSDK and the "contentVersion" property is added. For questions regarding the board manager, please respond under this post. Regards
Please go and visit our wiki pages where you can find a lot of information on our wireless product families (WB, WBA, WL) and the supported protocols: BLE, Zigbee, Thread, Matter, Lora, ... To begin your technical journey, please start from this top page: https://wiki.st.com/stm32mcu/wiki/Category:Connectivity This top page will guide you to the first steps to develop a wireless application using connectivity protocols on ST wireless microcontrollers. For BLE protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_BLE_with_STM32https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Bluetooth_LE_Audio You can find information on BLE Certification, BLE Features, BLE Mesh, BLE Audio, … For Zigbee protocol, please visit: https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Zigbee You can find information on Zigbee certification, Zigbee Features, BLE-Zigbee concurrent mode, … For Tread protocol, please visit: https://wiki
Dear all, The X-CUBE-MATTER Expansion Package is now available on our official website following this link MATTER - Matter software expansion for STM32Cube - STMicroelectronics It is a reference implementation for the demonstration of Matter on STM32. It is ready for prototyping a Matter end-device on a reference development platform. Refer to STMicroelectronics Matter wiki articles at https://wiki.st.com/stm32mcu/wiki/Connectivity:Introduction_to_Matter to get started with matter for the supported STM32 platforms. Kind regards, Ouadi
In order to have a quick response to your forum posts, the best way to ask the question is:- Give the version of the MCSDK used. - Say if the problem concerns a tool (MC Workbench, Motor Pilot, Motor Profiler, etc...) - Provide picture of tools interface when is possible.- Attach the STWB6 file of the project or the JSON of the board when possible.Choose a label for the post ( Motor Pilot MC Workbench, etc...), you can select it to the right of where you write the message.Here is a template that you can reuse:[PN]: Part Number of the products used[VERSION]: Version of MCSDK[TOOL]: Name of tool ( Firmware, MC WB,MC PROFILER, etc..)[DETAILS]:symptom observed or request/question details[EXPECTED BEHAVIOR]:if related to performance then what is the target[HOW TO REPRODUCE]:input, output, steps But before entering a new post, please consider to first check our Motor Control documentation available via Work Bench Tool by clicking on About -> Documentations -> Documentation -> i
Hi ST expertSTM32G473cbt6 and STM32G474cbt6 are pin-to-pin compatible, can their software projects be designed into one project?
/* USER CODE BEGIN Header *//** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * <h2><center>© Copyright (c) 2022 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under BSD 3-Clause license, * the "License"; You may not use this file except in compliance with the * License. You may obtain a copy of the License at: * opensource.org/licenses/BSD-3-Clause * ****************************************************************************** *//* USER CODE END Header *//* Includes ------------------------------------------------------------------*/#include "main.h"#include "seven_seg.h"#include "timer.h"#include "74HC595.h"#include "led.h"#include "welding_mode.h"#include "adc.h"#include "led_
I have a question regarding your company’s NUCLEO-H753ZI model.I evaluated two boards of this model (let’s call them a and b), and observed the following phenomenon exclusively on ADC channel 2 of board a. [Phenomenon]When we applied various input voltages and measured the output, we found that the output dropped by approximately 800 LSB (equivalent to about 0.04 V) within the input voltage ranges of 0.825–1.65 V and 2.475–3.3 V (1/4–2/4 and 3/4–4/4 of full scale).*The input voltage conditions (accuracy, ripple) were identical across all boards and channels. [Board Information]ADC Channel 2 Assignment: PA3Resolution: 16-bit modeSampling Time: 16.5 cyclesSampling Frequency: 250 kHz (timer-triggered) Since this phenomenon is not observed on other boards or channels, we suspect that some kind of malfunction is occurring. Based on the symptoms, we also suspect a failure within the successive approximation ADC. If you know the cause of this phenomenon, please let us know.Also, if there are
BOARD: STM32H743IITXACTICLE FOLLOWED: https://community.st.com/t5/stm32-mcus/how-to-implement-a-usb-device-composite-in-stm32h5/ta-p/708078Hello everyone,I was trying to use USB CDC+MSC in composite mode. After following the article mentioned above, i was able to build the project. But after running i was able to only get MSC (as shown in pc) and getting the CDC port with windows error 10.Few things i have changed, in usbd_desc.c updated these lines 0xEF, /* bDeviceClass */ 0x02, /* bDeviceSubClass */ 0x01, /* bDeviceProtocol */ Also i have updated CDC_IN_EP, CDC_OUT_EP, CDC_CMD_EP so it should not match MSC_EPIN_ADDR and MSC_EPOUT_ADDR #ifndef CDC_IN_EP #define CDC_IN_EP 0x82U /* EP1 for data IN */ #endif /* CDC_IN_EP */ #ifndef CDC_OUT_EP #define CDC_OUT_EP 0x02U /* EP1 for data OUT */ #endif /* CDC_OUT_EP */ #ifndef CDC_CMD_EP #define CDC_CMD_EP 0x83U /* EP2 for CDC commands */ #endif /* CDC_CMD_EP */ #ifndef MSC_EPIN_ADDR #define MSC_EP
Hi all,I currently working on a project using TouchGFX, multiple tasks are using functions from <math.h> which are not re-entrant, so I have them mutex protected. The drivers using these functions are written in C.Does anyone know if the TouchGFX library uses any non re-entrant library functions? Do I need to be careful with anything I use in the application?Kind Regards,Anthony
Hello,I am exploring the possibility of developing a smart floor-cleaning machine for commercial environments.The initial concept may include:Motor control for brushes and wheels Water-level and pressure sensors Battery monitoring Obstacle detection Bluetooth or Wi-Fi connectivity Basic usage and maintenance loggingMy background is in the floor-cleaning industry rather than embedded-system development. Our current business website is https://floorcleaningsydney.com.au/, which provides context about the types of floor-cleaning work and environments the machine may be used in.Which STM32 MCU family would be a practical starting point for this type of prototype?Would an STM32G4 be appropriate because of its motor-control features, or would another STM32 family be easier for an initial prototype?I would also appreciate recommendations for a suitable STM32 development board and motor-control expansion board.
I purchased a brand new Nucleo board. plugged it into my computer, USB device detected, please update firmware; yes; then the process stopped “Error 33” Now my BRAND NEW nucleo board seems bricked. Is there any recovery mode? I have tried several times on STM32 Cube Programmer; The board is detected, Does anyone have any suggestions? - This does not bode well for my first introduction to ST. What a flaky system. I have changed cables etc, several different combinations, changed USB ports, rebooted, all of the standard stuff. It seems as though the Nucleo board’s serial number is being detected. The firmware update process starts, runs for a few seconds, several red LED flashes, then halts and gives error 33.
Hello everyone,I'm a final-year Electrical and Electronics Engineering (EEE) student aspiring to build my career in the Electric Vehicle (EV) industry, particularly in areas such as Battery Management Systems (BMS), Power Electronics, Motor Control, Embedded Systems, and eventually R&D.I recently decided to learn the STM32 NUCLEO-F303RE as my primary development platform because I understand it is widely used for motor control, real-time embedded applications, and industrial systems.I am a complete beginner to STM32 and embedded systems (although I have basic C programming knowledge), and I'd like to learn it the right way rather than just following random tutorials.I'm looking for guidance on the following:What is the best learning roadmap from beginner to advanced for the STM32 NUCLEO-F303RE? In what order should I learn the peripherals (GPIO, Timers, PWM, ADC, UART, SPI, I2C, CAN, DMA, etc.)? Which official documents should I read first (User Manual, Datasheet, Reference Manual,
We need to use an ST67W611M1 on an STM32H5, running the Zephyr operating system in softAP mode. Currently, the Zephyr driver for the ST67W611M1 only supports STA mode. Is there a roadmap for this feature?Thanks,Denis M.
HelloI have my own board with STM32G071KBT6 microcontroller. I successfully comunicate with charger by PD protocol and I receive up to 21 V (PPS). But I need above 21V. I have power bank with AVS up to 28V and USB cable with e-marker (up to 240W). How to configure the stack to receive EPR parameters? I have no TCPP IC, but I use my own protection circuit. In the trace the EPR commands isn't present. I use STM32CubeIDE 2.1.1 and STM32CubeMX 6.17.0.Thanks a lot and best regards
Hello,another day, another N6 "issue" :)I want to do RAM to RAM copy by HPDMA, but the data never get copied from Src to Dest, Dest always stays unmodified. I have checked the 'DMA_RAMToRAM' example for N6 and went from there, but with no success.DMA Init:__HAL_RCC_HPDMA1_CLK_ENABLE(); HAL_NVIC_SetPriority(HPDMA1_Channel1_IRQn, 0, 0); HAL_NVIC_EnableIRQ(HPDMA1_Channel1_IRQn); handle_HPDMA1.Instance = HPDMA1_Channel1; handle_HPDMA1.Init.Request = DMA_REQUEST_SW; handle_HPDMA1.Init.BlkHWRequest = DMA_BREQ_SINGLE_BURST; handle_HPDMA1.Init.Direction = DMA_MEMORY_TO_MEMORY; handle_HPDMA1.Init.SrcInc = DMA_SINC_INCREMENTED; handle_HPDMA1.Init.DestInc = DMA_DINC_INCREMENTED; handle_HPDMA1.Init.SrcDataWidth = DMA_SRC_DATAWIDTH_HALFWORD; handle_HPDMA1.Init.DestDataWidth = DMA_DEST_DATAWIDTH_HALFWORD; handle_HPDMA1.Init.Priority = DMA_LOW_PRIORITY_HIGH_WEIGHT; handle_HPDMA1.Init.SrcBurstLength = 2; handle_HPDMA1.Init.DestBurstLength = 2; handle_HPDMA1.Init.TransferAllocatedPort = DMA_SRC_ALLOC
Hello,We are using STM32 Motor Profiler to identify the parameters of an IPMSM motor, but the profiling process always stops at approximately 7% and reports a “Driver Protection” fault.Hardware configuration: - MCU board: NUCLEO-F446RE - Motor-control expansion board: X-NUCLEO-IHM09M2 - Power board: STEVAL-IPMM15B -Motor type: IPMSM Thank you.
Hello,I noticed that in the STM32Cube_FW_H7_V1.13.0 distribution, the folder \Drivers\CMSIS\DSP\Lib has disappeared.Is there a document available that explains how to compile these libraries, and what are the options and defines to set for an STM32H743?Thank you.
Hello,We use MB1551 TFM example project on our industrial board. For technical reason, we have modified the card entry point from USART1 to USART3.(TFM\TFM_SBSFU_Boot\Src\low_level_com.c, “COM_INSTANCE”)(TFM\TFM_Appli\Secure\Src\low_level_com.c, “COM_INSTANCE”)The log of SBSFU doesn’t appear on UART target.So next, we are trying to debug TFM SBSFU of a STM32U585 project as shown in this tutorial : We use the SBSFU script “regression.sh” and flash SBSFU, loader, secure and unsecure application with “TFM_UPDATE.sh”.The JTAG connection works correctly to open CubeProgrammer and read option byte for example.Finally, we set the tutorial debug configuration and launch the debug without error. Debug launch but stop with this message :After, we can only stop the simulation or terminate it. We have couple of questions.First of all, can we come to the conclusion that our MCU is booting ?Secondly, Is it possible to change USART1 to USART3 as we did ?Why do we have break point before the debug s
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.