7.9.18. Gearbox Fault Detection
Classify gearbox operating conditions (healthy or broken tooth) from 4-channel vibration data on the MSPM0G5187 MCU with integrated NPU.
Example folder: examples/gearbox_fault_detection
(GitHub)
7.9.18.1. Overview
Gearbox failures are a leading cause of unplanned downtime in industrial machinery, and traditional condition monitoring needs manual inspection. This example shows real-time fault diagnosis directly on a resource-constrained MCU without cloud connectivity.
Application: predictive maintenance, industrial machinery, gearbox health monitoring
Task: binary classification (
generic_timeseries_classification)Data: 4 vibration channels (
variables: 4), 256-sample windowsDevice: MSPM0G5187 (
config_MSPM0.yaml, the only config)Models:
GearboxFault_model_1.2k_t(default),GearboxFault_model_1.5k_t
7.9.18.2. System Components
Hardware: MSPM0G5187 with integrated NPU
Software: Code Composer Studio 12.x or later, MSPM0 SDK 2.10.00 or later
7.9.18.3. Dataset
The example uses the SpectraQuest Gearbox Fault Diagnostics Simulator data from
Kaggle, packaged as
https://software-dl.ti.com/C2000/esd/mcu_ai/datasets/gearbox_dataset.zip (downloaded automatically).
Classes: 2 (healthy, broken tooth)
Operating conditions: 10 load levels (0 to 90%)
Columns:
a1,a2,a3,a4(four accelerometers in four directions), about 88,000 rows per fileFile naming:
{b|h}30hz{load}.csvwherebis broken tooth andhis healthy
7.9.18.4. Feature Extraction
No frequency transform is used: the 4-channel accelerometer data is cut into fixed 256-sample windows
(SimpleWindow, frame_size: 256, stride_size: 1) and passed as a single frame to the model with
stacking: 2D1.
7.9.18.5. Models
Model |
Parameters |
Flash (bytes) |
Description |
|---|---|---|---|
|
about 1,174 |
about 8,233 |
4-layer network, progressive channel reduction (12, 12, 8, 8) |
|
about 1,914 |
about 8,878 |
3-layer network, constant channels (16, 16, 16) |
Both models use INT8 quantization with a 4-channel, 256-sample input. The parameter and flash figures are from the example readme.
7.9.18.6. Configuration
common:
task_type: generic_timeseries_classification
target_device: MSPM0G5187
dataset:
dataset_name: gearbox_fault_detection
input_data_path: https://software-dl.ti.com/C2000/esd/mcu_ai/datasets/gearbox_dataset.zip
data_processing_feature_extraction:
data_proc_transforms: ['SimpleWindow']
frame_size: 256
stride_size: 1
variables: 4
stacking: '2D1'
training:
model_name: GearboxFault_model_1.2k_t # or GearboxFault_model_1.5k_t
batch_size: 256
training_epochs: 50
num_gpus: 0
testing: {}
compilation: {}
7.9.18.7. Running the Example
Install Tiny ML ModelZoo first (Installation, Quickstart), then run from the
tinyml-modelzoo folder:
./run_tinyml_modelzoo.sh examples/gearbox_fault_detection/config_MSPM0.yaml
See Running Examples for all launchers, for example:
run_tinyml_modelzoo.bat examples\gearbox_fault_detection\config_MSPM0.yaml
7.9.18.8. Results
The example readme states an accuracy of 97 to 100% depending on the model. In the automated 1.5.0 config test
run, config_MSPM0.yaml reached a test accuracy of 100.00% with an AUC ROC of 1.000.
7.9.18.9. See Also
Motor Bearing Fault: bearing fault classification from vibration data
Fan Blade Fault Classification: fan blade fault classification