FIT Data Viewer & Telemetry Signal Analyzer

Position tracking engine initialized
Timestamp Distance (m) Speed (m/s) HR (bpm) Cadence Altitude (m)
Total Distance
0.0
meters
Elapsed Time
0:00
min:sec
Heart Rate Avg
--
bpm
Work Spent
0
kcal
ℹ️ Simulation Loaded Successfully.

Overview

The FIT Data Viewer & Telemetry Signal Analyzer is an advanced, fully client-side web application engineered to parse, decode, and analyze sports physiological and spatial telemetry encoded within Garmin's Flexible and Interoperable Data Transfer (FIT) binary standard or structured CSV files.

Modern sports microcomputers, biometric chest straps, power meters, and smartwatch devices record high-frequency time-series datasets during physical activities. These binary streams contain interleaved message definitions representing instantaneous heart rate photoplethysmography (PPG) or electrocardiography (ECG), barometric pressure elevation variations, global positioning coordinates ($\phi, \lambda$), pedaling cadence, swimming stroke counts, and mechanical crank power taps.

The mathematical representation of raw positional values within binary FIT files utilizes 32-bit signed integers representing global geographic angles converted into semicircles. The transformation to decimal degrees follows the exact trigonometric ratio:

$$\theta_{\text{degrees}} = \theta_{\text{semicircles}} \times \left( \frac{180^\circ}{2^{31}} \right) = \theta_{\text{semicircles}} \times \frac{180}{2147483648}$$

By executing byte-stream deserialization natively inside the client thread using JavaScript DataView buffers, this analyzer guarantees complete data privacy—no raw telemetry or GPS coordinates ever leave your workstation.

How to Use

To operate the analyzer laboratory, utilize the upper action triggers and sidebar controls:

  1. Preset Selection: Use the Preset Log Configuration dropdown menu to select pre-compiled activity logs, including indoor pool swimming, multisport outdoor running, cycle power steps, smart scale weighing profiles, or low-battery system diagnostic captures.
  2. Custom Binary Upload: Drag and drop or browse for any .fit or .csv activity log file using the upload input block. Parsing executes instantly.
  3. Target Signal Selection: Choose your desired Y-axis telemetry channel using the Y-Axis Target Metric menu. Toggle between Heart Rate ($\text{bpm}$), Instantaneous Speed ($\text{m/s}$), Cadence ($\text{rpm}$), Barometric Altitude ($\text{m}$), Mechanical Power ($\text{watts}$), and Ambient Temperature ($\text{^\circ C}$).
  4. Interactive Canvas Exploration: Hover over or touch the primary SVG waveform chart to scrub through the timeline. The bisector algorithm dynamically calculates the closest recorded frame, updating the spatial GPS coordinate path or indoor pool swimmer trajectory, telemetry data grid, and bottom metrics HUD in sync.
  5. Audio Sonification: Click 🔇 SOUND OFF to initialize the Web Audio synthesis engine. Real-time heart rate values are converted into acoustic frequency tones according to the linear mapping $f(HR) = 150 + (HR - 50) \times 3.0 \text{ Hz}$.
  6. Automated Demonstration: Click Start Demo at the top of the panel to launch an automated multi-channel walkthrough. Interrupted instantly by any user click, drag, or keypress. Click Reset Baseline at any time to restore default parameters.

Technical Details

This single-page web app utilizes high-performance front-end algorithms designed for zero-latency execution:

  • Binary File Deserializer: Decodes raw binary ArrayBuffer buffers directly. It validates the 12- or 14-byte file header, checks the .FIT ASCII signature, handles little-endian vs big-endian bit architectures, registers local definitions, and scales raw binary field values according to official Garmin FIT SDK specification field definitions.
  • Spatial Projection Engine: Maps latitude ($\phi$) and longitude ($\lambda$) coordinates onto a 2D Cartesian canvas using a normalized Web Mercator bounding box transformation:
  • $$\begin{bmatrix} X \\ Y \end{bmatrix} = \begin{bmatrix} \frac{w}{2} + (\lambda - \lambda_{\text{center}}) \cdot S \\ \frac{h}{2} - (\phi - \phi_{\text{center}}) \cdot S \end{bmatrix}$$

    Where $S = \min\left(\frac{w(1-2p)}{\Delta \lambda}, \frac{h(1-2p)}{\Delta \phi}\right)$ calculates adaptive spatial bounding scale factors with padding fraction $p = 0.15$.

  • D3.js Waveform Renderer: Computes responsive scale functions and draws monotonic cubic spline paths (d3.curveMonotoneX). Hover intersection indexes are resolved using binary search bisectors (d3.bisector) operating at $O(\log N)$ algorithmic complexity.
  • Interaction & Frame Rate Optimization: All chart redraws and canvas updates are managed using requestAnimationFrame rendering callbacks, isolating calculation steps to maintain 60 FPS performance and minimize Interaction to Next Paint (INP) latency.

Future Directions

The technical engineering roadmap for the BioniChaos FIT analyzer platform encompasses several future enhancements:

  • Fast Fourier Transform (FFT) Spectral Density: Implementation of real-time Fast Fourier Transforms on $R$-$R$ heart rate interval streams to quantify Low Frequency (LF: $0.04\text{--}0.15\text{ Hz}$) and High Frequency (HF: $0.15\text{--}0.40\text{ Hz}$) autonomic nervous system sympathetic/parasympathetic balance.
  • Inertial Dead-Reckoning Interpolation: Integration of Kalman filter algorithms to estimate spatial velocity and bridge gaps caused by GPS satellite signal blackouts under heavy urban canyons or overhead tree canopy cover.
  • Multi-Track Comparative Overlays: Capability to load two simultaneous activity tracks, automatically aligning timelines to generate difference heatmaps for pacing strategy analysis.
  • ANT+ Channel Sensor Health Inspector: Extended sub-profile message parsing to extract sensor battery dropouts, drop-frame percentages, and RF transmission signal strength metrics.

Static Telemetry Resource Directory

The static data structure within the BioniChaos runtime environment. Selectable from the drop-down menu or audited via the batch scanner: