Skip to content
Shalaka
Engineering notes

AI for IoT · 14 November 2026 · Shalaka engineering team

What an FFT on a microcontroller can and cannot tell you about a motor

Running an FFT on the sensor node is a cheap first step towards predictive maintenance. A microcontroller samples an accelerometer, turns a block of samples into a spectrum, and sends a handful of numbers instead of a raw stream. It works well for some faults and not at all for others, and the difference is mostly physics.

What it can see

Most rotating-machine faults show up at multiples of the running speed. Imbalance appears as a large component at 1x the shaft frequency, mainly in the radial direction. Misalignment tends to show at 2x and in the axial direction. Mechanical looseness produces a row of harmonics. A motor running at 1,450 rpm turns at about 24 Hz, so these components sit well within what a MEMS accelerometer and a small FFT can resolve.

Tracking the size of those peaks over weeks, against the machine’s own baseline, is a sound early warning.

Where it runs out

Bandwidth. A common MEMS accelerometer such as the ADXL345 samples at up to 3,200 Hz, so the usable spectrum stops at about 1.6 kHz, and less in practice. Early bearing damage often shows first at much higher frequencies, and is usually found with envelope analysis on a high-bandwidth piezoelectric sensor. A low-cost node will usually see bearing problems later, when they have grown.

Resolution. Frequency resolution is the sample rate divided by the FFT length. At 3,200 Hz and 1,024 points, each bin is about 3 Hz wide, which is coarse for separating nearby peaks at low speeds. Longer FFTs need more RAM and more time.

Noise. MEMS sensors have a higher noise floor than industrial piezo sensors, so small, early signals can be buried.

Mounting. A sensor on a thin bracket or held by double-sided tape measures the bracket. Stud or epoxy mounting on a rigid part of the bearing housing, in a fixed orientation, makes readings comparable over time.

Baselines and context

A spectrum means little without the machine’s normal state and its operating conditions. Load and speed change the picture. We record a baseline per machine, tag readings with speed or load where we can get them, and alert on change against that baseline before any absolute threshold.

Standards such as ISO 20816 give vibration severity limits in velocity (mm/s RMS), which means integrating the acceleration signal and limiting the band. That is doable on a microcontroller, with care at low frequencies.

A sensible split

Do the FFT and a few summary values on the node. Send those often, and a raw block occasionally. Keep the heavier analysis, and any machine-learning model, in the cloud until you know which features matter for your machines.


If you want to try vibration monitoring on a few machines before committing to a platform, book a discovery call.

Tell us what you are building.

Book a discovery call