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’m currently working on implementing and testing Flash ECC on my controller. According to the datasheet, the device supports ECC, and I can see that it is managed through the FLASH_ECCR register. However, I’m facing some difficulty verifying whether ECC is functioning correctly. Specifically: I am unable to find any ECC-related flags in the FLASH status register. I’m not sure how to intentionally generate an ECC error to validate my implementation (e.g., to confirm that error handling via NMI/interrupt is working as expected). Could anyone please guide me on how to reliably trigger a Flash ECC error for testing purposes on this controller? Any suggestions, references, or example approaches would be really helpful.
Dear Community, dear STMicro, I'm trying to encrypt data on an STM32WL55JC device using the STM32CubeExpansion_Crypto_V4.5.0 library and then using Python on the PC to decrypt it again.I've taken the example code for RSA encryption from the librarySTM32CubeExpansion_Crypto_V4.5.0/Projects/NUCLEO-WL55JC/Applications/RSA/PKCS1v2.2_EncryptDecryptand adapted it.I've created an RSA 2048 bit key on my PC using this code:private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048) pem = public_key.public_numbers() public_exponent = ["0x%02s" % e[i:i+2] for i in range(0, len(e), 2)] n = "%X" % pem.n n = "0" + n if len(n) % 2 == 1 else n modulus = ["0x%02s" % n[i:i+2] for i in range(0, len(n), 2)] f = open("pub.c", "w") f.write("public_exponent[] = {%s}\n" % ", ".join("%s" % s for s in public_exponent)) f.write("modulus[] = {%s}" % ", ".join("%s" % s for s in modulus)) f.close() From this code I get something like thispublic_exponent[] = {0x01, 0x00, 0x01} modulus[]
I'm working with the STM32G4 series and using the backup registers to store time data that persists across power cycles. I have a question about VBAT brownout behavior that I cannot find explicitly documented in RM0440 or the datasheet.Background:Both RTC and backup registers are in the VBAT power domainI'm using a signature in backup registers to detect VBAT lossThe signature check works fine for complete power lossMy Question:Is it possible for VBAT voltage to drop to a level where:The RTC stops functioningBUT the backup registers still retain their contents?In this scenario, my signature check would pass (registers retained), but the time would be invalid (RTC stopped counting).Do the RTC and backup registers have the same minimum VBAT voltage threshold, or can backup registers survive at a lower voltage than the RTC requires?If VBAT brownout can cause RTC failure while backup registers persist, does STM32G4 have any hardware mechanism that automatically clears backup registers when
STM32CubeIDE for Visual Studio Code v3.8.0 serverRtos fails to recognize symbolFileName when attaching to running target. This causes the rtos viewer to not work properly.None working setup: "type": "stlinkgdbtarget", "request": "launch", "name": "CM7 master STM32Cube: Launch ST-Link GDB Server", "origin": "snippet", "cwd": "${workspaceFolder}/", "deviceName": "STM32H747BIT6", "deviceCore": "Cortex-M7", "serverReset": "None", "imagesAndSymbols": [ { //"imageFileName": "${workspaceFolder}/executable.elf", "symbolFileName": "${workspaceFolder}/executable.elf", } ], "serverRtos": { "enabled": true, "port": "60000", "driver": "freertos", "driverPort": "ARM_CM7" },Debug console output:RTOS proxy: STMicroelectronics RTOS Proxy. Version 0.18.1 Copyright (c) 2026, STMicroelectronics. All rights reserved. Failed generate debug info Loading RTOS driver... FreeRTOS Connecting to GDB server 127.0.0.1 on port 61234 ... RTOS Proxy: readelf: Error: 'undefined': No such file
Hello,I'm designing a 2 layer PCB using STM32WL for LoRa operations at 433MHz and need a review of my RF layout. The board is JLCPCB 2 layer standard FR4, 1.6mm thick 1.46mm core, 1oz copper, 50Ω microstrip at ~2.8mm width, about 38mm long. I have placeholder caps/inductor to be populated after board fabrication. I am seeking expert opinion for:Trace width & impedance - does 2.8mm yield 50ohm given FR4, 1oz copper, and 1.46mm dielectric height?Critical length - Are there implications for 38mm length on transmission-line behavior?Taper - Taper starts 5mm in. Are there optimal lengths for tapers? Should I taper for shunt pads?Stitching vias - Recommendations for via spacing for this trace width? Every 5-8mm?Test points - Recommendations for RF test points without effecting impedance?Any other best practices or tips would be helpful. I thank you for any guidance.Best, John
I am trying to integrate Crypto lib to NUCLEOF303RE Board, Any guide or any suggestions would help
Hi everyone,I’m working on a 4-layer PCB design using the STM32WL (based on the Nucleo WL55JC reference design).For the RF section, I followed the same layout approach as the Nucleo board, including the layer stack-up and RF trace widths.The only difference in my design is that I have some GPIO signals routed close to the RF section. These signals are routed on the 3rd layer, while I am still maintaining solid ground planes on the 2nd and 3rd layers underneath the RF section.I would like to clarify:Is it acceptable to route non-RF signals on the 3rd layer near the RF section if solid ground planes are maintained?Are there any risks (e.g., noise coupling or RF performance degradation) with this approach?Additionally, if I modify the layer stack-up:What parameters need to be adjusted (e.g., RF trace width, impedance matching, ground reference)?Are there any recommended guidelines for maintaining RF performance when changing the stack-up?Any guidance or best practices would be greatly app
Hallo,is it possible to detect in my code whether it was just loaded and started under debugger? The code should behave deifferant as usual because flash loader writes into RAM and .noinit section is modified because of this.I have already checked RSR register. It looks the same as after software reset: CPURSTF, PINRSTF and SFTRSTF are high.Moreover RSR gegister is independent from debug configuration: Debugger / Reset behaviour. I use ST-LINK v3 with ST-LINK GDB server.
First and foremost, they aren't perfect. The code has tons of work left. But it took me SO long to get ANY i2s audio data from my guitar to my computer, the major hurdle being mostly the lack of USB Microphone drivers provided by the stack.Now that I've made them, and I am pretty sure it's the other parts of the code that are at fault for the clock drift, I am sharing it in hopes that it will help someone else who was in the same boat I was.This is designed for the STM32 to be the SLAVE to a CODEC with Full-Duplex mode support (4-5 wire bidirectional I2S Standard, 16 bit 48k. I know, nothing to call home about, but it is the simplest to get working) Try your luck with your specific CODEC, maybe you can configure things differently and get it working right. On the PCM3060, this was the best I could manage.I have no field experience, no college degree, I am just persistent. If I can do it, you can too. Don't give up. I know I haven't, this is just the start.Note: if you're just picking u
Hi everyone, I saw that ST give a C driver for STUSB4500 and even have a binary to test the 4531 on some boards.Can ST provide a C library for this chip ? Thanks.
Hi all, Quick question for those working with STM32 embedded devices: If you had a tool that could analyze logs or telemetry using AI — would you feel comfortable sending that data externally? Or is data sensitivity (customer data, device behavior, industrial info) a hard blocker? I’m exploring ways to preprocess/anonymize this data before it leaves the device or server. Curious where people stand on this — is this a real need or overengineering?
I wanted to try out the new STMCubeMX2 with one of the suitable STM32C5 MCU and I get this errorNot sure what does this mean, is there any certificate needed to use STMCubeMX2 ?
Dear ST Support Team,I am writing to express my interest in the VD55H1 iToF sensor for an upcoming project.Currently, we are preparing for development using the i.MX8MP platform running on a Linux Kernel. Upon reviewing the technical specifications, I noted that the VD55H1 utilizes a MIPI-CSI data interface.Could you please confirm if ST provides an official Linux driver for the VD55H1?As driver availability is a critical factor for our initial integration and development phase, we would appreciate any information regarding existing software support or a roadmap for Linux integration.Thank you for your time and assistance.Best regards,seobi
Hi everyone,I’m working on a Driver Monitoring System (DMS) pipeline on the STM32MP25 and trying to understand both NPU utilization and overall performance limitations.Setup details:Platform: STM32MP25Framework: stai_mpu_network (using .nb models with use_hw_acceleration=True)Camera pipeline: GStreamer (appsink + cairooverlay)Current performance: ~15 FPSGPU load: ~25%Models in use:Face Detection (.nb) → runs every frameFace Landmark (.nb) → runs every 3 framesIris Landmark (.nb) → runs every 3 frames (same schedule as landmarks)YOLOv8n (Smoking/Calling, .nb) → runs every 3 frames (offset scheduling)Scheduling logic:Face detection: every frameLandmark + eye models: frame_count % 3 == 0YOLO model: frame_count % 3 == 1So not all models are executed every frame, but FPS is still limited to ~15.Questions:1. NPU verificationEven though .nb models are used with HW acceleration enabled, I don’t have confirmation that inference is actually running on the NPU.How can I verify that the NPU is bei
This is one of those issues where I can hardly figure out what to seach for...I have a board (with an STM32G431) where I can activate the BOOT pin with a switch, to start the system bootloader. This allows the customer to upload a new application version using STM32CubeProgrammer and the microcontroller's USB port.However, on this board, the application doesn't run when the bootloader is done. On other boards with other micrcontroller types, the "Run after programming" feature works nicely, but not on the one with an STM32G431.Even with an ST-LINK V3 connected to the board, I cannot see with certainty in what state the microcontroller ends up, or what the program counter says, as the ST-LINK loses its connection with the microcontroller. When I reconnect, STM32CubeProgrammer claims that the CPU is halted. Why the CPU is halted, I have no idea. But it is quite annoying, as the board is a tiny thing in a very large industrial machine, where they should be able to upload new firmware
Hi everyone,I am working on an STM32MP2 platform and facing a persistent issue with LPUART1 in interrupt mode.SetupMCU: STM32MP2UART used: LPUART1 (RS485 communication via MAX485)Debug UART: UART5 (polling mode, printf works fine)Using:HAL_UARTEx_ReceiveToIdle_IT() for RXHAL_UART_Transmit() for TXBaudrate: 115200ProblemWhen using interrupt mode, the system gets stuck in: HAL_UART_IRQHandler()The interrupt keeps triggering continuously and the system appears stuck (infinite IRQ loop).ObservationsPolling mode (HAL_UART_Receive) works perfectlySensor communication works fine in pollingIssue only happens in interrupt modeWhat I already checked NVIC enabled correctly:HAL_NVIC_SetPriority(LPUART1_IRQn, 5, 0);HAL_NVIC_EnableIRQ(LPUART1_IRQn); IRQ handler is correct:void LPUART1_IRQHandler(void){HAL_UART_IRQHandler(&hlpuart1);}No wrong handle (huart1) is used anywhereFIFO configuration added:HAL_UARTEx_SetTxFifoThreshold(&hlpuart1, UART_TXFIFO_THRESHOLD_1_8);HAL_UA
Hi, For STM32H753IITx + ST67W611M1 on a custom board with FreeRTOS: What is the recommended integration approach for X-CUBE-ST67W61 on STM32H753? Specifically: Is STM32H753 officially supported/recommended as a host MCU for ST67W611M1? For H753, is it recommended to use the middleware directly from CubeMX? Are there known FreeRTOS version compatibility issues between CubeMX-generated FreeRTOS and X-CUBE-ST67W61 on H753? Thank you.
I am using STEVAL-MKI109D + STEVAL-MKI238A. I have evaluated motion-stationary FSM example as it seemed closest to what we want to use for our application. It seems to work fine, however it is too sensitive and needs some upgrades.What I want to achieve:Setup timer (TI3) to some value such such as 5 seconds. During this 5 second period, I want to detect specific number of events above certain threshold (GNTH1). If specific number of events were detected during 5 second period, generate an interrupt and repeat over and over again. If specific number of events were not detected during that 5 seconds period, just reset the counter and repeat.My cofiguration:It sounds like a simple requirement but I cannot achieve it using FSM.I tried to achieve this using 2 FSM's: FSM1:FSM1 is responsible for incrementing long counter everytime the GNTH1 is reached. FSM2:FSM2 is responsible for resetting long counter. I don't really understand why the MEMS Studio forces me to put STOP command at
Hey there,I'm currently working on an audio application for the STM32U5A5 (which I'll later port to the STM32N657), using MDF.The application closely follows the MDF/ADF examples for audio recording found in the U5/N6 Cube firmware packages, with the difference that it does not output the transformed audio signal immediately via SAI, but instead stores it in a large buffer to download it later via the STMCubeProgrammer.Although the application generally works great, it does not record more than ~2 seconds of audio, even if I increase the size of the storage buffer (e.g., to a size corresponding to 4 seconds of audio recording capacity). No matter how large I set the buffer, the function HAL_MDF_AcqCpltCallback is called approximately 2 seconds after the recording starts. Within the implementation of this function, HAL_MDF_AcqStop_DMA is called to stop the recording.I would be interested in the criteria according to which the HAL_MDF_AcqCpltCallback function is called. I would
I just bought a Nucleo-G491RE board and installed STM32CUBE to start a new project. During the project setup, the IDE downloaded and unzipped stm32cube_fw_g4_v160.zip. Then, when it downloaded stm32cube_fw_g4_v161.zip, this error message popped up. (screenshot below) Error downloading the following filesstm32cube_fw_g4_v161.zip (HTTP Access Forbidden) I'd appreciate any help to resolve the error. Thanks.
I downloaded stm32cubemx-win-v6-17-0.zip on Windows 11 direct from the ST web page:STM32CubeMX | Software - STMicroelectronicsDownloaded file size 676,525 MBBut it does not uncompress and install, all I get is a kind of ghost window that tries to launch but then aborts.Any ideas please?Kind regards,Al
Not the issue of debug probe, just change 'Reset behaviour' to 'None' could solve this.
Is there and/or will there be an approved off-target unit testing framework for STM32 (in my case, STM32H5)? I've been trying to stand up a test project generated by STM32CubeMX, imported into VS Code using Unity unit-testing framework, but running into pitfalls. In the past, I've used PlatformIO's with ease, was hoping the STM32 VSCode ext pack would be similar out the gate.Over all, I'm aiming to test against the business logic and not needing a full-blown simulator. My rule of thumb is its good practice to do some kind of off-site (off-board) unit testing.Even if there is a solid blog post with how to setup STM32 + CMake + Unity (or equivalent) and vanilla C using the CubeMX generated project, that would be most helpful. Most of the blog posts I find are either outdated, doing something custom, or a different architecture. Yes, I'll fully admit, my strong points are MSVC and C#'s tooling for test frameworks, and not so much with CMake/CTest.Thank you!
Hi all,I'm trying to replay the demo from this video https://www.youtube.com/watch?v=Kn6JHVcY7hA The provisioning and debug authentication works fine, but the application hangs.I never passes the MX_ICACHE_Init() function. And sometimes in the MPU init or config function. The project is standard generated code, I'm using STM32H573I-DK but empty chip project like in the video.Project settings : Select STM32H573IIKxQ Click yes on enabling ICACHE and MPU Enable trustzone Secure project only Generate DA folder Bootpath : STiRot + Secure Application (offset 0, offset 0x100000, size 0x100000) PI9 as output and PC13 as input Generate project Add loader.h and loader.c and add blinky like in the video The project was imported in STM32CubeIDE 2.1.1 and build fine.I've used provisioning.bat to provision my board to CLOSED. LD1 on the board turns on but doesn't blink.After connecting to the board with Debug Authentication it seems to hang in MX_ICACHE_Init -> if (HAL_ICAC
Hi All!I'm trying to wrap my head around STM32H573 with trustzone, STiRoT etc in STM32CubeMX and I'm missing some information on the firmware sizes.The STM32H573 has 2MB flash, secure part is from 0x0C00_0000 to 0x0C1F_FFFF. When I select STiRoT + Secure partition and open OBkey settings I want to use maximum firmware size, which is 1MB in my understanding (download area must be same size as application area). So I set firmware offset to zero, firmware download area offset to 0x0010_0000 and firmware area size also to 0x0010_0000. When I generate obkey it gives me firmware slots 0 with address 0x0C00_0000 with size 0x10_0000 and slot 1 with address 0x0C10_0000 with size 0x10_0000. But the mapping says Start address 0x0C00_0400 and End address 0xC0F_FFFF which is different from the configured address/size.If tried going to Tools -> Memory Management but that gives a different image again!That gives a size of 123kB and address range 0x0C00_0400 - 0x0C01_EFFF, which appears t
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.