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'm interested in improving my debugging workflow when working with STM32-based projects. Beyond using breakpoints and serial output, what techniques or tools have made the biggest difference for you?Do you rely on STM32CubeIDE features, hardware debugging tools, logic analysers, or custom testing methods? Are there any common mistakes beginners should avoid when troubleshooting timing issues, peripheral configurations, or communication protocols?I'd love to hear about the debugging practices that have saved you the most time in real-world projects.
hi all, I am trying to flash + run a relocatable / runtime loadable model. The problem is that the inference results are wrong (they never change, no matter what the buffer contains when I start the inference). If I use the stai_model files from the AI Cube Studio, the model works correctly, but is not relocatable… Am aware of matching the address where I flash the network_rel.bin and generating the model. (← see URL) I am using these docs. (← see URL) I am enabling all AXISRAM3...6 I generate the model as follows:stedgeai.exe generate -m "path/to/model.tflite" --input-data-type uint8 --no-inputs-allocation --no-outputs-allocation --target stm32n6 --st-neural-art --reloc# final output something like this:+--------------------------+-------------------------------+------+------------+--------+| name (addr) | flags | foff | dst | size |+--------------------------+-------------------------------+------+------------+--------+| xSPI2 (0x20009332
I am using seeed studio AI assistant board and I am not able generate the cube project using StudioI am facing Memory Overflow Issue Is there any way to solve thisAnd Seeed Board is not supported when Board is selected during project creation
I’m trying to convert an ONNX model which has a Conv layer that takes weights as input (has 2 inputs). Edge AI gives me:NOT IMPLEMENTED: Convolution with multiple not constant inputs not supportedAre there any short-term plans to support such layers in ST Edge AI?I also tried to change the name of the layer to some custom name (DynConv). The error in ST Edge AI changed to:NOT IMPLEMENTED: Unsupported layer types: DynConvI thought that I could bypass this error by using --custom with a JSON definition, but the JSON format is poorly documented. Also, many attempts at different formats seem to indicate that --custom only works for Keras. Is this correct?
Hi ST Community,I am working on the STM32N6570-DK board and need guidance on running two AI models together in a single pipeline:YOLO-FastestV2 for object detection (this is my custom train model) MediaPipe Face Landmark for facial landmark detectionMy GoalI want to:Run YOLO-FastestV2 to detect objects/faces from camera input Then run MediaPipe Face Landmark on detected face regions (ROI) Process both models efficiently on STM32N6570-DK Display final output with bounding boxes + face landmarksCurrent StatusI can run object detection examples on STM32N6570-DK. I have AI models available in ONNX/TFLite format. I am exploring deployment using STM32Cube.AI / ST AI tools. I am not sure about the best architecture for running both models together.QuestionsI need help with the following:Is it possible to run two AI models in parallel on STM32N6570-DK? What is the recommended pipeline? Camera → YOLO-FastestV2 → ROI extraction → Face Landmark → Display Output Should both models be merged into
Hello, We have a custom board with a STM32WB55VGY MCU on it.Originally, the FUS version that runs on it is 1.2.0 and we would like to upgrade the FUS and flash the latest version of the Wireless stack (BLE stack full) and safe boot.So, using the STM32_Programmer_CLI we run the following commands:STM32_Programmer_CLI -c port=swd -startfus STM32_Programmer_CLI -c port=SWD -r32 0x20010010 1 Read 0x20010010 : 01020000 → FUS version 1.2.0 STM32_Programmer_CLI -c port=SWD -fwupgrade stm32wb5x_FUS_fw.bin 0x080EE000 firstinstall=0 STM32_Programmer_CLI -c port=SWD -r32 0x20010010 1 Read 0x20010010 : 02020000 → FUS version 2.2.0 STM32_Programmer_CLI -c port=SWD -fwupgrade stm32wb5x_Safeboot_fw.bin 0x080F2000 firstinstall=0 STM32_Programmer_CLI -c port=SWD -fwupgrade stm32wb5x_BLE_Stack_full_fw.bin 0x080D0000 firstinstall=0All commands run successfully except for the SafeBoot where it returns the following error:Error: FUS_ERROR_INVALID_OB: Option bytes and UFB values do not match.Error: Old Fi
Hi ST Community,I need help regarding a version mismatch issue while deploying my AI model on STM32N6570-DK.Current EnvironmentI am currently using:ST Edge AI Core: v2.2.0-20266 (2adc00962) STM32Cube.AI: 10.2.0-RC1ProblemWhen I convert/generate my model using the current tools, the generated model version becomes:Generated model version: 1.1.3dev14But my board/application runtime is using:Runtime version: 1.1.3dev8Because of this version mismatch, I am unable to run the model properly.My UnderstandingI think I currently have two possible options:Option 1Install an older ST Edge AI version / STM32CubeAI version that generates a model compatible with:1.1.3dev8Option 2Upgrade my runtime/environment on the board so that runtime version becomes:1.1.3dev14QuestionsI need guidance on the following:Which option is recommended by ST? Where can I find the correct ST Edge AI / STM32CubeAI version that generates models for runtime 1.1.3dev8? How can I upgrade the runtime on STM32N6570-DK from 1.1.
I am working on STM32N6570-DK. If I want to deploy random forest model on this MCU, what is the procedure. As most of the time I was using STM32 Cube AI studio to generate IDE project and work on it . But , AI studio doesn’t support tree based models. So, what is the standard procedure for deploying random forest or tree based models on this MCU for real time detection ? Kindly guideThanks & RegardsChanchal
Trained Yolov8n on the coco text dataset, trying to import into STCube AI Studio and receive the following error message.Run failed: Error: analyze error: INTERNAL ERROR: 0 vs. 11. Please check the report for more details. Output: ST Edge AI Core v4.0.0-20500 359356bb0
Hello, I am working on a visual inertial odometry system. It basically contains a camera, a vision processing unit and an IMU. For vision processing part I was thinking of the STM32N6. Can you elaborate on the performance of the ST Neural-ART processsor? Can you elaborate on the inference time? How many images per second can it process?
Im using SPC58C80E5, working on Autodevkit studio, #include "components.h"#include "can_lld.h"#include "can_lld_cfg.h"#include "pal.h"#include "osal.h"/* Define your custom CAN packet ID for triggering the reset */#define FLASH_RECOVERY_CAN_ID 0x7F0UCANRxFrame rxmsg;void HandleBootloaderRequest(void) { /* Check Mailbox 0 of CAND2 (which your working reference project proves is the exact driver module tied to your physical PB9/PB10 pins). */ if (can_lld_receive(&CAND2, 0, &rxmsg) == CAN_MSG_OK) { /* FIXED INVERTED LOGIC: pal_clearpad pulls pin LOW, turning LED 2 (PH4) ON */ pal_clearpad(PORT_H, 4U); /* MATCH VERIFICATION: Using the exact '.SID' layout and array index bracket notation proven to execute successfully on your hardware bench. */ if (rxmsg.SID == FLASH_RECOVERY_CAN_ID && rxmsg.data8[0] == 0xAA) { /* Cleanly disable system interrupts before register access */ irqI
Hi everyone,I'm deploying a model on the NUCLEO‑H563ZI using NanoEdge AI Studio (v5.2.0). My full training dataset is about 2 GB, and I cannot downsample or reduce features – I must use the complete dataset.My PC specs:- CPU: 12th Gen Intel i7‑12700 @ 2.10 GHz (16 cores total)- RAM: 32 GB (31.7 GB usable)- Storage: 1.82 TB HDD (mechanical drive, WDC WD20EZBX‑00AYRA0)- OS: Windows 64‑bit- Cores allocated to benchmark: 16 (all available)In a previous test with only 40 MB of data, the benchmark took 40 hours on this same machine. If time scaled linearly, 2 GB would take ~2000 hours – impossible for our schedule.Since I cannot change the dataset itself, I'm looking for practical ways to reduce benchmark time through external measures. Specifically, I would like to know:1. Storage bottleneck – My dataset resides on an HDD. Would moving the entire NEAI workspace and dataset to a fast NVMe SSD (or even a RAM disk) dramatically cut the time? Does NEAI repeatedly read from disk during benchmark
I am using STM32F411CEU6 Black Pill from WeAct. Stlink was working I was able to flash the code but now after testing when I tried to connect it wouldn't connect I keep getting this error. I am using stlink clone. USB under DFU mode gets connected, full chip erase works but when I try to flash the code I get this error Please help me out
I'm using an L6561 to build a flyback circuit to control an LED with constant current. The input voltage is 220VAC 50Hz. The output controlling the LED is 12V 0.15A. I tested it with 12V 0.7A and the circuit worked very well with a power factor (PF) of 0.96 and THDI <10%. However, when testing with 12V 0.15A, the PF was 0.68 and THDI was around 40%. Could it be that the L6562 doesn't have a good power factor under light load?
I am working on STM32G474RE Nucleo board. Imported an example into ICE/IDE, compiled, linked, downloaded and ran. Just used MX to build my application based on the Nucleo board. Compiled and linked. Execute debug session and received this error, see attached. I checked “Debug Configuration” and see nothing unusual. What has changed? How I fix this problem?
We have recently designed and implemented a PCB with TS4436 IC. And we are using this IC as a comparator in our application.While testing, we have observed that the IC taking near 40mA as supply current during OUT enable time (for FB input > 0.6V). But as per datasheet it won't take more than 4mA. We request you to go through the issue and share the resolution asap. Sharing our application schematic for reference.
Hey, I'm using the ST67W611M (NCP + STM32f7 host, X-CUBE-ST67W61, T01 firmware v2.0.97) in WiFi station mode, with TLS running on the NCP via W6X_Net_Socket(..., IPPROTO_TLS_1_2). I'm trying to download a 750 KB file over HTTPS from a server that sits behind Cloudflare, and it reliably dies after about 200 KB - W6X_Net_Recv returns -1 ("ssl_read FAILED: -0x0001") and the socket goes DISCONNECTED. Same spot every time. So I took a packet capture to see what's actually happening (TLS 1.2, AES-128-GCM). Cloudflare uses dynamic record sizing, so its TLS record size grows over the connection: 1369 -> 4229 -> 16384 bytes. Everything up to the 4229-byte records comes through fine (~200 KB). But the moment the first full 16384-byte record arrives, the device immediately sends a fatal TLS alert and RSTs the connection - the abort clearly comes from the device, not from Cloudflare.That made me suspect the NCP's TLS record buffer is simply too small to hold a full 16 KB record. Looking at t
Hi,I'm bringing up Ethernet (RGMII) on a custom STM32MP257 board using a Marvell 88E1512 PHY.The MAC driver loads successfully, the PHY is detected, but bringing the interface up fails with a timeout.I have attached the driver code, dts and pinctrl.dtsi for you reference. eth1_mdio_pins_mx: eth1_mdio_mx-0 {pins1 {pinmux = <STM32_PINMUX('A', 9, AF10)>; /* ETH1_MDC */bias-disable;drive-push-pull;slew-rate = <2>;st,io-clk-edge = <0>;st,io-retime = <0>;st,io-delay-path = <0>;st,io-delay = <0>;};pins2 {pinmux = <STM32_PINMUX('A', 10, AF10)>; /* ETH1_MDIO */bias-disable;drive-push-pull;slew-rate = <0>;st,io-clk-edge = <0>;st,io-retime = <0>;st,io-delay-path = <0>;st,io-delay = <0>;};};eth1_mdio_sleep_pins_mx: eth1_mdio_sleep_mx-0 {pins {pinmux = <STM32_PINMUX('A', 9, ANALOG)>, /* ETH1_MDC */<STM32_PINMUX('A', 10, ANALOG)>; /* ETH1_MDIO */};}; eth1_rgmii_pins_b: eth1-rgmii-1 {pins1 {pinmux = <STM32_PINMUX('
Hello,I have created a framework for OEMiROT + OEMuROT boot path wherein I have tried implementing a two-boot stage. This boot path isn’t included in the ST template examples unlike that for OEMiROT or STiROT_OEMuROT. I was able to run both existing examples on my board correctly.For OEMiROT + OEMuROT boot path, I have made changes in the scripts specific to boot paths and UBE. The memory layout is also defined depending on the image sizes where I am using the flash memory divided for OEMiROT, OEMuROT , secure application and nonsecure application referring the below boot path when TZ is enabled. Post reset the control jumps to OEMiROT in this case.I could write the OEMiROT binary at base address 0x8000000 and OEMuROT at 0x800E000 using the scripts.I am able to verify if they are flashed by reading the respective memory addresses using ST programmer. I could see the non-zero or non-FF values at both memory addresses. I have shown one for base address 0x8000000 Besides the images gettin
STM32H7 series MCU package version: V1.13.0SPI4 clock is selected as PCLK2, but in the actual generated project, the SPI4 initialization function incorrectly sets RCC_SPI45CLKSOURCE_D2PCLK1 instead. The clock tree diagram and code snippet are shown below.
STM32CubeIDE 1.19.0STM32C092GCU7 with 256kb flash, 128 pages with 2kb size I have 106,25KB of code. If I shift the start adress from 0x8000000 to 0x800A000 (to reserve space for future bootloader) CubeIDE cuts of the code to 88KB and only erases the pages till page 63 (Code would use now space in the second part of flash). Length in linker file is sufficient.If I take the generated .elf file and program it by STM32CubeProgrammer, everything goes well. But this is only a part solution for me, because I want to have the possibility to debug in CubeIDE. Start adress 0x8000000ST-LINK SN : 57FF6F067186535436441487ST-LINK FW : V2J46S7Board : --Voltage : 3.22VSWD freq : 4000 KHzConnect mode: Under ResetReset mode : Hardware resetDevice ID : 0x44DRevision ID : Rev ADevice name : STM32C09xFlash size : 256 KBytesDevice type : MCUDevice CPU : Cortex-M0+BL Version : 0x121Opening and parsing file: ST-LINK_GDB_server_a12268.srecMemory Programming ... File : ST-LINK_GDB
Hello ST Community,I am considering using the High-Resolution Timer (HRTIM) on the STM32G4 series (specifically STM32G4x4 / G474) and would like to ask a few technical questions regarding its Input Capture functionality:1. Is my understanding correct that the 184 ps high-resolution feature applies mainly to PWM generation (using DLL), while the Input Capture function operates at the base HRTIM clock frequency (up to 170 MHz, giving ~5.88 ns resolution)?2. Is it possible to capture the timer counter values using the HRTIM capture units (CPT1 / CPT2) triggered by External Events (EEV) or internal signals (such as comparator outputs)?3. If Q2 is yes, does capturing via internal signals (e.g., comparator) yield the same measurement resolution (~5.88 ns based on 170 MHz) as capturing via external pins?Any clarification would be greatly appreciated. Thank you in advance!
I am an STM32 developer.I recently started studying AI, but unfortunately, I discovered that there is no version of STM32Cube AI Studio for Mac. The same applies to Edge AI Studio. Are there any plans to release a version for Mac?
Hello,Document: RM0090 Reference Manual for STM32F405/415, STM32F407/417, STM32F427/437 andSTM32F429/439.https://www.st.com/resource/en/reference_manual/rm0090-stm32f405415-stm32f407417-stm32f427437-and-stm32f429439-advanced-armbased-32bit-mcus-stmicroelectronics.pdfRevision: 21, 07-Jun-2024.Location: Pages 847-862 in Section 27. Also, Figure 241, 242, 243, 244, 245, Table 125.This section, figures and table all contain 17 references to ITEVFEN bit, supposedly from I2_CR2 control register.In reality, there is no such bit in this register, the actual name is ITEVTEN (interrupt event enable), and it is located in I2C_CR2, bit 9.Section 27.6.2 has correct name.stm32f405xx.h file, and others related to i2c, use the correct name: #define I2C_CR2_ITEVTEN_Pos (9U) #define I2C_CR2_ITEVTEN_Msk (0x1UL << I2C_CR2_ITEVTEN_Pos) /*!< 0x00000200 */ #define I2C_CR2_ITEVTEN I2C_CR2_ITEVTEN_Msk /*!<Event Interrupt Enable */Therefore, the ITEVFEN in the document should be repla
I am really very new to wireless communication but i need to make the project up and working. I have purchased 2 Wio E5 boards, getting confused how to build and make it working. I have gone through two gitshubs STM Repository and the seed studio repository seedrepository At present i am looking for point to point communication. I found similarities with both the projects for example BSP folders for nucleo and LoraE5mini, i understand is i have to port the code, i tried hard but it is showing compilation errors. Please recommend me how do i proceed in terms of compilation.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.