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
I laid out a 2 layer board. It works fine but fails radiated emissions by 3 dB. Would a 4 layer board likely reduce this enough?
Hello,I’m bringing up a custom board based on STM32MP135F and cannot read OTP reg. I am using scarthgap based Yocto distribution “openstlinux-6.6-yocto-scarthgap-mpu-v26.06.10”I modified DTS of TF-A, Optee, u-boot according to my board. File generated from openstlinux-6.1 version, I am able to able to do read and write operation.I am able to program EMMC but not able to do OTP read and write. Getting following error on COM port-optee optee: TA_NVMEM invoke failed TEE err: ffff0006, err:0Error: OTP read issue -5dfu_read: Failed to fill bufferError Log from ST-programmer CLI-Error: Read OTP Partition failedError: Uploading the OTP structure failedError: Initializing the OTP structure failedDo I need enable any configuration or any build modification for this openstlinux-6.6?
Hi ST Community team,Our STM32F103‑based project uses FreeRTOS integrated by STM32CubeMX, currently kernel version is V10.3.1.Questions:1. Does ST have any official roadmap / plan to update the bundled FreeRTOS kernel inside CubeMX STM32F1 software pack to a newer FreeRTOS kernel release (e.g. V10.6.x)?2. What is ST’s official recommended solution for users who want a newer FreeRTOS kernel, given CubeMX will overwrite custom‑replaced kernel sources on code regeneration?3. Are there any known compatibility constraints when manually replacing underlying FreeRTOS kernel while keeping ST’s CMSIS‑RTOS v1 wrapper unchanged?Our context:‑ Application uses almost exclusively CMSIS‑RTOS v2 APIs, very few direct native FreeRTOS calls.‑ No FreeRTOS+TCP network stack, no network‑facing interfaces.‑ Concern comes from CRA / component long‑term maintainability requirement.Thanks & best regardsAllen
As shown on the website below, the Arc Fault Circuit Interrupter (AFCI) solution is introduced as an Edge AI use case.https://www.st.com/content/st_com/en/st-edge-ai-suite/case-studies/direct-current-arc-faults-detection.htmlFor hardware development reference, would it be possible to purchase the development board shown on the page?It would also be helpful if you could share the schematic and BOM of the PCB.
I am using IHM.08M1 with nucleo.stm32g474.I’ve decided to try lowering this parameter from 2275 rpm (maximum motor speed) to 250 rpm (maximum speed for my application): As you can see, when I change the value, an error in Speed Sensing Config appears: The auxiliary sensor section is not active!I don’t understand where the error lies.Any value lower than 1600 rpm gives me an error; I don’t understand why
Editor hover no longer works on my STM32CubeIDE installation, and I have no idea why.Hover setup is like this, which I believe should be correct. Also, I haven’t changed anything (first time seeing this menu myself).I haven’t found a menu or anything that turns the hover feature off. Does anyone have an idea what the problem could be?When a feature is not longer working or available, I really find out how often I use it… Edit: Version is 2.2.0. Now checking for updates… Nope, no updates.
Hi,I am using:STM32U575VGT6Q STM32CubeIDE 2.1.1 STM32Cube FW U5 V1.9.0 X-CUBE-FREERTOS 1.6.0 / FreeRTOS 11.2 TrustZone enabled FreeRTOS running in NonSecure (TZ_Non_Secure) FreeRTOS Secure support enabled (TZ_Secure)The generated NonSecure project fails at link time with:undefined reference to `SecureContext_AllocateContext'undefined reference to `SecureContext_LoadContext'undefined reference to `SecureContext_FreeContext'undefined reference to `SecureContext_SaveContext'undefined reference to `SecureContext_Init'undefined reference to `SecureInit_DePrioritizeNSExceptions'Some of them are followed by:Unknown destination type (ARM/Thumb)dangerous relocation: unsupported relocationThe NonSecure linker correctly links:Secure/Debug/secure_nsclib.obut CubeMX did not copy the required Secure FreeRTOS source files into the generated project:secure_context.csecure_context_port.csecure_heap.csecure_init.cOnly the corresponding .h files were copied under:Middlewares/Third_Party/FreeRTOS/Source/p
I have switched an STM32H562 to PROVISIONING product state (from my bootloader code).The plan was to program DA data (certificate), then set TZEN_ENABLE, and finally set product state to CLOSED.When I do this all in one go, with the STM32CubeProgrammer tool, without power cycling the STM32H5 in between, I can set the product state to CLOSED, and after that perform a REGRESSION using the DA certificate and private key. So I know my procedure and DA data must be correct. However, I am now trying to do this step by step, from within my bootloader code.After the first step, just setting product state to PROVISIONING, when the MCU power cycles, I cannot recover.I cannot write DA data from STM32CubeProgrammer, because I get this error:16:26:35 : Error: Unable to reset MCU !16:26:35 : Error: OBKey Provisioning failedI cannot directly write the product state to OPEN (which makes sense)Also, writing it to REGRESSION is not possible in STM32CubeProgrammer.I think REGRESSION is only possible usin
Hello,Do you have a FDA accession number for the VL53L1X ToF chip? thanks.
Hello together,my Problem ist that I can find randomly (a few times per hour) timestamps which are delayed by 1ms, after that the delays consist and kind of add up. The cause for this is probably the SysTick_Handler firing 2x in a row and increasing my Uptime_ms timestamp. But here the extended information: I have a STM32H7 connected to a ADC via SAI. As I want precise time measurements my Code for capturing the time in the SAI_IRQ is the following: { uint32_t primask = __get_PRIMASK(); __disable_irq(); SAI_isr_systick = SYSTICK_VALUE; SAI_isr_uptime_ms = hfwtmr_Uptime; __set_PRIMASK(primask); // restore PRIMASK state}with:#define SYSTICK_VALUE (SysTick->VAL)volatile int64_t hfwtmr_Uptime = 0;volatile int64_t SAI_isr_uptime_ms = 0;volatile uint32_t SAI_isr_systick = 0; For setting up the Systick HAL_InitTick() is used. As the STM32H7 is running with 480MHz the systick gets loaded to 480000 every time. A screenshot auf the call hierarchy is added after the code segmen
I’ve tried to include the ITCM for a while w/o sucess only getting a few cells cooperating leaving the lions share as ???????? in the memory view (STM32CubeIDE 2.2.0). Notably, the DTCM works fine after initiation. I start out (from reset) to verify the ICTMCR/DTCMCR as enabled, identifying the size as 256KB (both).After this I blindly writes 0 (32-bit) all over the place, this makes a very few ITCM cells 0x00000000.If I only initiates DTCM, a few ITCM cells become visible but what looks like randomized not 0.As stated earlier the full DTCM is now 0x00000000. The DBGMCU_IDC isDevID:0x499RevID:0x2000 Somebody sees what I’m doing wrong?All help appreciated!/Henrik
hi guys I need to put a F/W program on my board that my coworker made but there’s a problem with CN6 so I have to use TAGand I can’t use USE port for power so I can use only VIN when I was using the STM32CubeProgrammer then I got this error I changed mode, reset mode and frequency but it couldn’t help Does any body know to solve this problem? please let me know
Hi everyone, I’m working with a custom made STM32F446ZET6 board that otherwise functions perfectly (all peripherals, flash programming, etc. work fine). The only thing that doesn’t is the ROM bootloader. I can’t get USB DFU or UART boot to respond no matter what I do. What I’ve verified BOOT0 = 1 (3.3 V) at reset NRST pulled high, no reset loops VDDUSB = 3.3 V, decoupled with 100 nF HSE = Abracon ABLS-8 MHz-12 pF, started with 18 pF load caps and lowered to 10 pF as I saw in a post here this might be the cause PA9 connected directly to VBUS (5 V) PA11/PA12 wired to USB-FS D−/D+ (verified routing and continuity) Board runs normal firmware from Flash with no issues What I’ve tried BOOT0=1, reset → USB never enumerates Tried UART boot (PA10 RX, PA9 TX, 115200 8E1) → no ACK, completely silent. Verified with ST-Link under reset: RDP = 0xAA (no protection) MEMRMP = 0x0, VTOR = 0x0 → seems like it’s still mapping main Flash, not System Memory. Jum
Product / board: STM32MP257F-EV1, MB1936 revision, configuration [A35-TD or M33-TD]SummaryThe board worked for one session after two hardware changes, then stopped booting. LD6, LD5 and LD11 light. LD3 and LD4 do not. The Boot ROM gives no response over UART or USB.What was changedA PDM microphone was wired to PA6/PA7 by a wire tap at R169/R175 (MDF1). This was our own design decision, not based on any ST recommendation. A MAX98357A speaker amplifier was added on SAI2A (PJ11, PJ3, PJ12 at AF4), with matching device-tree changes.What I have checkedCheck Result NRST (B1) 3.3 V idle, 0 V pressed, 3.3 V after release VDDIO 3.3 V 1V8 1.8 V VDDCPU 0.8 V VDDCORE 0.8 V VDDGPU 0 V (not treated as a fault) VDD_DDR 0.037 V (not treated as a fault) VDDA1V8_AON 1.8 V VDD3V3USB 3.3 V HSE Not checked; no accessible probe point Boot ROM tests (SW1 all OPEN)STM32_Programmer_CLI -l detects the ST-LINK V3. -c port=/dev/ttyACM0 br=115200 and -c port=/dev/ttyACM1 br=11520
I am trying to get to the lowest possible power consumption on a WB55 NUCLEO board while the BLE is advertising every three seconds and waking up on the RTC every second. I have the NUCLEO booting up on the HSE clock, and the stm32_lpm_if.c code switches from HSE to HSI and back as it enters and exits STOP2. Re-enabling HSE takes about 24 ms and consumes significant current, giving me an average of about 62 uA in this mode. I’ve found that if don’t enable the HSE, but stay on the HSI the current drops to about 10.5 uA. The BLE radio functions normally, and I can connect and disconnect and return to the 10.5 uA advertising mode. Is CPU2 somehow choosing the LSE clock to run on when it exits STOP2 and the HSE is not available? What is going on? The documentation is adamant about needing 32MHz for the system clock when running the radio.
Hi everyone,I'm working with some older Hindi content that was created using the Kruti Dev legacy font/encoding, and I need to use the text in a modern Unicode-based environment such as TouchGFX.From what I understand, simply changing the font isn't enough because Kruti Dev and Unicode use different character mappings. The legacy text needs to be converted to Unicode first, and then the appropriate Devanagari font can be used.For anyone dealing with the same issue, I found this Unicode to Kruti Dev Converter useful for converting between Unicode Hindi and Kruti Dev text.Has anyone here used a similar workflow with TouchGFX? Are there any additional issues I should watch for with Devanagari glyphs, character rendering, or font generation?Thanks!
Good morning guys, I have the following problem:I’m trying to create a project based on SPIN32G0B2.My STM32CubeProgrammer can’t detect the STM32 micro on the board EVLSPIN32G0B2 with a builtin ST-LINK. I get the error message “Error: No STM32 target found”. Someone have any hint to solve this problem ? Thank youStefano
Host MCU: STM32G491METx, FreeRTOS, SPI host interface (SPI_RDY on EXTI, CHIP_EN controlled by host) Module: ST67W611M1, T01 binary (LwIP offload profile) Host middleware: X-CUBE-ST67W61, ST67W6X Network Driver v1.3.0 Clock: W6X_CLOCK_MODE = 1 (internal RC); W6X_POWER_SAVE_AUTO = 0 (also tested with 1; the driver disables it in W6X_Ble_Init because of the RC clock) BLE only, no Wi-Fi in useUse caseThe module is used only as a BLE observer. It continuously scans for manufacturer-data advertisements from 2 ble devices, among a crowded environment (40+ devices around).W6X_Ble_Init(W6X_BLE_MODE_DUAL, …) W6X_Ble_SetScanParam(ACTIVE, PUBLIC_ADDR, FILTER_ALLOW_ALL, interval 105 (65.6 ms), window 104 (65 ms)) W6X_Ble_StartScan(cb) W61_BLE_SCAN_TIMEOUT reduced from 5000 to 1000 ms, and W61_BLE_MAX_DETECTED_PERIPHERAL = 40 On every scan-done callback the application calls W6X_Ble_StopScan() and then W6X_Ble_StartScan() immediately. This gives one stop/start cycle every ~0.35–1 s, i.e. thousands o
We are developing a new board based on the STM32H573. We want to incorporate both Wi-Fi and BLE support, so adding the ST67W611M1 seems a logical fit. Digging into CubeMX, it appears that the ST67W relies on a FreeRTOS + lwIP solution, at least for the T02 architecture. (I would prefer not to use the T01 architecture, as it’s considerably more flexible to have the lwIP API in the host MCU.) However, we also want to incorporate Ethernet support, and if one wants an out-of-the-Cube(MX) solution for Ethernet, all the provided examples are for ThreadX + NetX Duo. We recently completed a design with the H563 and Ethernet using ThreadX and NetX Duo, so I’m familiar with that solution.I did see the post about using STM32H5 with lwIP, so I know it’s something that can be done. Is using FreeRTOS + lwIP the best solution for supporting both Ethernet and Wi-Fi on STM32, since there doesn’t seem to be an out-of-the-box solution for Wi-Fi using ThreadX + NetX Duo? FWIW, I don’t need to have
Hi everyone,I want to read data from an SPI slave using SPI3 while the MCU is in STOP2 mode.The communication protocol requires me to transmit a command before receiving the response.I configured LPBAM according to the following YouTube tutorial, and my CubeMX/LPBAM configuration is shown in the attached screenshots.My observations are:If I use only the “Transmit Data” node, everything works correctly. If I add a “Receive Data” node after the transmit node, the SPI transaction stops when it reaches the receive node. However, the “LPTIM1_CH1” output continues to generate trigger signals. If I replace them with a single “Transmit Receive Data” node, neither SPI nor LPTIM1_CH1 works.Could you please explain what might be causing this behavior? Is there any additional configuration required to use the “Transmit Receive Data” node in LPBAM with SPI3 in STOP2 mode?Thank you.
I am reporting this issue here following the recommendation of the STM32duino maintainer.STM32CubeProgrammer GUI works correctly, but STM32_Programmer_CLI v2.23.0 fails to identify the same MCU when launched through a symbolic link on macOS.The issue was initially reported on GitHub:https://github.com/stm32duino/Arduino_Tools/issues/123Below are the reproduction steps and a verified workaround. Describe the bugOn macOS Apple Silicon, uploading to an STM32L053C8T6 using STM32CubeProgrammer (SWD) fails with:Error: Unable to list supported devicesError: Cannot identify the deviceThe ST-LINK/V2 is correctly detected, including firmware version and target voltage.STM32CubeProgrammer GUI connects successfully and identifies the MCU (Device ID 0x417).The problem was traced to invoking STM32_Programmer_CLI through a symbolic link in /usr/local/bin.To Reproduce Install STM32CubeProgrammer 2.23.0 on macOS. Create a symbolic link to its CLI executable in /usr/local/bin. Run: STM32_Programmer_
Hi everyone,I'm using a custom board with minimal circuitry; currently, only an STM IC with a reset circuit is installed. The SWD analysis using a data logger shows that the chip is responding and the electrical connections are fine.I’m using the Nucleo-F401RE as a programmer; programming the onboard chip works without errors, but not when communicating with the target controller via the SWD interface.I get the following message:Error: Database: There's no active configuration for this device. All 2 configurations are disabled!I have selected the “Hardware reset” and “Under reset” settings.Here is the report15:42:31 : STM32CubeProgrammer API v2.23.0 | Windows-64Bits 15:44:00 : UR connection mode is defined with the HWrst reset mode15:44:00 : ST-LINK SN : 0672FF49525083676702230915:44:00 : ST-LINK FW : V2J48M3515:44:00 : Board : NUCLEO-F401RE15:44:00 : Voltage : 3.26V15:44:00 : SWD freq : 4000 KHz15:44:00 : Connect mode: Under Reset15:44:00 : Reset mode : Hardware reset1
I have used STM32CubeMX to change the prescalers in the STM32_WPAN section. However, the code itself never uses the new values. It appears that “something” has marked the RTC as already initialized and it won’t execute that code.How can I force my code to load the new values?Nite: The values that are being loaded came from when I enabled the BLE code, but it causes the RTC to run too slow.
Dear ST Support Team,I am working with the STM32MP257F-EV1 evaluation board and have found an issue with some of the on-board crystals while checking their clock frequencies.Observations:- X1: no frequency is observed- X2: no frequency is observed- X7 (ST-LINK crystal): a correct frequency of 24 MHz is observed againCould you please help me with the following:1. Possible reasons why X1 and X2 are not oscillating on this board.2. Any recommended checks (supply, load capacitors, bias, probing method) to confirm whether this is a hardware fault or a measurement issue.3. Whether this could be a defective board, and if so, the process for replacement or repair.I can share measurement screenshots, photos of the board, and further details if needed.Thank you for your support. I look forward to your reply.Best regards,Radha
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.