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 installed the latest STM32Cube AI Studio along with STM32CubeMX 6.16.0, STM32CubeProgrammer 2.21.0, and ST Edge AI Core.CubeMX has STM32CubeU5 Firmware Package V1.8.0 / 04-June-2025 installed.All attempts to run a neural network end with: ../../Middlewares/ST/AI/Misc/Inc/ai_device_adaptor.h:624:8: error: unknown type name 'UART_HandleTypeDef' When AI Studio generates a project from any neural network, it disables the UART in stm32u5xx_hal_conf.h.Even if I uncomment the #define of HAL_UART_MODULE_ENABLED, the app cannot be compiled because the stm32u5xx_hal_uart.h header was never generated.If I click on the little gear at the upper right in Cube AI Studio, it shows me that the COM5 LPUART1 is configured.So I'm stuck -- Cube AI Studio cannot be used with the stm32u5xx devices.Any advice?Thanks! --Mike
Hello,I'm trying to run a simple validation or application on the NUCLEO‑N657X0 but I can't seem to get past build errors. I don't know if it's the setup in CubeMX or what. Thanks
Hi,I am compiling a MiniFASNet-based liveness ONNX model for STM32N6 using ST Edge AI Core v2.2.0.The model behaves correctly in Python, but when deployed on STM32N6 the performance degrades noticeably.What is confusing is the following:Original ONNX model → good results in PythonST-generated optimized model (*_OE_3_3_0.onnx) → also good results in Python (not compared to original model)Same compiled model running on STM32N6 → significantly worse liveness performanceModel & Compilation DetailsCommand used:./stedgeai generate \ --model best_model_quantized_calib.onnx \ --target stm32n6 \ --input-data-type float32 \ --output-data-type float32 \ --inputs-ch-position chlast \ --no-onnx-optimizer \ --verbosity 3Compilation summary (excerpt):Input: f32 (1x128x128x3)Output: f32 (1x2)Model format: ss/sa per tensor119 epochs (2 software: QuantizeLinear, DequantizeLinear)Native float enabledActivations allocated in NPU RAM regions(Full log pasted below)What Has Been VerifiedPreprocessi
Hello ST Community,I am working on my final year project: an autonomous "Multimodal Medical Assistant Robot" based on the NUCLEO-H723ZG (Cortex-M7, 550MHz). I would like to have your expert opinion on the feasibility and technical architecture.Key Features:100% Offline AI (Edge AI):Audio: Keyword Spotting (7 commands) using INMP441 (I2S) and CMSIS-DSP (MFCC).Vision: Fall detection using OV2640 (DCMI) and a light MobileNet model.Software Stack: X-CUBE-AI, TensorFlow Lite Micro, FatFS.Innovation (Dynamic Loading): We plan to load the AI models (.tflite) and voice responses (.wav) dynamically from a USB Flash Drive (USB Host MSC) into RAM at boot time.Specific Questions:Is the NUCLEO-H723ZG powerful enough to run both Audio and Vision inference concurrently while managing motor control (PWM) and USB Host?Regarding the USB Host / RAM loading: Does X-CUBE-AI support "relocatable weights" loaded into RAM from an external storage device via FatFS? Any specif
Hello,The latest version of X-CUBE-AI is 10.2.0, which comes with ST Edge AI Core v2.2.0.The latest Edge AI Core version is v3.0.0.The STM32 model zoo release 4.0 adds support for ST Edge AI Core v3.0.0.The STM32 model zoo release 3.2 adds support for ST Edge AI Core v2.2.0.Some of the models from the model zoo release 4.0 fail to generate code with the latest X-CUBE-AI with errors such as "Your model ir_version is higher than the checker's".What are the intended tools to build the models from the modelzoo 4.0 release for the STM32N6, or is only release 3.2 supported?Thanks!
Hello,I am experimenting with X-Cube-AI (v10.2.0) in STM32CubeMX(v6.16.1). I noted that the version of the ST Edge AI Core in this case is v2.2.0. Moreover, this makes that the Embedded Interface is the legacy one, instead of the the newest ST-AI. I wonder if there are plans to update X-Cube-AI so it uses the latest version of ST Edge AI (v3.0.0), and uses the latest the ST-AI interface.Thanks.
how to build object detection hex file in stm32cubeprogrammer using stm32 ai model zoo on stm32N6570-DK microcontroller, how to know the board is flash or not, how i see the live ouput in lcd on the board please explain clearly.
Hello,I have a custom yoloV8n model that works on STM32N6570-DK_GettingStarted_ObjectDetection. I have trained a yoloV11n model that i would like to test on the board.But on this exmple there is no yoloV11_ui.c ?How i can adapt this example ?Do i need to use app_postprocess_od_yolo_d_ui.c ?Regards,
I have been working with and familiarized myself with the GettingStarted applications, most specifically the object detection program found on GitHub: https://github.com/STMicroelectronics/STM32N6-GettingStarted-ObjectDetectionI would like to take the next step and load my own model onto the board, I like the setup the current code has to output the frames and show the inference processing on the LCD screen and would prefer to utilize the current sample code if possible. My question is thisAm I able to load in my own model I trained using the ModelZoo services, replacing the current model after I convert it to C code. Or will I have to make my own code from scratch to do this Camera->Frame->NN->LCD pipelineAndDo I have to train the model using a certain resolution? I am currently gathering training images by running code found here: https://github.com/STMicroelectronics/x-cube-n6-camera-captureThe output frame that is captured is 800x480 resolution RGB888,
Hello,I'm trying to use 2 networks from the STM32 model zoo on the STM32N6. I would like to load the weights of both models into my external RAM, and the activations into the npuRAM3,4,5 and 6. I have selected the n6-extram profile for both models.I cannot figure out how to configure from X-CUBE-AI the address for the activations and weights, such that they don't overlap. The compiler reports:Compilation details ------------------------------------------------------------------------------------ Compiler version: 1.1.1-14 Compiler arguments: -i st_yolo_x_nano_256_0.5_0.4_int8_OE_3_3_0.onnx --json-quant-file st_yolo_x_nano_256_0.5_0.4_int8_OE_3_3_0_Q.json -g image_network.c --load-mdesc stm32n6.mdesc --load-mpool stm32n6__extRam.mpool --save-mpool-file stm32n6__extRam.mpool --out-dir-prefix neural_art__image_network/ --optimization 3 --all-buffers-info --mvei --cache-maintenance --Oauto-sched --native-float --enable-virtual-mem-pools --Omax-ca-pipe 4 --Ocache-opt --Os --output-info-file
Hi, I followed the guide at the following link:https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-nucleo-n657x0/ta-p/828502and I've run an example gently posted here that is similar (the link was posted on the comments of the guide):https://github.com/YousefDessouki/STM32_N6_NuceloBoardwithNPU.gitWhen I run the model posted on github on my Nucleo it's all fine and it will print output results on PuTTY console.However, when I try to change the neural network with one of those used for speech enhancement posted at the following link:https://github.com/STMicroelectronics/stm32ai-modelzoo/blob/main/speech_enhancement/stft_tcnn/ST_pretrainedmodel_public_dataset/valentini/stft_tcnn_medium_sigmoid_257xsl_float.onnx https://github.com/STMicroelectronics/stm32ai-modelzoo/blob/main/speech_enhancement/stft_tcnn/ST_pretrainedmodel_public_dataset/valentini/stft_tcnn_medium_sigmoid_257xsl_qdq_int8.onnx(I need to run a speech enhancement model for a project
Hey there Community,I have two Issues I would appreciate aid with.Case1I have successfully created a Nano Edge AI Bench mark and I chosen the best model to run on the N6 Neucloe dev board. I need benchmark for another ML scenario, I intend on having both the Models running on the neucleo at the same time.Problem: I have wounder is given the interfacing with the generated libraries from Nano Edge AI, there Is support to run more than one model, i.e How would you call the inference on given model if both ":libneai.a" files share the same "NanoEdgeAI.h" interface.QN: Is there a work around for this scenario??Case2I have attached image file for this one, During the validation process There seems to be an Error with the enumeration. please see attached file form more information. The Error at times can be 27, Where do I get more information about these Errors.@FBL
STM32N6570-DK Custom AI Model Flashing Error Background / Official Requirements According to the official documentation for flashing the AI model onto the DK, three key .HEX files are required: ai_fsbl.hex STM32N6570-DK_network_data.hex STM32N6570-DK_GettingStarted_ObjectDetection.hex Steps I Have Taken to Integrate My Custom Model Model Conversion: I successfully imported my custom model(st_yolo_x_nano_480_1.0_0.25_3_st_int8.tflite-STM32N6570-DK-code) into the ST Edge AI Developer Cloud. After quantization, I obtained a folder containing the three necessary files for the network data: network.c, network_ecblobs.h, and network_atonbuf.xSPI2.raw. Following the official guide, I used PowerShell to convert these three files into the single STM32N6570-DK_network_data.hex file. This file was designated to be flashed at the correct memory address: 0x70380000 Application Code Modification: I modified the application configuration file: Inc/app_config
Dear ST community, We've been evaluating STM32N6 NPU since early january. We aim to deploy yolov8n / yolov11n inside the NPU.So far we've been able to use modelzoo provided by ST. We weren't able to do the same with yolov8 or yolov11n we trained using ultralytics scripts. Here the procedure we applied : - Download repo modelzoo and modelzoo-services- Verify that stm32ai_main.py associated with deployment_n6_yolo11n_config.yaml does work (it does, we just modify it to target Nucleo board)- Download / train yolov11n model using ultralytics framework use same input dimensions; export to Tflite format- Use ST script to quantize tflite mode (tflite_quant.py) - Import the quantized tflite model and modify the .yaml to use our trained model instead of the ST version.- Let the design flow execute After that, nothing happen on the board. I've opened STM32Cube to see what happens on debug level. When reaching Run_Inference the NPU sort of "stall" (infinite loo
I want to know what computer vision is and what are its real world applications.
Can Nano edge AI be used to log data from STM32N6570-DK, which is connected to three sensors? If Yes, Is there any documentation available ?
Hello,I am currently testing out the model zoo examples, following https://community.st.com/t5/stm32-mcus/how-to-run-ai-models-from-model-zoo-on-stm32n6/ta-p/814254 and the READMES. Programming the .hex files to the STM32N6-DK works and produces a running firmware. However, when I compile the application using the provided makefile and flash it onto the MCU as described in the README, the screen just remains black. I tested this for object-detection, face-detection and pose-estimation.Best,Steve
Hi all,I’m trying to compile an ONNX model that has float32 input and output. When I compile the model using ST Edge AI, the generated output ONNX shows both input and output as INT8 instead of float32. I wanted to understand:- Is this behavior because the model is being compiled specifically as an ONNX model?- Or is there a specific reason STEdgeAI is forcing INT8 input/output during compilation (e.g., quantization settings, optimization constraints, or tool limitations)? Any clarification on how STEdgeAI handles mixed-precision models and I/O types would be really helpful.Thanks in advance!
Hey,I am trying to run a model on the n6 npu.Currently most layers are run on the npu as the should but there are some layers which are executed on the SW target, even though the documentation states that the layer should be HW supported (in this case its the HardSigmoid layer). Changing the activation to a Sigmoid layer will make it run on the HW side. I thought it could be the case since in the documentation it states that sigmoid supports X*Sigmoid(X) and the problem layer is at a skip connection but i have early occurrences of the exact same HardSigmoid Skip connection pattern which are executed on the HW. Its only 2 of these blocks that are executed on the SW. Is this a bug or intential due to some optimization being done by the compiler.I attached an image of the model graph and Cube AI Analyze output.Thanks in advance
I've been developing an object detection application from scratch by using STM32CubeMX and IDE. The evaulation board that I'm using is STM32N6570-DK.I actually succeeded in implementing the continuous displaying of camera input. And then I tried to import the AI related code from the object detection code in STM32 Model Zoo Services.But unfortunately I found that there is a problem while executing Run_Inference() function.I traced the execution step and then finally I found that there is something wrong in handling NPU interrupts.In the ATON_STD_IRQHandler() in ll_aton_runtime.c file, irqs variable has the value of 0x16000000 which leads to exit().To find out the expected value, I downloaded the object detection code in STM32 Model Zoo Services, and then found out the irqs variable should have the value of 0x10000000.I would like to know the meaning of each bit in the irqs variable, which seems to be ATON_INTCTRL_INTREG variable.STM32CubeMX: 6.16.1 for Windows 11STM32CubeIDE: 2.0.0STM3
Hi all,I’m currently developing a project on the STM32N6 and am looking for advice on the most robust development workflow. Given the complexity of the N6, I’d like to leverage the automation of CubeMX, but I’ve encountered several hurdles. CubeMX frequently freezes and generates wrong code. Moreover, code generation seems to vary between versions, making it difficult to maintain projects over time or follow existing tutorials (such as https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-nucleo-n657x0/ta-p/828502). Also tutorials recommend to change generated code to make the projects running, which goes against the purpose of automatic code generation.I’ve noticed the ST Edge AI Model Zoo examples appear to use a hybrid approach. It looks like some functions where taken from CubeMX, but the examples itself do not rely on the .ioc file generation.What is the best/recommended way to write software for the STM32N6? Use the firmware package:
Hi all,I attached my project (CMake using STM32Cube for VSCode) that generates this behavior. I am trying to make a neural network run on the NPU of the STM32N6. I was following this tutorial: https://community.st.com/t5/stm32-mcus/how-to-build-an-ai-application-from-scratch-on-the-nucleo-n657x0/ta-p/828502 , except that I use XIP instead of loading the program to the RAM and use a custom small NN from an .onnx file (also included in the attatched .zip). However, the neural network returns wrong values independent of the inputs and when resetting, the values change.My suspicion is that it has something to do with the cache. However, I am cleaning and invalidating the cache as recommended here: https://community.st.com/t5/edge-ai/the-output-of-a-relative-big-model-is-different-even-if-giving/td-p/811283 (except that I use the function mcu_cache_clean_invalidate_range, which the tutorial recommends)I also save the weights to the flash and not the RAM, which was t
I have a small problem upgrading the STM32N6-GettingStarted-ObjectDetection example project to a newer Edge AI version: I am trying to upgrade the existing yolo person detection net to the latest Edge AI revision (3.0) before exploring custom network.I think I updated all necessary parts as described in the Edge AI version update FAQnew static library (the non- _PIC version)updated the NPU subdirectory, added missing file to the STMCubeIDE projectin main.cchanged the NN name from 'Default' to 'network' to match the generated codereplaced npu_cache_init with npu_cache_enable (at this point, the inference loop was stuck waiting for completion , so..: )implemented npu_cache_enable_clocks_and_reset with the original CACHEAXI enabling codeAt this point, the npu seemingly started but causes this error:Bus interface interrupt BUSIF0 ERR: 0x0 BUSIF1 ERR: 0x3 ATON_STD_IRQHandler()@877: irqs=0xlx assertion "0" failed: file "/home/simon/STM32CubeIDE/workspace_1.19.0/STM32N6-Get
HiWe're looking at an application where it may be helpful for an STM32N6x7 MCU to encode and store video from an ST image sensor then later recover and decode the video for analysis by the Neural-ART Accelerator in the STM32N6x7 - encoding and storing the video in real time then later recovering the video from storage and analysing it using the Neural-ART Accelerator would avoid the need for the analysis to be done in real time and ease power management.Video decoding on the STM32N6 series was last discussed in the community in March 2024 and at that time it wasn't on the roadmap but I thought I'd ask to see if this nay have changed since then?We were wondering if there was any roadmap now for H264 decoding on MCUs or if perhaps a difference approach might be better? For example, storing full quality encoded video and separately storing video downsized to fit the Neural-ART Accelerator as raw rather than as encoded video?The application is an open source wildlife camera for conser
Hello, I would like to ask about a question regarding “STM32N6570-DK for gesture recognition control applications.”I have downloaded the official example x-cube-n6-ai-hand-landmarks-main and reviewed the DataBrief of the development board. Since the board itself does not contain internal Flash, the file _htmresc/FSBL.PNG in the example clearly indicates two possible solutions:User APP programmed into SRAM (address: 0x3400 0400 ~ 0x3418 0000)User APP programmed into external Flash (address: 0x7008 0000 ~ 0x7FFF FFFF)Following the instructions in README.md, I executed the following steps:~make -j8~ Program the Firmware in the External FlashAfter building the application, it is necessary to add a signature to the binary file:~STM32_SigningTool_CLI -bin build/Project.bin -nk -t ssbl -hv 2.3 -o build/Project_sign.bin~ After obtaining the signed binary file, I manually programmed it to address 0x70100000.(The files ai_fsbl.hex, hand_landmark_data.hex, and palm_det
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.