ITTIA Edge AI Motor Health Monitoring Demo
This demonstration showcases how motor-related data, including current, vibration, temperature, and speed, is acquired, processed, and managed deterministically at the edge and transformed into AI-ready features for on-device inference. You will see how MCUs, sensors, Edge AI frameworks, and production-grade data management software work together to detect anomalies, predict failures, and deliver reliable motor health intelligence in real time.
Use Case: Predictive Maintenance for Industrial Motor Control
Challenge:
An industrial equipment manufacturer needs to:
- Continuously collect vibration, temperature, and current sensor data
- Store weeks of time-series history locally for analysis
- Run on-device anomaly detection
- Transmit only critical insights to a supervisory MPU, minimizing bandwidth
System Architecture
Hardware:
- MCU: STM32H573I-DK or B-U585I-IOT02A
- Sensors: MEMS accelerometer (pre-recorded), (can also support temperature sensor, current sensor)
- Comms: UART (can also support Ethernet)
- Storage: QSPI external Flash (can also support MicroSD)
Software Stack:
- OS: FreeRTOS (can also support Eclipse ThreadX RTOS, Zephyr)
- Database: ITTIA DB Lite
- AI Model: STM32Cube.AI anomaly detection model (can also support NanoEdge AI Studio, LiteRT, TensorFlow Lite Micro)
- Visualization: ITTIA Analitica dashboard via ITTIA Data Connect (optional)
Implementation
Schema Design
A time-series data stream and table capture sensor readings:
CREATE TABLE vibration_raw_samples (
instance_id INTEGER NOT NULL,
sensor_id INTEGER NOT NULL,
motor_id INTEGER NOT NULL,
sample_time TIMESTAMP NOT NULL,
acceleration_mps2 FLOAT32 NOT NULL,
weighted_acceleration_mps2 FLOAT32 NOT NULL,
inverse_variance FLOAT32 NOT NULL,
PRIMARY KEY (instance_id, sensor_id)
);
CREATE TABLE motor_health_samples (
instance_id INTEGER NOT NULL,
motor_id INTEGER NOT NULL,
sample_time TIMESTAMP NOT NULL,
acoustic_mic_V FLOAT NOT NULL,
acceleration1_mps2 FLOAT NOT NULL,
acceleration2_mps2 FLOAT NOT NULL,
acceleration3_mps2 FLOAT NOT NULL,
temperature_C FLOAT NOT NULL,
PRIMARY KEY (instance_id, motor_id)
);
CREATE TABLE event_actions (
instance_id INTEGER NOT NULL,
event_id INTEGER NOT NULL,
inference_id INTEGER NOT NULL,
event_time TIMESTAMP NOT NULL,
reason_code VARCHAR(32) NOT NULL, -- or event_type: "threshold crossed", "persistent anomaly", etc.
severity VARCHAR(32) NOT NULL,
action_type VARCHAR(32) NOT NULL,
PRIMARY KEY (instance_id, event_id)
);
Data Ingestion
C code with ITTIA DB Lite API:
#include "motor_health_database.h" // generated from schema
int main() {
db_init_ex(DB_API_VER, NULL);
open_motor_health_database("motor_health", NULL);
// ...
}
void log_sensor_data(uint64_t ts_ms, float mic, float vib[3], float temp) {
db_t db;
db_connect(&db, "motor_health", "ingestion", NULL, NULL);
const motor_health_samples_row_t row = {
.instance_id = 1,
.motor_id = 1,
.sample_time = {},
.acoustic_mic_V = mic,
.acceleration1_mps2 = vib[0],
.acceleration2_mps2 = vib[1],
.acceleration3_mps2 = vib[2],
.temperature_C = temp,
};
put_motor_health_samples(db, row);
db_disconnect(db);
} Local AI Inference
Every second, an MCU callback function:
- Receives the last N samples from an ITTIA DB Lite streaming window query
- Normalizes and feeds them to an AI model
- Flags anomalies and stores events in the anomaly events table.
Data Sharing
When an anomaly is detected:
- Summary (timestamp, type, score) sent over UART/Ethernet to PC (also supports i.MX MPU running Linux/QNX/VxWorks/etc.)
- MPU visualizes aggregated events in ITTIA Analitica dashboard
- Benefit: No raw sensor stream leaves MCU → bandwidth saved, privacy improved
Key Advantages
- Deterministic performance, guaranteed latency for real-time loops
- Security, STM32H5 TrustZone + ITTIA DB Lite secure storage
- On-device intelligence—no cloud dependency for critical decisions
- Interoperability—data can be synced to MPU or cloud when needed
- Scalable—same schema/codebase runs on larger STM32H7 or MPU with ITTIA DB
Demonstration Category:
MCUs