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
Hello!I'm using NUCLEO-H7S3L8 and trying to implement my AI on the external octo flash using STM32CubeMX and X-Cube-AI. How can I do this? My main application is already running in the octo flash.Thanks,Marcos.
Hello everyone,I encountered an issue while using ST Edge AI 2.1.0 and I would appreciate some help.Here is my original CUSTOM_MPOOLS configuration, which worked perfectly: "CUSTOM_MPOOLS": { "memory_pool": "./my_mpools/MY_CUSTOM_MPOOL.mpool", "options" : "--enable-epoch-controller -O3 --all-buffers-info --mvei --cache-maintenance --native-float --enable-virtual-mem-pools --Omax-ca-pipe 4 --Ocache-opt --Os" } However, when I added the following options to the options section: --input-data-type uint8 --inputs-ch-position chlast --output-data-type float32 I received the following error: [AI:network] E103(CliRuntimeError): Error calling the Neural Art compiler - ['', 'The following arguments were not expected: float32 --output-data-type chlast --inputs-ch-position uint8 --input-data-type', 'Run with --help for more information.', ''] I referred to the official documentation and saw that it does mention using these commands to modify
When I generate a model's C code with Edge AI DC, what files do I need to replace in this application code example: https://github.com/STMicroelectronics/stm32ai-modelzoo-services/tree/main/application_code/image_classification/STM32N6 to get the model running? Also do I need to still follow steps 1 & 2 since the model is already generated with Edge AI DC?
I'm not getting the option to generate a CubeIDE project with the Edge AI DC despite documentation listing that as an option. I'm only getting the option of downloading the C code
Hi,I am currently working with the nucleo-n657x0-q and trying to validate a tflite model on it. While it works in the neural-ART runtime I cant seem to get a validation program working for the MCU runtime. For the neural-ART runtime I followed the NPU_Validation guide from the 2.1 ST Edge projects package, this worked without problem.For the MCU runtime, my first approach was to follow the guide mentioned above but omit the --st-neural-art flag for the ST cli generate command, when running the n6_loader.py script this results in a "Compilation failed". Attached are the logs produced with the error.My second approach was to use the cubeMX to generate a validation program. The main issue here is that each time that I enable validation in the X-cube-ai package the software freezes 99% of the time. I have been able to work around this issue by first creating a template program in MX and then changing to validation and regenerating the code. What I am stuck on now is that I do not know
Hello everyone,I am using CubeAI 10.1.0 and STAGEAI 2.1 to analyze my model for STM32N6, and I encountered an issue where some epochs show ?? instead of the expected results. Here's the log:epoch ID HW/SW/EC Operation (SW only)epoch 1 ECepoch 2 ECepoch 3 -SW- (DequantizeLinear)epoch 4 -SW- (PRelu)epoch 5 -SW- (QuantizeLinear)epoch 6 -SW- (MaxPool)epoch 7 ECepoch 8 ECepoch 9 -SW- (DequantizeLinear)epoch 10 -SW- (PRelu)epoch 11 -SW- (QuantizeLinear)epoch 12 ECepoch 13 ECepoch 14 -SW- (DequantizeLinear)epoch 15 -SW- (PRelu)epoch 16 ECepoch 17 -SW- (Conv)epoch 18 -SW- (Add)epoch 19 ECepoch 20 -SW- (Conv)epoch 21 -SW- (Add)epoch 22 ??epoch 23 -SW- (Add)epoch 24 ??epoch 25 -SW- (Add)epoch 26 ECIn epoch 22 and epoch 24, the result is shown as ??, and I couldn't retrieve any computation results. I have a few questions:1. What does ?? mean?Does the ?? represent that some operators or operations failed to execu
HI! I am newbie to CUBE AI. I m working on implementing my CNN network that takes input image of 128,128,1 (greyscale) and give an output of 3 classes {class1,class2,class3}.i did convert and try my model to TFLITE successfully on python. then i went to stmcube and did put the model using X-CUBE-AI application template .my problem is with int acquire_and_process_data(ai_i8* data[]) { /* fill the inputs of the c-model for (int idx=0; idx < AI_NETWORK_IN_NUM; idx++ ) { data[idx] = .... } */ return 0; } my input buffer is like this #define AI_NETWORK_IN_1_FORMAT (AI_BUFFER_FORMAT_FLOAT) #define AI_NETWORK_IN_1_HEIGHT (128) #define AI_NETWORK_IN_1_WIDTH (128) #define AI_NETWORK_IN_1_CHANNEL (1) #define AI_NETWORK_IN_1_SIZE (16384) #define AI_NETWORK_IN_1_SIZE_BYTES (65536) i tried putting image as image [128*128] and image[128][128]
Hello everyone,I am currently working on a gesture recognition project using ST's VL53L5CX multi-zone laser distance sensor , and I would like to ask if anyone in the community has experience with related gesture datasets or has worked on similar applications.So far, I have been able to obtain multi-zone distance data from the sensor using NUCLEO + VL53L5CX in an Arduino environment. However, to train and validate the gesture recognition algorithm, I need to collect a large number of gesture samples.Therefore, I would like to ask:1、Is there any publicly available VL53L5CX gesture dataset ?2、Has anyone worked on similar projects and is willing to share some experience or methods for data collection?3、Are there any recommended approaches for feature extraction, preprocessing, or classification algorithms for such gesture data?If anyone in the community is interested in sharing raw data or collaborating on building a dataset, I would be more than happy to work together on this!Thank you a
Hi,I'm trying to implement "1 - x" computation as a part of implementing GRU using onnx model format. I tried doing Sub(1, x), but the Sub operator is not accelerated on the NPU and is run on in software instead.I've attached the model "single_sub_rewritten_q.onnx" for this :(const_1 is a vector of all 1 here, but using a single scalar of 1.0 does the same).And this is the output of stedgeai which shows that Sub is running outside the NPU:Epochs details --------------------------------------------------------------------------------- Total number of epochs: 1 of which 1 implemented in software epoch ID HW/SW/EC Operation (SW only) epoch 1 -SW- ( Sub ) ==================================================================================== Then I tried to do Add(1, Neg(x)) instead, the resulting model is accelerated on the NPU, but the output of the NPU is wrong and always the constant 127 according to the validation output.Running the validation gives this results:
In the Cube AI documentation (stneuralart_api_and_stack.html) there is this code block /* Wait for next event */ if (ll_aton_rt_ret == LL_ATON_RT_WFE) { /*** subject to change to fit also user code requirements ***/ LL_ATON_OSAL_WFE(); }to wait for an event while an epoch is running. I looked into what WFE means and it turns out that it puts the CPU in a low power state and crucially gates all the clocks. The effect of this is that the 4 timers I have running generating PWMs all start getting delayed. I can see on the scope the period increasing up to 4-5x.Is there another way to wait for the epoch to finish without going into a low power state? I am not currently using an RTOS but will switch to one later.
Hi all,Just curious if anyone here is experimenting with stepper motors controlled by Edge AI systems (like Raspberry Pi + AI accelerators, Jetson Nano, etc.). I'm exploring the idea of using local AI models for adaptive motor control — for example, adjusting speed or torque in real time based on sensor input, without relying on a cloud connection.Some use cases I’m thinking of:Smart 3D printers that self-optimize print parametersIndustrial robots with more responsive motor controlPredictive maintenance based on motion patternsHas anyone tried this? Any tips on frameworks or libraries that work well for real-time AI + motor control?Would love to hear your thoughts or see your projects!
greetings!Continuing my studies on MCU STM32, I am dedicating myself to STM32N6.I need to learn how to develop an application that in its first stage will monitor noise and classify it with a neural network type CNN. I have already made a simulator with Python, and a converter of the model's H5 file to tinyML, thus creating a header file (.h) with the neural network model. Now I need to learn how to put it on the stm32N6 and thus classify the noises captured with the STM32N6-DK microphone.In the second stage, I need to develop a CV (Computer Vision) to identify the silhouette of an object and center it, the equipment will be installed on a rover with omni wheels that will move to position the audio pickup prepared in the first stage.I looked at the examples that come with cubemx, but I didn't find anything related to the use of CV and NN.Could you tell me where I can get more advanced examples for STM32N6 that use computer vision and neural networks, especially CNN? Thanks for the
From the definition below, its just a mix of hardware and software epochs, but normally I found only HW and SW when I generate a c file. When is Hyprid epoch used? I what kind of case is it better to use hyprid epochs rather then divide it to a SW part and HW part? Do you have more documentations?
Hello,I'm interested in understanding how much an NPU can accelerate a model. I reviewed the documentation for Neural Art and found that 38 TFLite operators are supported by the hardware:ABS, ADD, AVERAGE_POOL_2D, BATCH_MATMUL, CAST, CEIL, CONCATENATION, CONV_2D, DEPTHWISE_CONV_2D, EQUAL, EXPAND_DIMS, FULLY_CONNECTED, HARD_SWISH, LEAKY_RELU, LOGICAL_AND, LOGICAL_NOT, LOGICAL_OR, LOGISTIC, MAX_POOL_2D, MUL, PACK, PAD, PRELU, (RE)QUANTIZE, RELU, RELU6, RESHAPE, RESIZE_NEAREST_NEIGHBOR (with coordinate_transformation_mode=asymmetric and nearest_mode=floor), SPACE_TO_DEPTH (with same input/output quantization), SPLIT, SPLIT_V, STRIDED_SLICE, SQUEEZE, SUB, TANH, TRANSPOSE, TRANSPOSE_CONV, UNPACK.However, each operator has a different level of computational complexity. Therefore, the acceleration ratio provided by the NPU may vary depending on which operators are used. For example, a model that heavily uses CONV layers may benefit more from NPU acceleration than one that primarily uses ADD o
I have just started to study STM N6 series MCU. I see a lot of functions named with ATON.Anyone can tell me what ATON stand for?thanks!
Dear STMicroelectronics Community, I am a student currently participating in the Tron Programming Contest, and my team is utilizing the STM32N6570-DK board for our project. Working with such a high-end and powerful board presents a significant learning curve, and we have encountered a few challenges for which we would greatly appreciate your expert guidance. Our primary objective is to implement an AI-based fire and smoke detection system using a camera as input. For the contest, we are specifically required to use the μT-Kernel 3.0 Real-Time Operating System (RTOS). My queries are as follows: AI Model Integration: After optimizing our TinyYOLO model using the ST Edge AI Developer Cloud (which generates C files like network_eclobs.h, network_eclobs.c, etc.), we are seeking precise instructions on how to effectively integrate and utilize these generated C files within our μT-Kernel 3.0 project. Specifically, we need clarity on the exact API calls and the overall workflow for running o
Hi,The hardware seems to support 16 bits activations, but this seems to not be usable according to the ST Edge AI documentation.We have a model where at a particular tensor between a Conv and Sigmoid, the precision loss due to the quantization cause non-negligible accuracy loss of the output of the model. The output of the Conv layer is between -90 and 2 mostly, then it goes to Sigmoid. But the low values cause the quantized output to loss too much accuracy, while being needed for an accurate Sigmoid output (which drives audio related ratio where accuracy is important).I've tried to use these parameters with ONNX quantization, but ST Edge AI fails:conf = StaticQuantConfig( calibration_data_reader=dr, quant_format=QuantFormat.QDQ, calibrate_method=CalibrationMethod.MinMax, activation_type=QuantType.QInt16, weight_type=QuantType.QInt8, per_channel=True)The error message is:NOT IMPLEMENTED: Unexpected type for constant input of Dequantize layer (SIGNED, 16 bit, C Size: 16 bits Scale
Hi, I'm opening this issue because I log data with STEVAL-STWINKT1B (battery-powered), and I haven’t been able to get the automode feature working as described in the QuickStart Guide. Here are the steps I followed:Formatted my SD card (SanDisk Extreme 256 GB SDSQXCD-256G-GN6MA) to FAT32 with a 32K allocation unit size;Configured the device_config.json file as shown below and copied it to the root directory of the SD card (which appears as “G:” in my system). Based on the config, I expected to get 4 folders with logs (one per acquisition), each containing 30 seconds of data logging, though I’m not totally sure this is the correct behavior to expect?Inserted the SD card into the logger;Pressed the RESET button;Pressed the USR button (the green LED started blinking immediately);Waited approximately 3 minutes, which should be enough time for 4 acquisitions of 30 seconds each (i.e., nof_acquisition * logging_period_s = 4 * 30 s).Result:When opening the SD card (G:), I only see one fol
Hello! I am working with the developer cloud to benchmark some models' inference speed in a controlled environment. It was working well for the STM32F746G-DISCO board until a couple of days ago, when it just kept saying that my model has a measured inference time of "undefined ms." I was wondering if this issue was known and whether it was possible to benchmark the inference time of my model locally on my board with the same environment as the developer cloud. I am aware of the local benchmarking tool in the ModelZoo services, but it seems to only give the estimated memory footprints, not the inference time.Thank you!
Hi, I am trying to deploy a model onto the N6 disco board with modelzoo's github repo.I have trained my model and am now trying to deploy it to the board via running stm32ai_main.py.I get the following error log that I have not been able to solve on my own. I have cloned the repo with the recursive flag set as I have seen on this forum:PS C:\Users\Haris\Desktop\zooooo\stm32ai-modelzoo-services> c:; cd 'c:\Users\Haris\Desktop\zooooo\stm32ai-modelzoo-services'; & 'c:\Users\Haris\AppData\Local\Programs\Python\Python310\python.exe' 'c:\Users\Haris\.vscode\extensions\ms-python.debugpy-2025.8.0-win32-x64\bundled\libs\debugpy\launcher' '56023' '--' 'c:\Users\Haris\Desktop\zooooo\stm32ai-modelzoo-services\object_detection\stm32ai_main.py' 1 physical GPUs, 1 logical GPUs [INFO] : Setting upper memory limit to 16GBytes on gpu[0] [INFO] : Running `deployment` operation mode [INFO] : Using provided class names from dataset.class_names [INFO] : ClearML config check [INFO] : The random
Hello everyone,I have a GRU-based model that I trained using PyTorch and then exported to ONNX. I'm trying to run it on various ST boards.According to this documentation: ST Neural-ART Operator Supportit seems that the Neural-ART accelerator does not support the GRU layer. However, from what I understand, other ST Edge AI boards should support it—with some limitations described here: ONNX Supported OpsThat said, when I try to compile the model using the ST Edge AI Developer Cloud, I get the following error:TOOL ERROR: operands could not be broadcast together with shapes (512,) (256,)This is the same issue I previously encountered here: Community Thread - GRU/LSTM Model IssueAt this point, I'm not sure whether GRU layers are simply not supported at all, or if there's a way to make them work under specific conditions.I'm attaching the ONNX model in case it helps.Thanks in advance for any support or suggestions!
Dear ST team,I have followed the official tutorial:How to deploy YOLOv8/YOLOv5 object detection modelsand successfully built the deployment pipeline using Ultralytics yolov8n.pt.However, I’ve noticed a significant performance gap between my converted model and the pre-optimized model provided by ST, in terms of inference speed under the same environment.Am I missing any optimization steps during the export process?Are there any recommended configurations or parameters to match the official model’s performance?Thank you for your support.
Hey,I'm using STEVAL-STWINKT1B to log data by inserting the SD card and pressing reset (I don't use BLE connection). It's powered by the battery.I was wondering if there's a way to set a specific logging frequency, like every 15 minutes? The reason I ask is that sometimes logging stops unexpectedly (e.g., when the battery dies), and I end up with empty (.dat) files.Is this feature already implemented, or would I need to develop the firmware myself? If so, how difficult do you think that would be?Best,Anthony
Hi, I am trying to deploy my fine tuned st_yolo .h5 model but I get this error when I run the stm32ai_main.py program:ValueError: Model provided has model identifier '→ ', should be 'TFL3' What am I doing wrong? thanks
1.I chose not to generate calls when generating code in cubemx, but it actually needs to be generated. Also, this cubemx is written in Java and always pretends to be dead. My computer is a high-end Intel i9, so it's impossible for the software to run slowly2.I chose high compression, but it didn't work
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.