Skip to content

Overview

How a swing becomes a row of numbers.

What it measures

Metric Source Trusted for carry?
Ball speed OPS243-A rolling-buffer I/Q, FFT mode extraction Yes
Club speed Pre-impact window of the same capture Yes
Launch angle (vertical) IWR6843, LCMF-v1 over the raw radar cube Yes
Launch direction (horizontal) IWR6843, horizontal plane Yes
Club path IWR6843, pre-impact frames Reported, experimental
Spin rate OPS243-A amplitude-envelope demodulation No — experimental
Carry RK4 ballistic simulation Computed

Smash factor and other derived values come from the measured pair.

The chain

flowchart TD
    A[Club strikes ball] --> B[SEN-14262 sound detector]
    B -->|GATE, ~10 µs| C[OPS243-A HOST_INT]
    B -->|same edge, BCM17| D[Raspberry Pi]
    C --> E[Rolling buffer freezes<br/>4096 I + 4096 Q samples]
    D --> F[IWR6843 dumps its<br/>rolling frame ring]
    E --> G[RollingBufferProcessor<br/>FFT + mode extraction]
    F --> H[LCMF-v1<br/>angle + club path]
    G --> I[Ball speed, club speed,<br/>spin candidate]
    H --> J[Launch angle, direction,<br/>club path]
    I --> K[Shot]
    J --> K
    K --> L[Ballistic simulator<br/>drag + Magnus, RK4]
    L --> M[Carry distance]
    K --> N[Flask + WebSocket]
    M --> N
    N --> O[React UI]
    N --> P[Simulator connectors<br/>GSPro, OpenGolfSim, …]
    N --> Q[Session log<br/>JSONL]

The important detail is that one sound edge drives both radars. The SEN-14262's GATE output goes to the OPS243's HOST_INT pin in hardware — no software in the path, roughly 10 µs of latency — and to the Pi's BCM17, which asks the IWR6843 firmware to finish and dump its frame ring. Both captures therefore describe the same strike, and the OPS impact timestamp is what correlates them.

Why Doppler

The OPS243-A transmits at 24.125 GHz. A moving object reflects that signal back with its frequency shifted in proportion to speed — the Doppler effect. At this frequency, 1 mph produces about a 71.7 Hz shift, which is what makes a modest FFT sufficient to resolve golf-ball speeds precisely.

The radar does not stream a speed number for the shot. It holds a rolling buffer of raw I/Q samples; the trigger freezes it, and OpenFlight does the signal processing itself. That is what allows club speed and ball speed to be pulled from a single capture — they are different regions of the same timeline.

See rolling buffer and spin detection for what happens inside that capture.

Why a second radar

Doppler measures speed along the beam. It cannot tell you the angle the ball left at. The IWR6843 is a 60 GHz mmWave radar with multiple TX and RX antennas, so it can resolve angle as well as range and velocity — which is what launch angle, launch direction, and club path require.

It needs custom firmware: the stock TI demo does not expose the raw radar cube. A validated prebuilt image ships in the repository, so flashing does not require the TI toolchain.

Accuracy

Validated against a TrackMan — see the TrackMan test process for methodology and the July 2026 baseline. Ball speed and club speed are the strongest numbers; launch angle is good within the estimator's stated limits; club path is honest but coarse; spin is not yet trustworthy per-shot.

Next