Skip to main content

motor-current-signature

:::warning [UNTESTED] — v0.9 paper-correct The current_features core is host-unit-tested on native_sim/native/64; the full app runs end-to-end on native_sim with synthetic current covering all five states. No model ships (stub + deterministic classifier/fallback). HiL on a real motor + a trained model is bench-gated. :::

A DC motor / load current-signature health monitor: sample an INA236 high-side current/voltage/power monitor, extract a feature window, classify the operating state (OFF / NORMAL / INRUSH / OVERLOAD / STALL), and emit an AI anomaly score for off-taxonomy faults. The electrical PdM modality, complementing the vibration and acoustic examples.

Source: examples/ai/motor-current-signature/.

Honest scope

The INA236 is a DC high-side shunt monitor. This is DC-rail / brushed-DC-motor current-signature analysis (MCSA-style) — it is not AC-mains NILM / energy disaggregation (that needs a dedicated AC energy-metering front-end). Monitor-only. At 200 Hz, resolvable ripple is < 100 Hz (Nyquist); sensorless RPM from faster commutation ripple is bench-gated.

Key discriminator: rms_ac_a (AC ripple magnitude) separates STALL (high current, no commutation ripple → rotor not turning) from OVERLOAD (high current with ripple → turning under load).

Pipeline

INA236 (I2C, ~200 Hz) --window--> current_features (mean/ripple/crest/slope/power)
-> current_classify (OFF/NORMAL/INRUSH/OVERLOAD/STALL)
-> <alp/inference.h> anomaly score (deterministic fallback) -> CURR record

board.yaml

som:
sku: E1M-AEN701

preset: e1m-evk
supported_boards:
- e1m-evk
- e1m-x-evk

pins:
- { e1m: E1M_I2C0, macro: EVK_I2C_BUS_SENSORS, doc: "INA236 current monitor bus" }

cores:
a32_cluster:
os: "off"
m55_hp:
app: ./src
inference:
default_arena_kib: 64
libraries:
- tflite_micro
peripherals:
- i2c # INA236 link

chips:
- ina236 # high-side current/voltage/power monitor

diagnostics:
log_level: info

Flip som.sku to E1M-V2M101 for the DEEPX DX-M1 path.

Expected output

# CURR,t_s,state,mean_a,mean_w,ripple_hz,anomaly_score
CURR,1.28,NORMAL,1.02,12.3,39.8,0.08
CURR,5.12,STALL,3.10,37.2,0.0,0.90

See also

Questions about this page? Discuss in Community Forum