Over the past month my dad and I have been working on a project called Apex250. The idea is simple: an app that automatically detects and records 250m out, 180 degree turn, and back home runs using GPS, without needing to press start/stop while riding. (Yes. Kind of like the Flite app, but now for all riders, and way better)
The goal was to create something that works hands-free on the water, logs clean run data, and allows riders to auto upload their runs to an online leaderboard.
The app is now working on both iPhone and Android (Arduino soon), but itâs still beta, so weâre looking for a small group of testers.
Current features
Automatic run detection (no start/stop)
GPS tracking and run logging
Upload runs to an online leaderboard
Rider metadata (country / board setup)
Simple, minimal interface designed for real-world use
Weâre looking for testers with
iPhone (TestFlight)
Android (Google Play testing)
Mainly people who are willing to:
try it on the water
report bugs or strange behavior
give honest feedback on usability
Expect some rough edges! Thatâs exactly why weâre doing this.
If youâd like to help test, send me a personal message with:
your platform (iOS or Android)
your email address (needed for the test invite)
Thanks in advance to anyone willing to help push this forward.
Can you define what the app considers an apex turn? For example assuming the path coming into the turn and out of the turn are parallel - what is the max distance between the paths?
Re: Interesting project 50+ km/h is cookin!!
Do not pay too much attention to this.
We needed some dummy runs/data to populate the database for testing
Re: Can you define what the app considers an apex turn?
In the current Apex250 logic there isnât a âApex turn radiusâ parameter (it doesnât measure radius). It detects a turn from heading changes between GPS updates, so the effective min/max radius is whatever still produces the required heading changes while you stay above the minimum speed.
Unfortunately all this is kind of tricky to measure as both iPhone and Android phones update the GPS at +/- 1Hz (1 measurement per second).
We are currently working on a ESP32 setup (aka. Apex250-PRO) what will update GNSS (GPS) at 20Hz (20 measurements per second). This will obviously be way more accurate!
Anyway. Hard rules that indirectly define âapex/radiusâ
Minimum speed during the turn: â„ 18 km/h
Turn detection starts when a single heading step is about ℠16° (between two consecutive GPS updates)
Total turn must reach about ℠140° (U-turn-ish)
So whatâs the maximum radius?
A turn gets âtoo wideâ if the heading change per GPS update never reaches ~16°.
A good approximation is:
r_max â (v · Ît) / 0.279
(where 0.279 rad = 16°, v in m/s, Ît in seconds between GPS updates)
Assuming ~1 Hz GPS updates (Ît â 1s):
18 km/h (5.0 m/s): r_max â 18 m
25 km/h (6.9 m/s): r_max â 25 m
30 km/h (8.3 m/s): r_max â 30 m
40 km/h (11.1 m/s): r_max â 40 m
Re: what is the max distance between the paths?
There isnât a âcorridor widthâ rule in the current logic.
So no explicit maximum distance allowed between the outbound path and the inbound path.
In other words: the âoutâ and âbackâ paths can be as far apart as you like, as long as the run still satisfies the other rules:
You reach an apex â„ 250 m from the virtual start gate
the turn is big enough (~140°+ total)
You keep speed high enough during the turn (â„ 18 km/h)
You eventually finish back at the start gate (within the 20 m finish radius)
Obviously all values can be changed if needed. This is why we are doing some bĂšta testing.
Thanks for the detailed explanation. I however wonder why a run should be invalidated on the âtightnessâ of the turn. Obviously the rider wants to make a successful turn with speed so their path is shortest with minimal deceleration and acceleration. For some riders that might be a ripped carve while others might be more successful with a longer drawn out arc carrying a lot more board speed through the turn. As
long as the run consists of a minimal distance out and a return close to that starting point should it matter what the âpathâ is in between?
On some devices youâll only get a location every 1 - 3 seconds. A wide arc + slow GPS updates can produce small heading deltas per update, so the app never sees a clear âturn eventâ even though you did turn.
The timing window is centered around the apex point (the farthest point). To compute that reliably, the app needs a strong signal that youâve actually reversed direction. A big, drawn-out arc can look like âstill going outâ for a long time in noisy GPS.
When youâre near the farthest point, GPS jitter can make the bearing bounce around and make it look like microturns. Without some thresholding, the app can âdetectâ a turn that didnât happen yet, or pick the wrong apex.
So the âtightnessâ check is really: did we see enough directional change, clearly enough, to be confident you reversed?
Again. Itâs beta testing, and the turning radius/tightness is one of the things being send to us (when the option âAuto upload failed attemptsâ is enabled in the app)
OK that makes sense to me. I guess I was thinking the GPS position of the outward mark would suffice as going far enough but that position isnât necessarily that precise either.
Cool project!!
I sort of see full efoiling going more into the âracingâ - competitionâ end of design and usage the way windsurfing evolved from family friendly to high end race gear. Your app is very timely!!
Itâs actually my dad who did all the coding work.
One month ago he had no clue how to program for iOS. Hell, he didnât even own anything from Apple.
He borrowed an old iPhone and bought an old MacBook from 2018 for âŹ120 (the spacebar didnât work).
a Mac is needed to compile stuff for iOS
Day one he was swearing at the OS the whole day. Day two was already better. One month later he almost spends more time on the Mac than on his good old trusty PC.
And freeriding is the best thing to do. Racing is just a small part of it.
Yeh I can identify with the learning curve and especially the cursingđ
I felt fairly proficient with Tinkercad and then tried Fusion that I gave up on quickly. Had a friend who learned OnShape and gave that a go and have managed to be able to do simple things with it now. Fun but challenging!
I agree free riding Efoil is great and I have had sessions with other boards nearby and a closing rate of 60km/h and crossing though the wake of another board makes it interesting. My comment was based on the evolving racing minded users and equipment that is far removed from just out cruising wherever you want to go.