Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on how to deploy, debug, and optimize AI models on ST microcontrollers, microprocessors, and smart sensors.
Most recent activity
I've been trying to flash a .tflite model onto my NUCLEO-L433RC-P, using STM32CubeMX and Keil uVision5 initially, and later with STM32CubeIDE. But for some reason I keep getting issues either with "Analyze" or with generating the code. I am on Windows 11. My computer is in the chinese language, but my system local is English (US).Initially, while using CubeMX/Keil, I was able to successfully analyze my model after downgrading to the 7.1.0 version of Cube-AI. Before that, with the newest version, I get "TOOL ERROR: 'utf-8' codec can't decode byte in position x in position y: invalid start byte". But after analyzing and successfully running the model on desktop, when it comes to generating the code to run on my device, it refuses to generate any .h files nor the middlewares folder. I looked online and couldn't find any solutions, and decided to download CubeIDE as I thought that this might fix the issues. But after downloading CubeIDE, I faced even more issues, as now on top o
I am trying to deploy encoder only transformer model on STM32 by converting pytorch model to onnx format first and then using STM toolchain (STM32 CubeAI). However, I am constantly getting this error when I analyzed the model:TOOL ERROR: cannot reshape array of size 0 into shape () I tried to debug my model but couldn't find any issue in it. Any guidance will be appreciated. Thank you.
Hey Guys,I am currently in the process of running an object detection model on the N6. To make it accelerated on the NPU I quantize it during Training (QAT) in pytorch. I made some adjustments to the exported QAT model in onnx to make it run on the n6 NPU (I compared the original onnx output before and after my transformations and they are the same).When i try to validate my Model on the Desktop (MCU) however i get completely different output for the c model:This is a part of the onnx model in netronThe input is quantized and the output notWhat i observed is when i remove the layer after the Conv->Transpose->Reshape the Output of the C model somehow matches the onnx model:Why is this the case? Is there any problem with the slicing and reshape layer because St has channel last and not first?Thanks for the help,If you need more context let me know
Hi everyone,I am trying to train a large dataset in NanoEdge AI Studio, where each class is around 500 MB in size.Totally 5 class.However, I am facing limitations related to the data structure, memory usage, and training workflow in NanoEdge AI Studio. I would like guidance on:Recommended data structuring or segmentation methods for very large datasetsBest practices to handle or reduce large data sizes (windowing, feature extraction, downsampling, etc.)Any tool limitations or configuration settings to be aware ofPossible alternative approaches if direct training with such large data is not supportedIf anyone has experience training large datasets with NanoEdge AI Studio, your guidance or references would be greatly appreciated.Thank you in advance for your support.Best regards,Vijepradeepan
When using stm32n6 and enabling both GFX and AI models, the runtime continuously reports errors:"Epoch controller error interrupt: EC_IRQ = 0x00000008 Epoch controller opcode counter: 0x00000000 Epoch controller tag: 0x00000000 ATON_STD_IRQHandler()@851: irqs=0xlx Assertion '0' failed: file 'E:/TouchGFXProjects/AR_Glasses/Middlewares/AI_Runtime/Npu/ll_aton/ll_aton_runtime.c', line 855, function: __LL_ATON_RT_IrqErr"What could be the possible cause of this? Is it related to the XSPI2 bus? both GFX and cubeAI utilize XSP2.The model used is the official demo program: st_yolo_x_nano_480_1.0_0.25_3_st_int8.tflite from STM32N6-GettingStarted-ObjectDetection-main.I sincerely hope that st can help me solve this problem. Thanks
Hi everyone,I am trying to deploy a custom ONNX model on the STM32N6 using X-CUBE-AI v10.2.0 (ST Edge AI Core v2.2.0), but the tool crashes immediately during the analysis phase.Setup:Target: STM32N6Tool: X-CUBE-AI 10.2.0Model: GTCRN (from this repository:https://github.com/Xiaobin-Rong/gtcrn)Problem: When I run the analyze command, "stedgeai" fails with an internal Python exception. It seems to be failing on a specific attribute lookup. And here is the output/error log:ST Edge AI Core v2.2.0-20266 2adc00962INTERNAL ERROR: 'range' object has no attribute 'reshape'Has anyone encountered this specific internal error before? It looks like a bug within the converter itself rather than a standard validation error. I would appreciate any guidance on how to fix the model or the export process to avoid this crash.
I am currently working on deploying a quantized Int8 TFLite model (ECG classification) onto the NUCLEO-N657X0-Q board using X-CUBE-AI.The Issue: I have successfully flashed the FSBL, Application, and Model Weights . The system boots up, and the inference loop runs without errors. However, the model always predicts "Class 0" (Normal) , even when I feed it hardcoded input data that corresponds to "Class 1" (Abnormal).The Problem: I performed a deep-dive debugging session by pre-filling the tensor arena (SRAM) with a garbage pattern (0x55) before every inference to check if the NPU is actually writing data.My Findings:Input Data: The input buffer is correctly updated for each sample (verified via printf).Layer-by-Layer Failure:Ep2 (MaxPool) & Ep5 (Logits): The memory at these output addresses remains 0x55 55 55.... This indicates the NPU failed to write to these SRAM addresses.Ep3 (Gemm1): The output is static and does not change with input.Ep4 (Gemm2): Surprisingly, this layer's
Hi!I'm new with STM32CubeIDE and STM32N657X0-Q. I'm working with them because of my bachelor's thesis. My model size es 73KB but 432KB because of activations.The input of my ML is data generated with CMSIS-DSP but I have issues in LL_ATON_RT_RunEpochBlock() line and, I can't see the output.I've followed these guidelines:https://community.st.com/t5/edge-ai/ll-aton-set-user-input-buffer-output-buffer-just-returns-wrong/td-p/842354https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-nucleo-n657x0/ta-p/828502https://community.st.com/t5/edge-ai/problems-with-running-an-ai-model-on-the-nucleo-n657x0-q-board/td-p/818432https://community.st.com/t5/edge-ai/inference-blocking-on-ll-aton-osal-wfe-with-threadx/td-p/868994 This code is not mine, it was used at least to resolve printf issues that I had: https://github.com/YousefDessouki/STM32_N6_NuceloBoardwithNPU/tree/main And I have the following code:LL_ATON_RT_Init_Network(&NN_Instance
Dear ST, I am using Nano Edge AI Studio for Embedded ML teaching at university. Recently, I faced the problem of installing licenses on class computers reporting that “License has reached its activation limits”.I understand that Nano Edge Ai Studio is free but I cannot activate multiple computers in the classroom with my personal free license. Could you please explain how to solve the issue (activate 10 computers in the classroom).Regards,Žilvinas Nakutis
Hello ST Community,I am currently working on my Final Year Project (PFE) and would appreciate your guidance regarding hardware and system design choices.Project Context (PFE)Objective:Develop a portable Edge AI–based system to detect worker fatigue in an industrial maintenance environment.Planned Technical Stack:STM32MP1 (Cortex-A7 + Cortex-M4)OpenSTLinux / YoctoTensorFlow LitePhysiological sensors: ECG / PPG, IMU, skin temperatureSpecific Questions1. STM32MP1 Board SelectionBetween STM32MP157F-DK2 (~120€) and STM32MP157A-DK1 (~90€), which board would you recommend for this application?Is the price difference justified for the F-DK2 in the context of a student project?Do you have any feedback regarding the stability and reliability of the onboard Wi-Fi/BLE?2. ST-Recommended SensorsAre there STMicroelectronics sensors compatible with the following needs?Heart rate sensor (PPG – ST equivalent to MAX30102?)6-axis IMU (accelerometer + gyroscope)Accurate skin temperature sensorAvailability
1. Problem DescriptionI am running an int8 quantized 1D CNN model on STM32N6570 (NPU / ATON runtime).The full pipeline is:Modbus sensor input → preprocessing → NPU inference → postprocessing (softmax)The issue is that the NPU output (net_out) is identical for every inference, even though:Sensor values are updated periodically via ModbusPreprocessing produces different x_quant values each timeNPU inference runs without errorOutput buffer is properly invalidated after inferenceExample output log (repeats every inference):Despite different input values, the raw int8 output vector is always the same.2. What has been confirmed (important)1) Pipeline connectivity is correctThe full data flow is confirmed to be connected:ModbusTask updates sensor_valsupdate_timeseries_buffer(sensor_vals) is calledPreprocess_Data() runs successfullyx_quant changes every inference ([DEBUG] x_quant CHANGED)x_quant is copied into net_inNPU inference runs (Run_Epoch())Output buffer is invalidatedPostprocess runs o
Hello, I would like to know if I can use FP-AI-Vision to design my own application, for example, to detect trees in a yard. Or is it designed only for the three applications: food recognition, person presence detection, and people counting?
Hi After the latest update, I can't download C Code from Edge Ai Developer Cloud, there are no boards in the list. fv
Hello. I am currently attempting to execute a MatMul operation on an NPU. I have implemented a simple TFLite file with a MatMul operation, as shown in the image below.When converting the model using ST Edge AI, I observed that Matmul operator is mapped to the MCU instead of the NPU, and the operation is converted into a Convolution. Furthermore, checking the network.c file reveals that it is being converted into a convolution layer with an extremely large stride. https://stm32ai-cs.st.com/assets/embedded-docs/stneuralart_operator_support.html states that the matmul(batch matmul) operator is supported on the ST Neural art Accelerator.How can I resolve this issue? Thank you.
Hello,I recently deployed multiple individual PyTorch models onto my STM32H7A3ZI-Q. My workflow ended up being:1. Convert from .pt -> .onnx -> .tf -> .tflite (quantized)2. Build an X-CUBE-AI project via CubeMX3. Swap models in same project using ST Edge AI Core CLI4. Writing scripts to semi-automate this flowIt works, but setting this up involved quite a few manual steps. Is this the most effective manner to approach this? Curious how others handle thisRegards,Ernest
HelloI'm considering running an LSTM(RNN-based model) model file, on the STN32N657 NPU.However, I understand that the NPU is CNN-based and therefore cannot run on it.Is there a way to run an LSTM model file on the NPU?I understand that theoretically, it's possible to convert an LSTM to a 1D CNN or TCN.Has anyone converted an LSTM model to a 1D CNN or TCN and tested it on the NPU?Is there an example file available?Thank you.
Hello, I am working on implementing an object detection application for the STM32N6570-DK, starting from the reference projects:STMicroelectronics/x-cube-n6-ai-people-detection-trackingSTMicroelectronics/STM32N6-GettingStarted-ObjectDetection I'm encountering a blocking issue when implementing the inference pipeline: During debugging, I found that the inference execution blocks indefinitely at LL_ATON_OSAL_WFE() on line 105 of Appli\App\Src\app_nn.c. The code is stuck in the following loop:static void NN_RunInference(void) { LL_ATON_RT_RetValues_t ret; do { ret = LL_ATON_RT_RunEpochBlock(&NN_Instance_od_yolo_x_person); if (ret == LL_ATON_RT_WFE) { LL_ATON_OSAL_WFE(); // <-- Blocks here } } while (ret != LL_ATON_RT_DONE); LL_ATON_RT_
Hi,I am working on STM32N6570-DK Edge AI development on Windows and I am facing a board programming error when using stm32ai-modelzoo-services. I would like some guidance on the possible root cause and recommended troubleshooting steps.EnvironmentHost OS: Windows 11 Board: STM32N6570-DKTools and versions:STM32CubeProgrammer: v2.20.0 STEdgeAI: 2.2cubeIDE:1.19.0Python: 3.9 Model and datasetModel: st_yolo_xDataset: MS COCO Completed steps:Followed the official instructions to install and configure stm32ai-modelzoo-services on WindowsSuccessfully ran chain_tqeb (training / quantization / evaluation / benchmark) to completionThe quantization output folder contains:Quantized model artifacts (e.g. .tflite / .onnx as produced by the pipeline)A user_config file adapted from the official examplesProblem descriptionWhen running chain_qd or the deployment step for the STM32N6570-DK, the proces
Hello,I am encountering difficulties installing the ST Edge AI v3.0.0 application. During installation, the client cannot connect to MyST, even though my credentials work correctly on the ST website.I have also configured the HTTP proxy in the installer exactly as I have for other ST products, which functioned without issue. Nevertheless, the installer repeatedly displays the following error:“Issue while connecting to MyST. Please verify username, password, or internet access.”Could you please advise on how to resolve this problem?Thank you for your assistance.Best regards,JeM
Hello,At my workplace, we have purchased two STM32N6570-DK boards to implement our computer vision models. We are currently trying to implement the "st_yolo_x_nano 480x480x3" model from the ModelZoo. We followed these two links, strictly respecting the versions indicated for both STM32CubeIDE and STEdge: How to run AI models from Model Zoo on STM32N6 Introduction to Edge AI on STM32N6 (This second link uses STEdge 2.2, as per the reference). The Issue: Every time I attempt to debug, the same thing happens: the program enters a HardFault_Handler(). This occurs due to an invalid/null pointer error returned by the function LL_ATON_Output_Buffers_Info() in buffers_info[0].scale. The error happens specifically when it reaches line 36 of the code. According to the debugger, it cannot access memory at address 0x0. Technical Details:Configuration: The app_Config.h file being used is the one provided in the ModelZoo. /** *******************************
HiI have recently purchased the STEVAL-STWINBX1 (STWIN.box) board, and I’m exploring its use for predictive maintenance applications.I already know that FP-AI-PREDMNT2, together with DSH-PREDMNT, is available for the STEVAL-STWINKT1B kit.Could anyone let me know if a similar cloud application/dashboard (like DSH-PREDMNT) is officially available or supported for the STWINBX1 board?Any guidance or references would be much appreciated.Thanks.
Hello Everyone, I am following below tutorial to create an ai application from scratch on my custom board.https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-nucleo-n657x0/ta-p/828502I am able to run inference following the tutorial. Now, Instead of using UART for transmitting inference results, I want to use USB CDC to transmit the inference results. I have to enable USBX and ThreadX and move MX_X_CUBE_AI_Init() and MX_X_CUBE_AI_Process() from MAIN to app_ux_device_thread_entry. I have given below pool sizes:USBX_MEMORY_STACK_SIZE 1024*35TX_APP_MEM_POOL_SIZE 1024*8UX_APP_MEM_POOL_SIZE 46080When I run the application, I can see the device enumurates as USB serial device. Once I run MX_X_CUBE_AI_Process(), ux_device_class_cdc_acm_write() no longer works. If I comment out MX_X_CUBE_AI_Process(), I am able to continously write data to ux_device_class_cdc_acm_write and view in PC terminal. Further If dont invoke&nbs
Hi everyone,I am a junior engineer trying to learn the new STM32N6 (Nucleo-N657X0) board. My goal is to do some basic computer vision, and I am trying to interface it with a Raspberry Pi Camera Module V2 (Sony IMX219).To be honest, I am a bit overwhelmed by the complexity of the MIPI CSI-2 and DCMIPP settings, and I’m stuck. I’ve been trying to debug this for days but I can't get any image data.Here is what I have:Board: STM32N657X0H3Q NucleoCamera: Standard RPi Camera V2 (IMX219). It has its own crystal (X1) on the back, so I assume I don't need to generate a clock (MCO) from the STM32, but I'm not 100% sure if that's enough.I2C Works: I can read the Chip ID (0x0219) via I2C, so the connections seem okay.The Problem: I configured CubeMX with 2 Lanes, 950 Mbps PHY Bitrate, and RawBayer10 format. But when I run the code, HAL_DCMIPP_PIPE_GetState is always BUSY or failing.I am getting these random error codes in hdcmipp.ErrorCode every time I reset and try again. I don't know w
Hello everyone — I’m running an AI image-classification model on the STM32N6570-DK and I’m stuck with a reproducible problem. The first inference completes successfully (EVENT_DONE), but on the second run the code gets stuck inside the runtime (run_epoch) with no event returned; on the third attempt it again stalls and then triggers a HardFault. I followed the ST tutorial here when creating the project:https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-stm32n6570-dk/ta-p/825591Below are the full details, steps to reproduce, debug info, things I’ve tried, and the files I’ve attached.EnvironmentBoard: STM32N6570-DKModel: Image Classification (generated with STM32Cube.AI)Model and weights: placed in xSPI1 / xSPI2 (QSPI/XSPI) and also copied to internal SRAM for some buffersSRAM clocks: enabled for SRAM3, SRAM4, SRAM5, SRAM6Toolchain: STM32Cube IDE - Latest versionCubeMX / Cube.AI version: Latest VersionRTOS: (bare-metal / FreeRTOS) : Bare
Hello everyone,I’m testing the STM32N6 Neural-ART Hello World project (https://stedgeai-dc.st.com/assets/embedded-docs/stneuralart_stm32n6_projects.html#ref_hello_world_project). The project runs correctly when launched from CubeIDE, but fails when booting from Flash. I have observed that the boot from Flash does happen, I reach main() and If I do not call: SystemClock_Config_HSI_no_overdrive(); I can see my debug prints. However, if I do call it, nothing is printed. This strongly suggests a clock initialization issue or a difference between CubeIDE startup vs Flash boot. I also printed several clock values (CPU, SYS, XSPI1/2, etc.) and they differ between the two boot methods.Additional info:I modified the linker script:MEMORY { AXISRAM1_S (xrw) : ORIGIN = 0x34000000, LENGTH = 1024K }to:AXISRAM1_S (xrw) : ORIGIN = 0x34180400, LENGTH = 511KI also updated set_vector_table_addr() from misc_toolbox.c:SCB->VTOR = 0x34000000;to:SCB->VTOR = 0x34180400;Any insight w
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.