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
<alp/inference.h>·<alp/chips/ina236.h>multimodal-fusion-pdm— fuses this current signal with vibration + temperature- Examples overview