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 am trying to deploy a model onto a STM32N6570-DK board. And I encountered some warnings that the Cube-AI cannot support the unsigned int weight and it cannot support other layers such as linear_dynamic and ATen. Iam wondering where I can get some information about what layers or other things the X-Cube-AI actually support so that I can fix may models.
I'm running low on FLASH, and I'm confused about extensions.May i ask if there are any routines or tutorials available?
We are aiming to deploy one of the more well-known CV models on an MCU, the segment-anything model by Facebook, but there are layers that are unsupported, and we can't exactly modify layers as it would greatly affect performance. Fortunately, time is not a concern for us in inference so the speed of the hardware is not a major challenge (as opposed to a GPU).Is there some timeline or plan, or some way we can implement these layers ourselves internally?LayerNormalization, MatMulInteger, DynamicQuantizeLinear, OneHot, ConvInteger, and Range
Hi everyone,I'm currently working with NanoEdgeAI Studio and I'm trying to analyze a signal from mutliple CSV files with each containing more than 450,000 rows of data. However, when I try to compute the FFT, the software displays the following message:"Signal has not enough values per axis to compute FFT."This confuses me because 450k+ values should definitely be enough for an FFT computation?Right now, my CSV contains only a single column with the signal values (no timestamps, no headers, just raw values). Here's what I'm wondering:Does NanoEdgeAI Studio require a timestamp column or a specific format for the signal to be considered valid for FFT?Are there any hidden minimum data requirements per axis, or is it related to how the file is structured?Could the issue be that the tool expects multiple channels or axis-labeled data (like X, Y, Z) instead of just a single stream?Any help or tips would be appreciated — I just want to get the FFT visualization working.Thanks in advance! 
Hello everyone,I followed the following tutorial to deploy, but the compilation got stuck and didn't progress for a long time. I interrupted the process with Ctrl+C, and the window log is as follows. Can anyone help me figure out what's going on?https://github.com/STMicroelectronics/stm32ai-modelzoo-services/blob/main/image_classification/deployment/README_STM32N6.md logs:Windows PowerShell版权所有(C) Microsoft Corporation。保留所有权利。安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindowsPS D:\TEST\stm32ai-modelzoo-services\image_classification\src> python stm32ai_main.py[INFO] : Setting upper limit of usable GPU memory to 24GBytes.[INFO] : Running `deployment` operation mode[INFO] : ClearML config check[INFO] : The random seed for this simulation is 123INFO: Created TensorFlow Lite XNNPACK delegate for CPU.[INFO] : Generating C header file for Getting Started...loading model.. model_path="../../../stm32ai-modelzoo/image_classification/mobilenetv2/ST_pretrainedmodel_public_dataset/flowers/m
I am using the STM32L496G-Disco board. I want to develop an AI model. I am trying to use https://stedgeai-dc.st.com/session. But when I give my data to generate files, launch quantization shows failure, and I do not get any error message in the terminal. Kindly provide me with a proper solution for customized inputs instead of random data. I also converted my data into.npz format.Here, I am uploading my model and testing data, along with the .ioc file with random input. Getting help on these are very difficult, no help is available in internet even. Model is also available in ZIP file.
Starting AI validation on target with random data... C:/Users/allamjayaprakash/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/9.1.0/Utilities/windows/stedgeai.exe validate --target stm32l4 --name network -m C:/Users/allamjayaprakash/Dropbox/STM32/STM32L496G-DISCO/Updated_Model.h5 --compression lossless --verbosity 1 --allocate-inputs --allocate-outputs --memory-pool C:\Users\ALLAMJ~1\AppData\Local\Temp\mxAI_workspace70879369566600013930323030594161238\mempools.json --workspace C:/Users/ALLAMJ~1/AppData/Local/Temp/mxAI_workspace70879369566600013930323030594161238 --output C:/Users/allamjayaprakash/.stm32cubemx/network_output --mode target --desc serial:COM1:115200 --classifier ST Edge AI Core v1.0.0-19894 Setting validation data... generating random data,
I am working with the Nucleo-N6 Board and i am trying to get a neural network to run on the ART accelerator. The following steps are done to create the project:Make new projectSelect NUCLEO-N657X0-Q in the Board SelectorIn Project Structure select "Secure domain only" and "Appli"Then "Finish" and "Generate demonstration code"Configure .iocMiddleware and Software Packs: X-Cube-AI 10.0.0 for context "Application" and check box under core and select "System performance" under ApplicationConfigure LPUART1 Mode: AsynchronousThen again select X-Cube-AI under Middleware and Software Packs and add own network (TFLite) and use LPUART1 under "Platform Settings" (b.t.w. some weird windows pop up which say "Please wait, configuring platform settings" which cant be closed)Resolve Errors in RCC and Clock ConfigurationSave .ioc and generate CodeWhile building -> fatal error in "app_x-cube-ai.c" where the line #include "aiSystemPerformance.h" cant be resolved.Are my steps to create a project w
Hello STMicroelectronics Community,I’m currently working with NanoEdge AI Studio for developing machine learning models on edge devices, and I’ve come across a specific feature that I’d like to learn more about. When I feed current data into NanoEdge AI Studio, the tool analyzes 28 parameters to build the model. However, I am looking for more details on exactly which parameters are being analyzed and how they are derived.Could anyone provide more information on these 28 parameters, or point me to official documentation or resources that explain them in detail?Thank you for your help!Best regards,Abhishek Patil,
Hello,What if I want to use touchfgx and ai at the same time?thanks
Hi, I am using stdatalog-pysdk on a Raspberry PI with Raspberry OS to acquire some data on STEVAL-STWINBX1 and send them to the cloud. I wrote a script in python that sends a number of messages and in every message I start the SensorAcquisitionThread() defined in the HSDLink library. However, when I close the comunication using hsd_link.stop_log() function, the program crashes and continuous printing errors as shown in the following picture: I noticed this problems seems related to the lib_usb library closing procedure after an acquisition. I found that some other users in GitHub have similar issues, but now I'm stucked on a work project in which I use both Raspberry and STwin.box. Do you have any idea when the new version that fixes this bug might be released? Do you know if this issue is related to only Raspberry 4 or to only Raspberry PI OS? Do you think that with Raspberry Pi 5 and Ubuntu the library will works correctly? Thank you! UPDATE: also tried on
Greetings!After updating to the latest v5 of NEAI yesterday, benchmarks have failed to cross the initial step of loading in the first library. I suspect this has to do with the number of cores/ threads and memory being allocated to the NEAI process, as the 3221225773 and 3221225794 pwsh codes are dumped in the logs. For reference, my system has a Ryzen 7 4800H and 16 GB of RAM onboard, which hasn't had an issue with running benchmarks in previous versions. Updating to the new 5.0.1 version released earlier today hasn't fixed the issues either. I've attached my logs below.
Edit by ST Moderator: This post has been translated from Chinese to comply with the ST Community Terms and Conditions (§10.2). After upgrading the software, the anomaly monitoring judgement is no longer allowed and the classification cannot be classified. Can I continue to use 4.6.0 for modelling? 软件升级后,异常监测判断不准了,分类也不能分类。能继续使用4.6.0做模型设计吗?
Hello ST team, I've encountered some serious issues after updating NanoEdge from version 4.6.0 to the latest 5.0.0 version.All my training results from version 4.6.0 have disappeared after updating to version 5.0.0. These old training results are important for my paper. How can I recover them? I only performed an update operation, why was all the data lost?When using NanoEdge version 5.0.0, clicking "create" on any training project doesn't produce any response or pop-up window. I've tried this on two different computers with the same issue. How can I solve this problem? I want to create a new project and start training.Is there a way to keep old versions of NanoEdge or get an upgrade notification? Yesterday during my group meeting presentation, NanoEdge suddenly prompted me to upgrade, and it would exit if I didn't upgrade. However, the upgrade process was extremely slow - I waited for tens of minutes when it should have only taken a few minutes with my internet speed.
Here's a revised version of your query, with improved grammar and clarity:---I am trying to understand the performance expectations of STEDGEAI compared to plain C for float networks.When I convert a network into an ONNX model, I notice that plain C takes fewer cycles than STEDGEAI:- The cycles for Vanilla C are 159,852.- The cycles for STEDGEAI are 234,814.I have checked using CubeMX and CLI, but plain C still performs better. Can someone clarify the expected performance of STEDGEAI in this context?Thank you.
I tried to analyzir sample Keras .h5 model with X Cube Ai in cubeMX and I got the error. [AI:network] Analyzing model [AI:network] /home/anhem/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/10.0.0/Utilities/linux/stedgeai analyze --target stm32n6 --name network -m /media/anhem/mnt/STM32N6570DK_dev/stm32ai-modelzoo-services-1dc52d8ef939fb7875c6e00e7a6f6311f07c5cb1/stm32ai-modelzoo/object_detection/ssd_mobilenet_v2_fpnlite/ST_pretrainedmodel_public_dataset/coco_2017_person/ssd_mobilenet_v2_fpnlite_035_192/ssd_mobilenet_v2_fpnlite_035_192.h5 --compression none --verbosity 1 --workspace /tmp/mxAI_workspace87065551304011411100299247419582710 --output /home/anhem/.stm32cubemx/network_output [AI:network] ST Edge AI Core v2.0.0-20049 [AI:network] WARNING: Found a Lambda layer in Keras: conversion may fail. [AI:network] WARNING: Found a Lambda layer in Keras: conversion may fail. [AI:network] WARNING: Found a Lambda layer in Keras: conversion may fail. [AI:network] WARNING: Found
So I downloaded the new datalog2 demo zip file (early 2025) Installed the bin file into my STWINBOX using STM32programmer and verified that file was the same as target I believe this version is a bit more stable at connecting to the iphone app ST_BLE_Sensor 5.2.4, using BLE. However * I managed to easily lock the stwinbox by pressing the [START] arrow button on the app's Sensors page. the middle green LED stopped blinking and was stuck in either on or off and comms was lost. * The python lib was not present in the zip archive. I started the hsdatalog_GUI.py in datalog 2.3 instead and it had trouble connecting over usb. After connecting, it locked up on a "loading templates" window,. Here's the debug log: 2025-03-26 13:18:39,745 - HSDatalogApp.st_hsdatalog.HSD_link.HSDLink - INFO - Trying to open communication using libhs_datalog_v2...2025-03-26 13:18:39,748 - HSDatalogApp.st_hsdatalog.HSD_link.communication.PnPL_HSD.hsd_dll - INFO - Platform Architecture: 64bitHSD_DLLv2: l
Hello,I am encountering an issue when converting a TensorFlow Dense layer to .tflite and subsequently using the ST Edge AI tool to convert it to .nb format, following the ST Edge AI Guide for MPU.When using a lower-dimensional input, the conversion succeeds. For example, the following code works as expected: input_features = tf.keras.Input(shape=(1, 384), dtype=tf.float32) output = tf.keras.layers.Dense(1536)(input_features) model = tf.keras.Model(inputs=input_features, outputs=output) However, increasing the input dimension to (1500, 384) results in the following error: ST Edge AI Core v2.0.0-20049 PASS: 0%| | 0/2 [00:00<?, ?it/s]Galcore warning: MMU is disabled! E [main.c:vnn_VerifyGraph:93]CHECK STATUS(-3:The requested set of parameters produce a configuration that cannot be supported.) E [main.c:main:236]CHECK STATUS(-3:The requested set of parameters produce a configuration that cannot be supported.) E 21:37:15 Fatal model generation error: 64768 E010(InvalidMode
Hi everyone,I’m having trouble generating a project for the STM32H747I-DISCO board because my AI model exceeds the 1024 KB flash limit allocated for the M7 core (it takes up around 1.09 MB). To solve this, I’m trying to use more memory by following this guide: How to run larger models on STM32H747I-DISCO Here are the steps I followed:Create an empty project for the board, selecting not to initialize the default peripherals.Enable X-CUBE-AI and set the application mode to "Validation".Modify the memory pool from the Tools tab.Reducing the flash allocated for the M4to 64 KB and chaning the boot addressIncrease the flash available for the M7In the X-CUBE-AI configuration screen, I load the model (and at this step I select to optimize the clock and the peripherals), then when I try to generate the code, I get a warning stating that the model exceeds the 1024 KB flash limit. If I ignore the warning and proceed, the generated project appears incomplete and I can't move on buil
Hi everyone,I'm trying to perform a validation test on an STM32H747I-DISCO, but I haven't been able to get it working.Here's what I'm doing:On the ST Edge AI Developer Cloud, I select the model "CNN2D_ST_HandPosture_8classes_hand_posture_ST_VL53L5CX_handposture_dataset.h5", then proceed to quantize and optimize it.I run a benchmark and then download the project for STM32CubeMX 6.14.I open the project and, in the Software Packs, I select "Device Application" for the M7 core and enable the "Validation" option under STMicroelectronics.X-CUBE-AI. I then save the project.Next, I open the generated project in STM32CubeIDE 1.18, compile the code for the M7 and M4 cores in Release mode, and program the STM board. So far, everything works fine. When I press the reset button I can see # # AI Validation 7.1 # Compiled with GCC 13.3.1 STM32 device configuration... Device : DevID:0x0450 (STM32H743/53/50xx and STM32H745/55/47/57xx) RevID:0x2003 Core Arch. : M7 - FPU used HAL version :
Could you please check if the attached .h5 model has anything wrong...It is not analyzing and always producing error...If anything is wrong... please correct it and resend pleaseAnalyzing model C:/Users/surya/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/10.0.0/Utilities/windows/stedgeai.exe analyze --target stm32h7 --name network -m C:/Users/surya/Downloads/updated_cnn.h5 --compression none --verbosity 1 --workspace C:/Users/surya/AppData/Local/Temp/mxAI_workspace1320364323860015601918210486046641 --output C:/Users/surya/.stm32cubemx/network_output ST Edge AI Core v2.0.0-20049 E010(InvalidModelError): Couldn't load Keras model C:\Users\surya\Downloads\updated_cnn.h5, Error when deserializing class 'InputLayer' using config={'batch_shape': [None, 128, 1], 'dtype': 'float32', 
Some errors occurred during the model conversion process. I have provided my model file below. Cube-AI report :NOT IMPLEMENTED: Gemm with channel first A input is not supportedIt seems to be caused by an inability to handle the transposed data, but how do I resolve this issue? Or is the transpose operator unusable?
ST Edge AI Core v2.0.0-20049 NOT IMPLEMENTED: Order of dimensions of input cannot be interpreted
I am looking for example code or documentation to better understand how to integrate a custom model using ST Neural Art library build on STM32IDE. Any pointers to a codebase or relevant references...While working in the ST Developer Cloud, I noticed that the project build file and .ioc file are disabled. How can I proceed with building the code in my local IDE? Is there an alternative setup or a way to generate these files to make the build process smoother?correct me If i am wrong i am new to ST Neural Art library....
I used the N6 to run the mobilenet_v1_0.25_224_fft_int8.tflite, input is correctly put into the input buffer, memory map activated, NPU RAM enabled, AXICACHE enabled, everything seems to be right, the input I also test the input inside the PC in python, and the model can output things right.I dot know why, but in some steps it either jumps in to HardFault_Handler (if I directly start the debugging process without any break point)or runs everything right (using some breakpoints inside the runtime and network.c) but outputs are all Nansdo you have any ideas how I can fix them ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.