Blog Home

Predicting when a fan fail by listening to it

Arduino TeamMarch 8th, 2023

Embedded audio classification is a very powerful tool when it comes to predictive maintenance, as a wide variety of sounds can be distinguished as either normal or harmful several times per second automatically and reliably. To demonstrate how this pattern recognition could be incorporated into a commercial setting, Kevin Richmond created the Listen Up project that aims to show the current status of a running fan based solely on its noise profile.

Richmond started by collecting 15 minutes of data for each label, namely background noise, normal operation, soft failure, and severe failure. Once collected, the data was split into two-second samples and uploaded to the Edge Impulse Studio, after which an impulse was configured to use an MFE audio processing block and a Keras classification model. Once trained on the dataset, the model achieved an accuracy of almost 96% using real-world testing data.

In order to utilize the classifier, Richmond deployed his Edge Impulse project as an Arduino library for use in an Arduino Portenta H7 sketch. In it, an accompanying Portenta Vision Shield’s microphone continuously gathers new audio data before passing it into the classification model to receive a result. The probability of each label is then used to set a corresponding LED color if the probability is greater than 80%, otherwise blue is shown to indicate a failed reading.

To see the project in action, you can watch Richmond’s video below or read his write-up on