OpenFloat dashboard displaying an archery target with colored hold, release, and follow-through traces.
Shot review in OpenFloat, with a phase-colored trace and replay controls.

Overview

OpenFloat connects a bow-mounted motion sensor to a browser dashboard. It captures the movement around a shot and turns it into a trace that can be replayed, compared, and saved with the rest of a practice session. The project brings together embedded firmware, Bluetooth transport, signal processing, and a visual interface.

The dashboard can be explored with recorded demo shots before building any hardware. Its live demo also generates synthetic motion so the connection between a changing measurement and the display is easy to see.

Hardware and firmware

The sensor uses a Seeed XIAO nRF54L15 Sense running Zephyr/NCS firmware. Its LSM6DS3TR-C motion sensor is read through an interrupt-driven FIFO. The documented configuration samples at 3,332 Hz and averages those readings into a roughly 1,110 Hz Bluetooth stream.

The firmware estimates orientation with a Madgwick filter. Live frames carry acceleration, orientation, and a microphone-envelope measurement. Shot detection uses an impulse threshold checked against recoil, so a release becomes an event with surrounding motion rather than just another point on a graph.

The sensor keeps a lifetime shot count and the newest 100 shot records in nonvolatile memory. Buffered traces can be replayed when the browser reconnects.

Shot review and training

The browser uses the sensor’s orientation estimate to drive a bubble level and a 3D bow view. Shot review separates hold, release, and follow-through with different colors.

  • Replay: scrub through the motion leading into and following release.
  • Comparison: inspect several traces together to look for repeatable movement.
  • Float Score: summarize the trace with the project’s own 0–100 scoring system.
  • Steady Aim: practice a hold with a live trace, countdown, and cant readout.
  • Sessions: group shots into practice records and revisit them later.

The score is a project-specific interpretation of motion. It does not replace the trace or establish where an arrow landed.

Browser connection and storage

Web Bluetooth needs a supported browser, a secure context, and a user action to start device selection. A connect button gives that permission request an explicit place in the workflow. Browser and operating-system support should be checked against the Web Bluetooth compatibility notes.

Receiving a shot and saving it are separate steps. OpenFloat acknowledges buffered shots after the browser has saved them locally. Reconnection can then recover records that were captured while the browser was unavailable.

The app uses IndexedDB and can operate offline after loading as a progressive web app. Backup and restore are available for local data. Keeping a session in one browser does not automatically back it up to another device; optional self-hosted sync is separate from the local workflow.

Getting started

  1. Open the hosted dashboard and review a demo capture.
  2. Use the repository’s Quick Start for the supported sensor, firmware release, mounting, and first calibration.
  3. Connect from the dashboard in a compatible browser.
  4. Confirm the live orientation responds before recording a session.
  5. Save a backup when the session is worth keeping.

The browser app uses native JavaScript modules. The repository also includes firmware build instructions, BLE command documentation, host-side validation tools, and mechanical assets.

Build files and reference

The OpenFloat repository contains the Quick Start, Feature Status inventory, architecture blueprint, and BLE command reference. Those documents carry the detailed protocol and release-specific setup instructions.

This is an experimental archery telemetry project. The documented hardware and software are available to inspect and build; normal equipment and range practices still govern how the sensor is mounted and used.