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 am doing a project for fall detectino using the MLC in the LSM6DSOX. However, i noticed that the output of the sensor for the accelerometer show values on the 1000 mg range for the z axis. I would like to calibrate the sensro but the only way I found to do this is using the Motion_AC library. However, I don't know how I could use this library in the Arduino environment and more precisely for the board Nano RP2040 connect. Does anybody know how to perfomr the calibration?. Thanks.
In the TensorFlow model optimization docs they talk about reducing model size with weight pruning and weight clustering. Will either of these techniques help reduce my flash requirements for running my model using the STM AI tools?I've been experimenting with applying these on my model and the results when I upload it to the STM32Cube.AI Developer Cloud does not seem to have any effect. I'm not sure if I'm doing it wrong or if these sorts of optimizations are not relevant in this context. My guess is that applying this sort of gzip compression would use too much ram or that maybe these are already being applied in the optimization step that the server does.If these approaches are not useful here are there any recommendations as to how I can reduce my flash size without reducing the quality of the results? The STM32CubeMX tool seems to allow you to select low, medium or high compression but I'm not seeing any options like that on the STM32Cube.AI Developer Cloud
In the app_x-cube-ai.c
The STM32CubeMX AI tool has an option to compress a model. Is there any way to get compression to work on an quantized model? I'm guessing the answer is no because when I try with a .tflite or .onnx model it complains that only float or double is supported. If there is any way to get model compression to work with an integer model I would appreciate some tips on how that might be done.
Hi,I'm trying to analyze my ONNX model (converted from PyTorch) in STM32 X-CUBE-AI version 8.1.0. But it shows this error: NOT IMPLEMENTED: Unsupported layer types: Expand.I can't find a solution on Google. What do I need to do to analyze/import my model succesfully? Kind regards,Robin
Hello,I want to deploy a AI model on B-U585I-IOT02A board. I'm using the X-Cube-AI plugin for that. Since my model is not able to run on internal flash and RAM, I have selected to use external FLASH and SRAM (from advanced settings in X-Cube-AI). The Flash and SRAM are present on-board and both of them are interfaced with the MCU through OSPI interface.My question is how do I integrate OSPI interface so that X-Cube-AI is able to use it??Is there any example code or application that I can refer to?Thanks in advance.
Hi, can I use NanoEdge AI Studio to make machine learning library that runs on sensor ISPU but using non STM32 MCU?Thanks.
Hello, I have recently discovered the cube.AI developer cloud tool and was trying to test it out. For that purpose i have created a small CNN based Auto Encoder neural network; I have created, trained and validated the network with PyTorch, then saved it in ONNX format (attached below is the picture of the .onnx network generated via NETRON app). when upload the network to the cube AI cloud and start the analysis process terminates with the following error"INTERNAL ERROR: Shape of bias is not consistent: () vs. [(0,)]"I don't understand what the problem with biases are, and I'm wondering if its a bug at ST backend as it seems to me that comparison between an empty tuple and dimension of 0 are saying the same thing about a dimension?Is it possible to fix this issue soon? or should I give up on running Auto Encoder networks on ST MCUs for now?Really apricate help.
I am using the STM32Cube.AI Developer Cloud to convert my ONNX model that I built using PyTorch.Here is my export code:input_size = [1, 8, 1000] x = torch.randn(input_size) onnx_folder_path = 'onnx_models/' if not os.path.isdir(onnx_folder_path): os.mkdir(onnx_folder_path) onnx_filename = "{}{}.onnx".format(onnx_folder_path, filename) torch.onnx.export(model, # model being run x, # model input (or a tuple for multiple inputs) onnx_filename, # where to save the model (can be a file or file-like object) # export_params=True, # store the trained parameter weights inside the model file opset_version=11, # the ONNX version to export the model to # do_constant_folding=True, # whether to execute constant folding for optimization input_names=['input_1'], # the model's input names output_names=['output_1'], # the model's output names )And my model code:class Custom1DCNN(nn.Module): def __init__(self, n_input=128, n_output=7, n_channel=8, pretrained=None): su
We are pleased to announce that the latest version of NanoEdge AI Studio is now available. This new version brings improvements in performance and support for STM32 boards, as well as new features to help users earlier in the creation of their machine learning project. You can download it here. What is new in NanoEdge AI Studio 3.4? Introduction of the Sampling Finder tool to assist automatically in finding the appropriate sampling rate and sampling size to use for your specific application. Implementation of a redesigned validation step to experiment with unused datasets using a selected batch of libraries. Introduction of a new anomaly detection algorithm called "Incremental Principal Component Analysis," which improves the accuracy of anomaly detection tasks. Dataloggers now offer a continuous sampling mode, enabling uninterrupted data collection. Advanced Feature Extraction and Selection capabilities for time-series signals, which generally improves the performance of on-devi
Hello,I am trying to develop an audio classification problem using Unico GUI as software to create a decision tree based on certain features and characteristics for an MLC. However, when I try to generate the decision tree, It doesnt seem to create nothing and instead on the .txt file the only thing that appears is the following:No found the arff file.[load_arff]No sample. [CART]This must be an error because I am generating the arff file and generating the decision tree right after and the arff file is being generated properly but the decision tree. I know the arff file is working properly because I can load it in external tools such us weka. I wonder if the MEMs evaluation kit has to be connected to the computer in order for it to generate de decision tree or if I am simply doing something wrong.Another issue is that the features selected for a filter are not recognized in Weka, or at least, they don't influence the decision tree classification when using that arff file on Weka and I
Hi, is there any methods to increase the FPS and decrease the inference time of image classification model on STM32H747I-DISCO board? Currently, my FPS is 1.6 and inference is 626ms. I am trying to do this project: https://wiki.st.com/stm32mcu/wiki/AI:How_to_use_Teachable_Machine_to_create_an_image_classification_application_on_STM32
Hello,how can I reset FIFO_Get_Rotation_Vector in LSM6DSV16x sensor? Regards,Fehmi.
Hello everyone!Please assist me as I need a BMI323 sensor integrated on any STM32 series on a single board where I will be performing Machine Learning. I'm hoping to hear from you shortly.@stm
Hello, I try to write the sensor_fusion.code in ESP32. I get below compilation error;Compilation error: 'LSM6DSV16X_SFLP_GYROSCOPE_BIAS_TAG' was not declared in this scope here is my code;#include <Arduino.h>#include "lsm6dsv16x_reg.h"#include "lsm6dsv16x_fsm_sflp_asc.h"// #include "lsm6dsv16x_reg.c"#include <Wire.h>/** I2C Device Address 8 bit format if SA0=0 -> D5 if SA0=1 -> D7 **/#define LSM6DSV16X_I2C_ADD_L 213#define LSM6DSV16X_I2C_ADD_H 215/* Private macro -------------------------------------------------------------*//* * Select FIFO samples watermark, max value is 512 * in FIFO are stored acc, gyro and timestamp samples */#define BOOT_TIME 10#define FIFO_WATERMARK 32/* Private variables ---------------------------------------------------------*/static uint8_t whoamI;/* Private variables ---------------------------------------------------------*/static lsm6dsv16x_fifo_sflp_raw_t fifo
Good afternoon, I need to implement a model called "Machine Learning core" on my STM32WB board, https://www.futureelectronics.com/ftm/connectivity/future-electronics-sensor-based-machine-learning/ I created the STM32WB+X-NucleoIKS01A3 stack. I need to activate Unicleo-GUI. https://www.st.com/en/development-tools/unicleo-gui.html.I have debugged and run this Firmware (DataLog Terminal, I attach the screenshots). https://www.st.com/en/embedded-software/x-cube-mems1.html On Unicleo-GUI I can't see the transmitted data.Can you give me any suggestion ?Thank you.Best regardsLuigi Bibbo' PS: my email is luigi.bibbo@unifi.it
Hello,I am working on sensor fusion of LSM303AGR MEMS accelerometer, As a simple program to read acceleration values, I used the I2C read and write blocks, here is my step by step: Initialize sensor: I2C write (0x32), write 0x57 on CTRL_REG1_A(0x20) Read XYZ values: I2C read (0x33), read from 28, 29, 2A, 2B, 2C, 2Dhowever, on all displays I get only 00. and nothing else is happening when i move the board. I suspect, I might have an old version of the sensor where the address might be 0x19 for the acceleration sensor.Is my methodology correct to work the sensor, or are there extra steps involved in initialization or does my returned data need to be multiplied with sensitivty?I have another project in keil mdk where i added the ACC_I2C_ADDRESS to the watch window in debug mode to check if i am using the correct I2C address, but it does not display any value rather throws an error 'cannot evaluate'Could anyone help?
Dear community members,I want to connect the STWIN.box to Tera Term in my project. So i need to know how can i activate the Port COM of my STWIN.box? On picture below, we can see the STWIN.box as a USB peripherial but under Ports(COM et LPT) it's no activate.
Hello ,I recently bought the STWIN.box core system board (STEVAL-STWBXCS1), so I don't know everything about it. I would like to carry out a predictive maintenance project. I followed the steps below:1- flash the binary file with STM32CubeProgrammer2- acquire the data with hsdatalog_GUI.py, the DATALOG2 firmware script. So far, so good.3- Generate the IA library via NanoEdge Studio.In this step, I wanted to acquire the data directly on NanoEdge Studio AI, but the COM port of the STWIN.box is not recognized, so acquisition is impossible.How to run the NanoEdge library on STWIN? and use Tera Term to display the classification results?Thanks in advance for your reply
Hello guys,i have checked stm cases for predictive maintanence (https://stm32ai.st.com/use-cases/applications-predictive-maintenance/), and i realised that most of solutions are made for industrial. I want to make predictive maintenance for product, with simple vibration sensor, not like Steval-stwinkt1b or etc. Is there any guide for stm32 product with nanoedge ai studio or arduino?
Hello,Has anyone worked with LSM303AGR sensor in Simulink. I am trying to interface the sensor and update values continously from board in simulink displays. I have been tryin to set up the connection for so long but nothing seems to be working and I am enable to establish a connection to the simulink model. could anyone experienced with STM32 embedded coder support package help me in making this work. my equipment and software details areUSB TTL 232 RPi cable for serial communicationBoard: STM32F411VET DiscoveryMEMS accelerometer/Gyroscope: LSM303AGR via I2C1 @ PB6 and PB9MATLAB 2023a and CubeMXmy last error was "Could not connect to target application: XCP internal error: timeout expired, in response to XCP CONNECT command"
I am looking for a solution for a cohesive predictive maintenance application using continuous, real-time streaming of data that is continuously monitored for any changes. I was looking to use the industrial grade digital MEMS microphone (IMP34DT05), analog MEMS microphone with frequency response up to 80 kHz (IMP23ABSU) and/or ultra-wide bandwidth (up to 6 kHz), low-noise, 3-axis digital vibration sensor (IIS3DWB) on the STEVAL-STWINKT1B board. The goal is to have data continuously streamed via BLE or Wifi to the cloud, preferably AZURE. Whether it is though edge-processing (preferred) or any other data analysis, the end goal is to be able to continuously monitor this data and detect any anomalies or changes in the data that would indicate a maintenance issue. A possible audio application is FFT analysis and determining if a frequency is out of the expected range. From my understanding, X-CUBE-MEMSMIC1 and FP-SNS-DATALOG1 only have capabilities to collect / mo
Hello,I'm using X-CUBE-AI to implement an ONNX model on a STM32H757I board.In particular, the ONNX model is a PyTorch model that has been exported using the onnx library offered by the pyTorch framework.The analysis procedure fails and reports the following error message:INTERNAL ERROR: Mismatch in presence of batch size: [['H: 40', 'W: 1', 'CH: 6'], (Empty)] vs. [['BATCH: 1', 'CH: 6']]But the model input have static dimension, and running get_inputs() on the onnx model returns:NodeArg(name='actual_input_1', type='tensor(float)', shape=[40,1,6])The model seems to comply with the constraints reported in the STM32CubeAI documentation. Can you help me identifying what's wrong with the model?Thank you!Andrea
Hello,While loading data in MLC in UNICOGU, I get the error below. "The following data pattern cannot be loaded."
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.