Outdoor Swim
· v7
About
Some lower end Garmin watches don't include an app for swimming with GPS. I suspect the reason is that the GPS hardware is less strong and the track in shallow water is too random.
I am now doing triathlons, and don't want to spend $$$ on a top of the line watch, so instead I built this app to add GPS to swimming. I have also added stroke cadence based on arm movement.
I have a vivoactive4, and sure enough the tracking is quite random, and the distance moderately over-estimated, around 20%. There are some big tracking jumps too which is unhelpful but not surprising.
I have experimented with options to smooth the tracking on the fly (e.g. using a separate FIT field, and restricting the GPS to providing occasional or user requested (waypoint) positioning), but the Garmin APIs are quite restrictive, so each alternative solution has too many limitations and weaknesses to be worthwhile.
One option I intend to pursue is to add a service to post-process the FIT files automatically on Connect IQ, as I think that will give me the most flexibility and hence be the best solution. However, this will require access to the Garmin program for developing apps that interact with their FIT data, which I understand is not that easy to get. So don't hold your breath on that one. I think it's better to have some indication of distance rather than none.
Until then, I offer this as a free app for you to check out. I had limited time to put into this and only one watch to test on, and was doing it primarily for my own personal use, so your mileage may vary on other watches. In particular, I built it so it looks nice and interacts well on a vivoactive4, which has a round screen and two buttons on the RHS (Enter and Escape). Interaction is simple - Enter to start and stop the activity recording, then Enter to save and Esc to discard. Touch is ignored - I've read of issues with false positives around water. The four field display is custom coded, and user selectable standard fields are not possible sorry as there's no API support for them.
SO, please treat it as a beta product, and observe the 'no dumbass' rule of feedback. I'm very happy for you to use the Contact Developer if it doesn't work well on your watch, and I will seek to resolve any issues with you, particularly any crashes (should be stable but ymmv) and screen or input issues, and also happily consider suggestions. Please ensure your email address is entered and valid as that's the only way I could contact you!
What's new
If contacting me, use the Contact Developer button and include your email address. I try to respond promptly, so if you haven't received anything within a week, and check your spam folder.
v7: cleaned up settings, added gps preference, addressed a few crash bugs
v6: App will now better request multiple constellations to help get better position locks for some devices. The 3rd line on the start up screen shows the constellation(s) requested.
v5: built using latest SDK
v4: I expanded the GPS functionality to help get better position locks across all devices. It will now use as many GNSS networks as it can (GPS, Galileo, Glonass & Beidou) and shows which ones it has locked onto and how good the signal is.
I made some extra disconnects to see if it helps prevent a battery drain after the app is used, as reported by a couple of users.
v3: I fixed an unintended app exit from a swipe right. Now ignores
I added a simplified chinese version. This was from google translate, so if the phrases are wrong please contact me with the correct ones
v2: I made the font a little smaller for some devices e.g. Forerunner, Venu as some text didn't quite fit on the screen