Viva preparation: Bearing fault detection on a low-cost edge device
Subject: B.Tech ECE final year project · Author: Nisha Pillai · Date: 2 May 2027
| Viva date | Examiners | Duration | Format |
|---|---|---|---|
| 12 May 2027 | Dr. R. Subramanian (guide), external examiner from the industry panel | 20 minutes per team | Demo, then questions to each member |
Explain it in 60 seconds
Small workshops run their motors until a bearing fails, because vibration monitoring costs more than the motor. We built a ₹1,500 clip-on node with an ESP32 and an accelerometer that listens to the motor's vibration, works out the energy at the frequencies a damaged bearing produces, and runs a tiny neural network on the device to say healthy, inner race fault or outer race fault. Trained on the public CWRU dataset it scored 97.8%. On a real motor in our lab it dropped to 88.4%, and fine-tuning on our own recordings brought it to 93.1%. It decides in 38 ms and alerts the owner's phone in about 22 seconds.
Questions by topic
Bearings and vibration
Why does a bearing fault show up in vibration at all?
Each time a rolling element passes over a defect it produces a small impact. These impacts repeat at a rate set by the bearing's geometry and the shaft speed, so they appear as energy at specific defect frequencies.
Why are inner race and outer race faults at different frequencies?
The outer race is fixed, so elements pass a defect on it at the ball pass frequency outer race. The inner race turns with the shaft, so elements pass its defect faster, at the ball pass frequency inner race, which is higher for the same bearing.
Why sample at 3.2 kHz?
The defect frequencies of a 6205 bearing at 1,440 rpm and their first few harmonics sit well under 1.6 kHz, so a 3.2 kHz rate captures them without aliasing. It is also the ADXL345's highest output rate.
Model and results
Why did accuracy drop from 97.8% on CWRU to 88.4% on your motor?
Our motor runs at a different speed and load from the CWRU rig, so the defect frequencies move and the band energies the model learned shift with them. The model had only ever seen one rig.
Isn't fine-tuning on your own data cheating?
No, as long as the test data is kept separate. We used 20% of the recordings for fine-tuning and tested on windows drawn only from the rest. We report both numbers so the reader sees the gap.
Why a neural network and not a random forest?
We compared both on the same features. The quantised network was more accurate on our lab data and its 11 KB size fit in memory with room to spare. The random forest stayed as our fallback.
Embedded implementation
What does quantising the model to 8 bits do?
It stores weights and activations as 8-bit integers instead of 32-bit floats, which makes the model about four times smaller and faster on a microcontroller, at a small cost in accuracy.
How do you avoid false alarms?
A fault is reported only when five windows in a row agree. One noisy window, such as a bump to the motor, cannot trigger an alert on its own.
Diagrams to be able to draw
flowchart LR
A["Accelerometer"] --> B["Window and FFT"]
B --> C["Band energy features"]
C --> D["Quantised network"]
D --> E["Five windows agree?"]
E --> F["Phone alert"]
- The system pipeline above, with the sampling rate and the model size labelled.
- A bearing cross section showing the inner race, outer race, rolling elements and cage.
- The confusion matrix on the lab motor, and which cells hold most of the errors (inner and outer race confused at no load).
Numbers to remember
| Quantity | Value |
|---|---|
| Accuracy on CWRU held-out data | 97.8% |
| Accuracy on the lab motor, before and after fine-tuning | 88.4%, 93.1% |
| Decision time on the ESP32 | 38 ms |
| Mean alert latency | 22 s |
| Model size | 11 KB |
| Parts cost per node | ₹1,500 |
| Features per window | 40 |
Questions I find hard
Questions to ask back
- Would a factory prefer an alert per motor or a weekly report across all its motors?
- Are there public datasets recorded on small Indian pump motors we could test against?