Engineers Clinic
ExpertEngineering trackFP-EC-11

Vibration monitoring node with FFT on a microcontroller

Design the signal processing for a wireless vibration node: model machine faults, compute ISO velocity severity and bearing envelope spectra, port it to fixed-buffer C for a Cortex-M4, budget its resources and validate the alarms.

Core EngineeringEmbedded Systems
6 Guided Steps47h Internship TierSubmit: Machine survey and requirements + signal generator + Python reference DSP + C library with comparison tests + resource and power budget + alarm rules and validation reportVerified CertificateAI Rubric Graded
Program Overview

Industry project · for Mosel Papier GmbH, a paper mill near Trier with 48 critical pumps and fans on its two paper machines

Mosel Papier runs two paper machines around the clock. A technician walks a vibration route once a month with a handheld analyser. In March a bearing on a stock pump failed between two route visits. Paper machine 2 stopped for 31 hours, and the mill lost about €380,000 in production. The reliability manager wants permanent wireless sensors on the 48 most critical pumps and fans, reporting a few numbers every 10 minutes.

A sensor vendor will build the hardware: a low-noise three-axis MEMS accelerometer, a Cortex-M4F microcontroller with 256 kB of RAM, and a battery meant to last at least three years. The vendor wants Mosel's engineering team to own the signal processing and the alarm rules, so they can be checked and changed. That is your job. The requirements are: - report overall velocity RMS from 10 Hz to 1,000 Hz in mm/s, comparable with the evaluation zones in ISO 20816-3, every 10 minutes; - report the amplitude at 1× and 2× running speed, to flag imbalance and misalignment; - detect early bearing defects with an envelope spectrum, reporting energy at the outer-race, inner-race and ball defect frequencies for each machine's bearings; - fit the processing into the microcontroller's RAM, finish it in under 1 second of CPU time per measurement, and keep the average current low enough for three years.

You will survey the machines and write requirements, build a synthetic signal generator with realistic fault models, write the reference processing in Python, port it to C with fixed buffers and check it against Python, budget RAM, cycles and energy, and design and validate the alarm logic. No hardware is needed: the C code runs on your computer against generated signals, using CMSIS-DSP or another portable FFT library. If you own a development board and an accelerometer, an on-target run is a bonus.

Done looks like a reference implementation, a C library that matches it, a resource budget, alarm rules with their validation, and a report the reliability manager can use to approve the rollout.

Vibration analysisDigital signal processingFFT and envelope analysisEmbedded C on Cortex-MResource and power budgetingAlarm design and validation
What you submit

Machine survey and requirements + signal generator + Python reference DSP + C library with comparison tests + resource and power budget + alarm rules and validation report

Stack: Python (numpy, scipy, matplotlib), C compiler with CMSIS-DSP or KISS FFT, Accelerometer and Cortex-M4 datasheets, ISO 20816-3 (for evaluation zones)

How it is graded
  • Correct requirements and frequencies15

    Running speeds, bearing defect frequencies and the needed frequency range and resolution are calculated for the survey machines, and requirements are measurable.

  • Realistic fault models15

    Synthetic signals include imbalance, misalignment, outer and inner race defects with impacts modulated correctly, plus noise and speed variation.

  • Correct reference DSP25

    Velocity RMS over 10–1,000 Hz, 1× and 2× amplitudes and envelope spectrum features are computed correctly, checked against analytic cases.

  • Embedded port that matches25

    The C library uses fixed buffers, matches Python within 2% on every feature and test signal, and fits the stated RAM and cycle budgets.

  • Validated alarms and report20

    Alarm rules use ISO zones, per-machine baselines and persistence, detect seeded faults without false alarms on healthy signals, and the report is clear to the reliability manager.

Pass 60% · Merit 75% · Distinction 90%

Learning Outcomes
Calculate machine and bearing defect frequencies
model imbalance, misalignment and bearing faults in synthetic signals
compute velocity RMS by frequency-domain integration and envelope spectra
port DSP to fixed-buffer C and verify against a reference
budget RAM, cycles and battery for an edge node
design alarms with baselines and persistence
Target Audience

Engineering Students

Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.

Aspiring Developers

Developers who want to build proof-of-work capstone projects for tech resumes.

Job Seekers

Graduates looking for AI-evaluated code review & verified industry credentials.