Skip to main content

Bearing Fault-Frequency Triage

4-channel ResonatorBank flags which bearing-defect frequency band is dominant in a vibration stream — outer-race / inner-race / ball-defect. 20 neurons in 3,712 bytes, runs on a $2 STM32.

Validation status: synthetic CWRU-frequency signals only. Real CWRU .mat accelerometer-file validation is the top-priority v0.2 milestone.

Triage, not metrology. Flags fault-frequency signatures only — not calibrated ISO 10816 vibration amplitudes, not severity grading, not RUL prediction, not a substitute for SKF IMx or Emerson AMS. Targets the earlier layer in the maintenance chain.

View Source All Use Cases

Key Metrics

Measured 2026-04-10 on synthetic SKF 6205-2RS vibration signals. CWRU bearing characteristic frequencies.

93.0%
Synthetic-window accuracy (200 windows)
6.18
d' Sensitivity (SDT)
0.932
Macro F1 Score
3,712
Bytes RAM (20 neurons)
0.22
µs / step (avg)
4
Fault Channels

Classification Results

Fault TypeFrequencyTPFPPrecisionRecallF1
Normal2410.9601.0000.980
Outer Race (BPFO)107 Hz2430.8890.9600.923
Inner Race (BPFI)162 Hz2230.8800.8800.880
Ball Defect (BSF)69 Hz2301.0000.8850.939

Stress Test — Honest Limits

Noise Resilience — synthetic random-spike transients only

Synthetic noise %AccuracyVerdict
0%100%OK on synthetic random-spike noise
10%100%OK on synthetic random-spike noise
20%100%OK on synthetic random-spike noise
30%100%OK on synthetic random-spike noise
50%100%OK on synthetic random-spike noise

The 50-step energy accumulation window provides excellent noise averaging. Single random spikes are diluted by sustained fault frequency energy.

Speed Compensation

RPMBPFO (Hz)Without Comp.With set_rpm()
90053.6Normal (WRONG)Outer Race
120071.5Ball Defect (WRONG)Outer Race
150089.3Normal (WRONG)Outer Race
1797107.0Outer RaceOuter Race
2400142.9Inner Race (WRONG)Outer Race
Fixed: det.set_rpm(current_rpm) scales input frequencies by cal_rpm/current_rpm. 6/6 RPM levels correct with compensation. Requires tachometer signal.

Remaining Limitations

LimitationImpact
Single-fault onlyCannot report multiple simultaneous faults
No severity estimationCannot distinguish 0.007" from 0.021" defects
Synthetic data onlyNot validated on real CWRU accelerometer signals

How It Works

Vibration Signal accelerometer freq Speed Compensation f × (cal_rpm / current_rpm) set_rpm() API ResonatorBank 4 channels × 5 neurons = 20 neurons · 3,712 bytes FTF 15 Hz · BSF 69 Hz · BPFO 107 Hz · BPFI 162 Hz Energy Accumulator 50-step window per channel argmax(channels) Normal no fault energy Outer Race BPFO 107 Hz Inner Race BPFI 162 Hz Ball Defect BSF 69 Hz

How It Compares

Against classical envelope analysis (industry standard), TinyML CNNs (Hakim 2023 Lite CNN, FaultNet), ResNet-50, and commercial SKF IMx / Emerson AMS analysers. All numbers from peer-reviewed papers or vendor documentation.

RAM, Model Size & Latency

SystemRAMModel sizeInference time
CricketBrain UC023.7 KB~25 KB flash0.13-0.26 µs/step
Classical envelope analysis< 5 KB< 10 KB1-10 ms
Lite CNN (Hakim 2023)~100 KB600 KB (153 K params)120-140 ms
FaultNet (2-layer CNN)~200 KB~1 MB10-50 ms
ResNet-50> 1 GB GPU96 MB (23.9 M params)~3 s
Commercial SKF IMx / Emerson AMSPC-class10-100 MB

CricketBrain is ~250× smaller than the lightest published CNN that saturates the CWRU benchmark (Hakim 2023), and > 25 000× smaller than ResNet-50.

Average Power at 1 Hz Decision Rate

SystemActive powerDuty cycleAverage power
CricketBrain — STM32F0 @ 48 MHz~15 mW0.001%< 1 µW compute
Classical envelope on STM32F4~50 mW1%~500 µW
Lite CNN on Cortex-M7 @ 216 MHz~100 mW14%~14 mW
FaultNet on RPi~500 mW5%~25 mW
ResNet-50 on Jetson~5 Woffline batch
SKF IMx / Emerson AMS~10 W (mains)100%~10 W

For a self-powered wireless vibration tag running on a piezo/RF energy harvester (~100 µW budget), only CricketBrain fits.

CWRU Accuracy & Training Data

SystemTaskCWRU accuracyTraining data
CricketBrain UC02 (synthetic)4 classes93.0%, d' 6.18Zero
Classical envelope analysis4 classes95-98% on clean dataZero
Lite CNN (Hakim 2023)10 classes99.86-99.97% (mean 99.95%)CWRU full
ResNet-50 (Hakim 2023 table)10 classes99.95%ImageNet + CWRU fine-tune
CNN-Transformer (Nature Sci. Rep. 2025)10 classes> 99%CWRU multi-condition

CNNs saturate at > 99.9% but need ~250× more memory and ~20 000× more compute. For a bolt-on wireless vibration tag, the 7% accuracy gap buys 3.7 KB RAM with zero training data.

When to Pick Which

ScenarioRecommendation
Wireless self-powered tag on thousands of motors/pumpsCricketBrain
Custom bearing geometry (no training corpus)CricketBrain
Edge gateway (Cortex-M7, RPi, Jetson Nano), 10-class repertoireLite CNN / FaultNet
Mains-powered analyser, RUL trending, fleet analyticsResNet-50 / SKF IMx / Emerson AMS

Full sourced breakdown (Hakim 2023, FaultNet, CNN-Transformer): docs/competitive_analysis.md.

Dataset & License

FieldValue
DatasetCWRU Bearing Data Center
LicensePublic Domain
URLengineering.case.edu/bearingdatacenter
BearingSKF 6205-2RS deep groove ball bearing
Sampling12,000 Hz drive-end accelerometer
Motor2 HP Reliance Electric, 1797 RPM
License: CricketBrain source is AGPL-3.0. Commercial use requires paid license (details). CWRU dataset is Public Domain. Citation: Loparo, K.A., Case Western Reserve University.

Quick Start

Terminal
cd use_cases/02_predictive_maintenance
cargo run --release                                    # Synthetic demo
cargo run --release -- --csv data/processed/sample_bearing.csv  # CSV mode
cargo run --release --example bearing_sdt              # SDT benchmark
cargo run --release --example bearing_stress            # Stress test