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.
Key Metrics
Measured 2026-04-10 on synthetic SKF 6205-2RS vibration signals. CWRU bearing characteristic frequencies.
Classification Results
| Fault Type | Frequency | TP | FP | Precision | Recall | F1 |
|---|---|---|---|---|---|---|
| Normal | — | 24 | 1 | 0.960 | 1.000 | 0.980 |
| Outer Race (BPFO) | 107 Hz | 24 | 3 | 0.889 | 0.960 | 0.923 |
| Inner Race (BPFI) | 162 Hz | 22 | 3 | 0.880 | 0.880 | 0.880 |
| Ball Defect (BSF) | 69 Hz | 23 | 0 | 1.000 | 0.885 | 0.939 |
Stress Test — Honest Limits
Noise Resilience — synthetic random-spike transients only
| Synthetic noise % | Accuracy | Verdict |
|---|---|---|
| 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
| RPM | BPFO (Hz) | Without Comp. | With set_rpm() |
|---|---|---|---|
| 900 | 53.6 | Normal (WRONG) | Outer Race |
| 1200 | 71.5 | Ball Defect (WRONG) | Outer Race |
| 1500 | 89.3 | Normal (WRONG) | Outer Race |
| 1797 | 107.0 | Outer Race | Outer Race |
| 2400 | 142.9 | Inner Race (WRONG) | Outer Race |
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
| Limitation | Impact |
|---|---|
| Single-fault only | Cannot report multiple simultaneous faults |
| No severity estimation | Cannot distinguish 0.007" from 0.021" defects |
| Synthetic data only | Not validated on real CWRU accelerometer signals |
How It Works
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
| System | RAM | Model size | Inference time |
|---|---|---|---|
| CricketBrain UC02 | 3.7 KB | ~25 KB flash | 0.13-0.26 µs/step |
| Classical envelope analysis | < 5 KB | < 10 KB | 1-10 ms |
| Lite CNN (Hakim 2023) | ~100 KB | 600 KB (153 K params) | 120-140 ms |
| FaultNet (2-layer CNN) | ~200 KB | ~1 MB | 10-50 ms |
| ResNet-50 | > 1 GB GPU | 96 MB (23.9 M params) | ~3 s |
| Commercial SKF IMx / Emerson AMS | PC-class | 10-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
| System | Active power | Duty cycle | Average power |
|---|---|---|---|
| CricketBrain — STM32F0 @ 48 MHz | ~15 mW | 0.001% | < 1 µW compute |
| Classical envelope on STM32F4 | ~50 mW | 1% | ~500 µW |
| Lite CNN on Cortex-M7 @ 216 MHz | ~100 mW | 14% | ~14 mW |
| FaultNet on RPi | ~500 mW | 5% | ~25 mW |
| ResNet-50 on Jetson | ~5 W | offline 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
| System | Task | CWRU accuracy | Training data |
|---|---|---|---|
| CricketBrain UC02 (synthetic) | 4 classes | 93.0%, d' 6.18 | Zero |
| Classical envelope analysis | 4 classes | 95-98% on clean data | Zero |
| Lite CNN (Hakim 2023) | 10 classes | 99.86-99.97% (mean 99.95%) | CWRU full |
| ResNet-50 (Hakim 2023 table) | 10 classes | 99.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
| Scenario | Recommendation |
|---|---|
| Wireless self-powered tag on thousands of motors/pumps | CricketBrain |
| Custom bearing geometry (no training corpus) | CricketBrain |
| Edge gateway (Cortex-M7, RPi, Jetson Nano), 10-class repertoire | Lite CNN / FaultNet |
| Mains-powered analyser, RUL trending, fleet analytics | ResNet-50 / SKF IMx / Emerson AMS |
Full sourced breakdown (Hakim 2023, FaultNet, CNN-Transformer): docs/competitive_analysis.md.
Dataset & License
| Field | Value |
|---|---|
| Dataset | CWRU Bearing Data Center |
| License | Public Domain |
| URL | engineering.case.edu/bearingdatacenter |
| Bearing | SKF 6205-2RS deep groove ball bearing |
| Sampling | 12,000 Hz drive-end accelerometer |
| Motor | 2 HP Reliance Electric, 1797 RPM |
Quick Start
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