
Abhinav krishna NThis is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle ...
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
Project Pulse is a magnetic vibration/sound probe for small motors — fans, pumps, compressors, conveyor drives. Snap it onto a running machine and in about 30 seconds it tells you the ISO severity zone, the likely fault (imbalance, looseness, overload, bearing wear), and what to check, in plain language instead of a wall of numbers. Leave it mounted and pair it with an optional stop plug, and it switches into Guard mode: it learns that specific motor's normal running pattern, watches for drift, and cuts power through the plug if it has to.
Who pays for this: independent repair technicians who don't own a $2,000 commercial vibration analyzer and can't justify one for occasional diagnostic work, and small machine owners (workshops, small manufacturers) who want early warning before a motor fails completely, without a subscription or a cloud account. Everything here runs locally on the device — no recurring cost, no internet dependency, no vendor lock-in.
On the Linux side, a rules engine applies ISO 10816 zone thresholds and known fault signatures, and in Guard mode a scikit-learn IsolationForest model learns what "normal" looks like for that specific motor from a short live training window. None of that is where the open-source AI comes in, deliberately — the actual pass/fail decision is fully deterministic and auditable.
Gemma 3 1B, running fully offline through llama.cpp, has exactly one job: take the already-computed diagnosis (zone, faults, numbers) and turn it into a short, readable report or daily note for someone who isn't a vibration analyst. Every number the model writes is checked against the real measured values before it's shown — if it invents a number, that response is rejected and retried once, then replaced by a fixed template built straight from the real numbers. The model never decides whether the motor is okay; it only explains a decision that's already been made elsewhere.
A small Flask page shows live readings and both reports, with one-click PDF export of either (written with a tiny dependency-free PDF builder, since there was no safe way to pre-verify a new pip package would install on the board before the deadline).
Everything here needed to run on-device, offline, for free, forever — a repair technician in a shop with no reliable internet, or a machine owner who doesn't want a subscription, is the actual target user. A closed, API-gated model would have made that impossible: no API means no recurring bill, no outage risk, and no sensitive machine data ever leaving the device. An open-weight model small enough to run on a Cortex-A53 SBC is what makes "every diagnosis explained in plain English, forever, for free" an honest claim instead of a pricing-page footnote. Being open-source also means the whole validate-or-fallback pattern used to keep the model honest is visible and reusable by anyone else putting a small local model in front of real sensor data.