DSP + Machine Learning App

Bloxynergy BV

On-Device ML Classification of Binary Data from Embedded Hardware

Platform Flutter (iOS + Android)
Domain DSP / Embedded Systems
Timeline 10 weeks

The Challenge

The client operated hardware devices that continuously streamed raw binary and digital signal data from embedded sensors. Engineers needed a mobile tool to capture that stream in real time, run frequency-domain analysis, and automatically classify signal patterns without sending data to a remote server. Existing desktop tools were too heavyweight for field use, and off-the-shelf apps lacked the custom FFT pipeline and ML inference layer the project demanded.

The Solution

Bazaz Lab designed and built a Flutter application for Bloxynergy BV that ingests binary data frames from the device, applies custom Fast Fourier Transform algorithms to convert time-domain signals into frequency spectra, and feeds the resulting feature vectors into an on-device machine learning model for real-time classification. A Python backend handles model training and data preprocessing, while Firebase powers live session storage and user authentication. The result is a portable, self-contained analysis suite that works entirely offline in the field.

Key Features Delivered

Custom FFT Engine

Hand-tuned Cooley-Tukey FFT algorithm optimized for the device's specific sample rates, with windowing functions (Hann, Hamming, Blackman) selectable per signal type.

Binary Data Parser

Byte-level frame parser handles the proprietary binary protocol coming off the hardware, including framing, CRC validation, and packet reassembly with tolerance for dropped bytes.

ML Classification Pipeline

TensorFlow Lite model trained in Python with scikit-learn feature engineering. The model classifies signal states in under 15 ms on-device, with confidence scores surfaced in the app UI.

Live Spectrum Visualizer

Real-time animated frequency spectrum display built in Flutter, updating at up to 30 fps as new FFT frames arrive, with peak-hold markers and adjustable dB scale.

Session Logging to Firebase

Every analysis session, detected events, and classification results are automatically synced to Firestore, giving engineers a searchable audit trail of device behaviour over time.

Python Training Pipeline

Pandas and NumPy power the offline data preparation workflow: raw capture files are cleaned, windowed, and transformed into training datasets fed into scikit-learn for feature selection before TensorFlow model training.

Technical Execution

The Flutter app communicates with the hardware over a Bluetooth serial bridge, parsing incoming binary frames at the Dart isolate level to keep the UI thread free. Processed FFT frames are passed to a TensorFlow Lite interpreter embedded in the app bundle. On the Python side, a Pandas-based ingestion pipeline reads raw capture logs, NumPy handles vectorised windowing and FFT preprocessing, and scikit-learn runs feature importance selection before the final model is compiled and quantised to a TFLite flatbuffer. Firebase Authentication gates access to session data in Firestore, with Cloud Storage used for archiving large raw capture files.

Results and Impact

The app reduced the time engineers at Bloxynergy BV spent diagnosing signal anomalies from hours of manual desktop review to real-time field identification. The ML classifier hit 94% accuracy on the client's labelled test set. Field engineers can now walk up to a device, connect the app, and receive a classification result within seconds. Firebase session logs gave the R&D team a structured dataset for improving the hardware firmware going forward.

Flutter Python TensorFlow Lite scikit-learn Pandas NumPy Firebase