Get ready for the STM32 Summit 2026 | Online, November 3
Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
[PN]: STSPIN32G4 (custom board), AMT103 encoder[VERSION]: MCSDK v6.4.1[TOOL]: MC WB[DETAILS]:I need to implement torque control for my custom board and BLDC motor using a quadrature encoder as the primary feedback sensor.First, I successfully profiled my motor in sensorless mode using the SDK and incorporated those values into my Workbench project. When using this sensorless configuration outside of the Profiler, I can reliably drive my motor in both torque and speed control modes (using MC_FOC_SDK.qml). At this point I have also configured the encoder as an auxillary sensor, and can see its measured RPM in Motor Pilot match the sensorless RPM feedback. This encoder has an index pin, but I am not using it in my configuration since I do not want to run in Position Control mode.Now, I have reconfigured my project to use the encoder as the primary sensor and "sensorless" as the auxillary. The result in torque control mode is that the rotor locks into place and resists manual spinning. Thi
Hello everyoneWhen I add OpenAMP to Pinout & Configration of .ioc and build it, the build failsThe steps are as follows:Create a new project (fuga_oka) for STM32MP277F-EV1 in STM32CubeIDEBuild this project. The build will finish successfullyAdd OpenAMP to this projectOpen fuga_oka.ioc - Select OPENAMP in Pinout & Configration -> middle ware & Software Packs - Check M33NS(Cube) - Also check Activated - Save fuga_oka.iocBuild the project. Some errors will be reported and the build will failAn excerpt of the error part of the build log. The raw log is attached separately~~~C:/STM32MP2xx/fuga_oka/Middlewares/Third_Party/OpenAMP/libmetal/lib/system/generic/condition.c:12:10: fatal error: metal/condition.h: No such file or directory12 | #include <metal/condition.h>| ^~~~~~~~~~~~~~~~~~~~compilation term
We are developing a safety-related application based on an STM32 microcontroller and aligning our design with IEC 60730 Class B requirements. In our application, we implement fault detection mechanisms for analog and digital signals (e.g., sensor inputs, voltage monitoring, heater control). Due to noise and transient conditions, we are considering adding a software debounce/filtering time before declaring a fault. We would like clarification on the following points: Does IEC 60730 Class B explicitly require or prohibit the use of debounce time for fault detection? Is it acceptable to introduce a software debounce (e.g., 100 MSto a few seconds) to avoid false fault triggering? Are there any recommended guidelines from ST for implementing debounce while still complying with Class B requirements? Does the STM32 IEC 60730 Class B self-test library include any reference implementation or best practices for handling such debounce scenarios?
I am using a Nucleo STM32F411, without any hardware modification.I am working on a project which involves only UART and Debug monitor interrupt, so my code does not write anything to flash nor to option bytes. Yet it seems that the board is bricked after running my firmware. I tried STM32_Programmer_CLI and STM32CubeProgrammer to erase the flash but both fail:is there a way to recover the board ?
Hello There, Where can I find the example code for interfacing L9305 through SPI? Please suggest some sample Code.
What is the proper way with position control to reset the current angle by for example 50 rotations towards a smaller value?If the theta keeps increasing forever, with the float number representation, there will be an error during continuous operations in the same direction. (Smallest increment of a float that is not able to represent 1 as smallest number:mantissa_bits = 23 precision_bits = mantissa_bits + 1 // include implicit leading 1 N_max_exact = 2 ^ precision_bits = 2 ^ 24So if theta reaches 16.777.216 or 2.6 million rotations, there will be a significant error relative to the motor angle. Is that handled in the MCWB position control somehow? What is the intended usage for this problem?Below is the intended code-example with increasing position by 180°*of the output shaft after a gear ratio of 50 each cycle:/* * MotorControl_Interface.c * * Created on: 26.03.2026 */ #include "MotorControl_Interface/Inc/MotorControl_Interface.h" #include "main.h" #include <cmsis_o
Hiya. I'm having some trouble understanding how an STM32 MCU communicates with an image sensor via DCMI if they operate on different voltages.My STM32U5Gxxx operates on 3V3, whereas my selected image sensor has its VDDIO at 2V8 (max input of 3V1). How can I make sure that all the signals I send to the sensor are at 2V8 instead of 3V3? Is there a certain VDDIOx pin to be tied?Are there any reference designs or schematics that are helpful?
Hello,I created a new project by using the STM32 Motor Control Software Development Kit (version 6.4.1). The project code was generated. I need a CAD of the project circuit to connect all the hardware parts. Could you please specify how to generate a CAD of the circuit? Thank you.
Hello everyone!I’ve been struggling for a while with TrustZone projects on the NUCLEO-U575ZI-Q. I’ve tried both the STM32CubeU5 example projects (Templates/TrustZoneEnabled/ and Examples/GPIO/GPIO_IOToggle_TrustZone/) and my own CubeMX-generated project, but I can’t get any of them to run successfully. I'm using STM32CubeIDE.I've tried running the example projects, this is the error I get when building:make: *** No rule to make target '/home/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal.c', needed by 'Drivers/STM32U5xx_HAL_Driver/stm32u5xx_hal.o'. Stop.I've set the Option bytes correctly, Secure Area 2 is set to NonSecure and TZEN bit is set to 1.I've also generated a project with CubeMX:Enabled TrustZone, applied Application Regions Settings to Linker files/Peripherals.When the non-secure world calls NonSecure_ResetHandler(), I get a HardFault at address 0x08100d81.Questions:How can I fix the Makefile error in the GitHub examples?Why would calling NonSecure_ResetHandler() from a Cube
Working with AutodevkitStudio using AEK$MCU-C4M3A and AEK$MCU-SPC5LNKA, how to create a project for led blinking give step by step explaination.
The UCPD Dead-battery mechanism is a major gotcha in many new STM32, as it creates a surprising bond between seemingly unrelated pins, and is on by default. There cannot be enough warnings to this, as users not intending to use the PD (which is probably the vast majority) have no incentive to actively seek for such bond.As much as I abhor the whole Cube ecosystem, this is the one case where a sin committed in hardware design decision can be made right at least for those who click in the CubeMXes. The above bond can be highlighted in the pin diagram, and auto-generated code can disable DBCC automagically for all who don't actively enable PD.JW
Hi,I'm working on a project with your STM32WB5MM module, I managed to enable ZigBee and connect to the network, but I'm having trouble changing the device name, it keeps identifying itself as default value (STM32WB).ZigBee Stack: 1.24.0FW Type : FFD Zigbee stackIn function APP_ZIGBEE_StackLayersInit() I add:struct ZbZclBasicServerDefaults basic_defaults = { .app_version = 1, .stack_version = 2, .hw_version = 1, .mfr_name = "0TestName", .model_name = "0LOCKZ1A", .date_code = "02026-03-31", .power_source = ZCL_BASIC_POWER_DC, .sw_build_id = "0v1.0" }; static void APP_ZIGBEE_StackLayersInit(void) { APP_DBG("APP_ZIGBEE_StackLayersInit"); zigbee_app_info.zb = ZbInit(0U, NULL, NULL); assert(zigbee_app_info.zb != NULL); // uint8_t device_name[] = {"0TestDevice"}; // device_name[0] = 10; // ZbZclBasicWriteDirect(zigbee_app_info.zb, ZB_ENDPOINT_BCAST, ZCL_BASIC_ATTR_MFR_NAME, device_name, device_name[0]); basic_defaults.mfr_name[0] = strlen((char*)basic_defaul
Hello Max VIZZINI,i'm facing issue in printf() in AUTODEVKITSTUDIO. im using printf() in the code after compiling im getting this error c:/autodevkitstudio-2.7.0/eclipse/plugins/com.st.tools.spc5.tools.gnu.gcc.ppcvle.win32_4.9.4.202511271245/toolchain/bin/../lib/gcc/powerpc-eabivle/4.9.4/../../../../powerpc-eabivle/lib/e200z4\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':sbrkr.c:(.text._sbrk_r+0x1a): undefined reference to `sbrk'c:/autodevkitstudio-2.7.0/eclipse/plugins/com.st.tools.spc5.tools.gnu.gcc.ppcvle.win32_4.9.4.202511271245/toolchain/bin/../lib/gcc/powerpc-eabivle/4.9.4/../../../../powerpc-eabivle/lib/e200z4\libc.a(lib_a-writer.o): In function `_write_r':writer.c:(.text._write_r+0x1e): undefined reference to `write'c:/autodevkitstudio-2.7.0/eclipse/plugins/com.st.tools.spc5.tools.gnu.gcc.ppcvle.win32_4.9.4.202511271245/toolchain/bin/../lib/gcc/powerpc-eabivle/4.9.4/../../../../powerpc-eabivle/lib/e200z4\libc.a(lib_a-closer.o): In function `_close_r':closer.c:(.text._close_
Hi everyone,I’d like to learn more about FOC algorithms and eventually design my own motor driver. For this purpose, I’m planning to use the STEVAL-CTM009V1 to drive a pump or traction motor similar to those used in forklifts.In general, forklifts with around 2-ton lifting capacity are based on a 48V architecture, and I already have access to such a system for testing.My main question is:Can I drive an ACIM (induction motor) with the STEVAL-CTM009V1? I’m not fully sure about its capabilities in this regard. If it is possible, are there any reference projects or examples that I can follow?Also, when using Motor Control Workbench, which control board would you recommend pairing with the STEVAL-CTM009V1?I should also mention that I’m already familiar with FOC concepts and have experience designing forklifts and telehandlers, but this will be my first time designing a motor driver from scratch, so I’d really appreciate any guidance or best practices.Thanks in advance for your help!
Hi, ST Community, I am working with an lis2mdl on a STEVAL-MKI217V1 board and I used lis2mdl_hard_iron.c this Application and I was able to get data_raw_magnetic and magnetic_mG I want API to get the Angle of Rotation of the sensor
1. Requirement description It is expected that the terminal can join the network with the specified panid 2. Problems encountered during the test 2.1 It was found that the given function ZbStartup cannot enable the terminal to join the network with the specified panid. 2.2 Attempt to use a lower-level function, the network layer function ZbNlmeNetDiscReq, to make a network discovery request. This function returned successfully. In the corresponding callback function, use ZbNwkGetIndex to obtain the network list. This function also returned successfully. However, the network list information has never been obtained (the actual space does have a network). If the network information can be obtained at this stage, the panid can be filtered, but currently, the network information cannot be obtained. 2.3 By using the ZbNlmeJoinReq function of the network layer to join the network, it was found that this function was only declared in the header file zigbee.nwk.h. This function was not defined
Hello,I am testing LSM6DSO and LSM6DSO32 on Zephyr.As these 2 sensors are pin compatible, I prepared 2 identical boards, one is mounted with LSM6DSO and LSM6DSO32 on another. (The sensors are connected to MCU through SPI interface.)My purpose is that I can use one single Zephyr image to drive the IMU sensor no matter which one of these 2 sensors is mounted on board.It looks promising because one lsm6dso.c driver is provided in Zephyr, and this driver defined DT_DRV_COMPAT for LSM6DSO32. And Zephyr's official document also confirmed this compatible as well.So I use the default sample/sensor/lsm6dso app for a simple testing.The sample can be built and run for the board with LSM6DSO. The output from the uart console looks making sense.But I encountered some problems when configure the dts file for the board with LSM6DSO32.At first I config the dts file like this:lsm6dso: lsm6dso@0 { compatible = "st,lsm6dso32", "st,lsm6dso"; ... }This can not compile, the c
I'm recently working on benchmarking a various implementations and configurations of cryptographic algorithms such AES-GCM on STM32. Two of these tested function are the following :void test_aes_hardware(void) { uint32_t plaintext[DATA_SIZE/4]; uint32_t ciphertext[DATA_SIZE/4]; uint32_t decrypted[DATA_SIZE/4]; uint8_t key_bytes[32]; uint8_t iv_bytes[16]; uint32_t key[8]; uint32_t iv[4]; uint8_t ikm[4]; uint8_t salt[4]; uint8_t info1[] = "HW_AES_KEY"; uint8_t info2[] = "HW_AES_IV"; uint32_t rnd; /* RNG */ HAL_RNG_GenerateRandomNumber(&hrng, &rnd); memcpy(ikm, &rnd, 4); HAL_RNG_GenerateRandomNumber(&hrng, &rnd); memcpy(salt, &rnd, 4); /* KDF */ xkdfBlake(key_bytes, 32, ikm, 4, salt, 4, info1, sizeof(info1)); xkdfBlake(iv_bytes, 16, ikm, 4, salt, 4, info2, sizeof(info2)); memcpy(key, key_bytes, 32); memcpy(iv, iv_bytes, 16); for (int i = 0; i < DATA_SIZE / 4; i++) { uint32_t w = (i*4 + 1) |((i*4 + 2) << 8) |((i*4 +
As addicated in DataSheet and CubeMX, there are two FDCAN1_Tx and two FDCAN1_RX in STM32G431CBT6. In my Prj, I used PA12 for Tx and PB8-BOOT0 for Rx, and my chip can only work in FDCAN_MODE_Ext._Loopback, and without any receive func be implemented. After I changed the FDCAN pin from PA12&PB8 to PB9&PB8 and adjusted my wire routing, the problem has be handled. so If the STM32G4 can use FDCAN pin from different port in some case? If not. I think it should be fixed in CubeMX, because CubeMX allows users to select CAN pin from different ports without any warning.
Dear All,I am currently working with STM32MP257 however it gives me lot of confusions. Looking into the Linker script the memory has been defined as follows:MEMORY{FLASH (xrw) : ORIGIN = 0x80100600, LENGTH = 8387072NS_VECTOR_TBL (xrw) : ORIGIN = 0x80100000, LENGTH = 1536VIRTIO_SHMEM (xrw) : ORIGIN = 0x812f8000, LENGTH = 32KIPC_SHMEM_1 (xrw) : ORIGIN = 0x81200000, LENGTH = 992KRAM (xrw) : ORIGIN = 0x80a00000, LENGTH = 1024K}Where I fail to understand why the RAM has been divided as I had already set them in RISAB. My understanding or assumption was the memory should have been divided into SRAMs, RETRAM, SYSRAM etc as per RISAB configuration.I don't if I have to add them manually again in linker script.Moreover, the device tree (.dtsi) for OpenSTlinux also does not mention any memory divisions as in examples. The file: stm32mp257f-hrt-mc-stm32mp2-mx-resmem.dtsi only has the following code:// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)/** Copyright (C) 2026, STMicroelectro
Config:stm32h743iiT6SDRAM 32mb model w9825g6khFLASH 32mb QSPI 1 bank 4 lines w25q256jv2Screen 7 inch 24bit rgb888I am really stuck on stm32 jpeg hardware vs libjpeg working 1 Decoding 1024x600 stored in qspi flash with jpeg harware stuck with the jpeg markers === FINDING JPEG IN QSPI === Found JPEG at offset 0x069000 (address 0x90069000) :triangular_ruler: Found SOF0 at offset 484: 160x94 Dimensions: 160 x 94 Found JPEG at offset 0x089000 (address 0x90089000) :triangular_ruler: Found SOF0 at offset 552: 160x93 Dimensions: 160 x 93the image is really 1024x600 stored has standard in photoshop to avoid progressive stuff.... Offset 7252: SOI (start) - Offset 7418: SOF for 160x94 thumbnail - Offset 11289: EOI for thumbnail - Offset 15044: SOF for 1024x600 main image ← Your real image! - Offset ???: EOI for main image Is there any body witch have faced those problems to hardware jpeg decode can you share your experience .....
Hi everyone, I’m having trouble launching STM32 ISP IQTune ver. 2.0.0 on Windows 11. When I start the application, I get the following error message:“The IQTT service could not be started.” The message also mentions checking that port 7132 is free. To verify this, I ran the following command in the Command Prompt:netstat -ano | findstr 7132 However, it returned no output, so I assume that port 7132 is not in use.Has anyone encountered this issue before? What could be causing this error, and how can I resolve it? Any help would be greatly appreciated. Best Regards,Perorin-Q
Hi, I am looking for the burn-in specifications for a MEMS accelerometer device/sensor. Could you please help me with this information? Thank you
Hi, I´m designing an USB host device (with STM32U5). Therefore I´ve ha a look at the schematics of the STM32U575I-EV. Could someone explain what the MOSFETs are for? Best regards, Achim
Hi Team, do ST offer a high-g accelerometer, similar to the LSM6DSV320X on the STEVAL-MKI251A, that supports over 400g with integrated free-fall detection?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.