A Garmin Connect IQ watch app that acts as a shot timer, using the accelerometer to detect the first shot after a randomized start beep.
Press START. The watch waits a random delay (default 1.5–4.0 s), then plays a beep and vibrates. At the beep it begins sampling the accelerometer and watches for a sharp jerk (|Δmagnitude| above a configurable threshold). The first sample that crosses the threshold is reported as the shot time, measured from the beep.
The peak jerk observed during each run is shown after detection or timeout, which makes threshold tuning at the range straightforward.
Built for Fenix 8 Pro (47mm / 51mm / MicroLED) and quatix 8 Pro (47mm / 51mm) — all covered by the unified fenix8pro47mm Connect IQ device profile.
- SELECT: start a run (or reset from the DONE state)
- BACK: cancel or reset
Edit in Garmin Connect Mobile: Devices → (your watch) → Apps & Activities → Shot Timer → Settings.
| Setting | Units | Default | Notes |
|---|---|---|---|
| Listen Timeout | seconds | 30 | Max time to wait for a shot after the beep |
| Min Random Delay | ms | 1500 | Lower bound of the pre-beep delay |
| Max Random Delay | ms | 4000 | Upper bound of the pre-beep delay |
| Detection Threshold | mg | 1500 | Jerk threshold; tune based on peak jerk reported after each run |
Requires the Connect IQ SDK (9.1.0+) and a developer key.
openssl genrsa -out developer_key.pem 4096
openssl pkcs8 -topk8 -inform PEM -outform DER \
-in developer_key.pem -out developer_key.der -nocrypt
monkeyc -d fenix8pro47mm -f monkey.jungle -o ShotTimer.prg -y developer_key.der
Plug the watch in over USB. Copy ShotTimer.prg into GARMIN/Apps/ on the watch. Eject, disconnect. The app appears in the watch's Apps menu.
Licensed under the GNU Affero General Public License v3.0 or later. See LICENSE for the full text.
No warranty. Use at your own risk.