Bloxynergy BV
On-Device ML Classification of Binary Data from Embedded Hardware
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
Hand-tuned Cooley-Tukey FFT algorithm optimized for the device's specific sample rates, with windowing functions (Hann, Hamming, Blackman) selectable per signal type.
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.
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.
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.
Every analysis session, detected events, and classification results are automatically synced to Firestore, giving engineers a searchable audit trail of device behaviour over time.
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.