← Back to context

Comment by m463

5 days ago

Why can't we just connect a garmin watch (or edge or gps) to our ai machine, have it extract all the data with MTP or garmin format, and keep it local. Then ask questions.

Honestly I've been wondering if in the near future I can basically have a big machine and some sort of "ingest" program.

Then keep connect my devices to it, where it will backup all the data, and mine the backups for information I want.

Mine my iphone backups for text messages or contacts

mine all my devices for photos or videos

mine my watch or bike computer or gps or whatever else for where I've been and how I've exercised.

instead, everyone wants your data and imposes themselves in the middle.

You can literally connect your Garmin to your computer via USB and drag-and-drop the raw activity files and analyze them if you want. Works totally fine. But Garmin's cloud sync is convenient and cloud processing adds data like elevation (by cross-matching GPS to topo data).

  • That only gives you the activities though, doesn't it? Not the 24/7 metrics the device is also collecting outside of started/stopped activities.

    I've been trying to get developer access to my watch, but seems for months the Garmin Developer Program doesn't seem to accept any "requests". The only thing I've seen working, is the full account export, but that takes ~3 days for me from pressing the button until I get the email. Besides that, syncing via Bluetooth and reverse-engineer their own protocol that runs there, seems to be the only way, sadly.

    • Can't you just connect via USB (oldschool method from before their devices even had Bluetooth) and dump the data the old fashioned way ?

  • This does not work for golf, I tried to get the activity but could not find it.

  • This wouldn't sync over any of the data points that are calculated by the device, VO2 max, various sleeps cores, etc. Probably a good thing as those things are rarely all that useful.

    • All of that data is on the device and can be copied as .FIT files. Some of the fields aren't publicly documented, though.

Main problem is the sync and getting to the data. Speaking from experience here, been working on something for a while. This is the current state of the product pitch:

https://claude.ai/artifact/162zJUVejDdrAAw6yz9ETs

fyi - most of the functionality already working, but the key factor is how to get the data from the vendors.I currently rely on run-gap but i realise this is not a long-term solution. Last time i have checked intervals icu api I just couldn't stop throwing up for a few days -but this might be better in the mean time.

long term solution is to have something like rungap, server side without the ridiculous fees some of the vendors charge (terra, rook,...)

if anybody wants to test what I currently got, or just has some feedback - let me know.

  • >>without the ridiculous fees some of the vendors charge (terra, rook,...)

    They charge an absolute fortune.

I work for a company where this is relevant.

Leadership is very aware of this and is accordingly being very careful about how easy we make it for people to instantly offload all of the data they've entered that makes our product worth using vs. a competitor.

I'm not saying this is good, obviously as a consumer I'd like the opposite. All I'm saying is, don't expect companies to be naive about this. If you don't want to be "locked in", you'll likely have to pay for that in some other way.

  • Appropriate username!

    > If you don't want to be "locked in", you'll likely have to pay for that in some other way.

    That "some other way" is almost never via the wallet. From Apple to Whoop to Snowflake to Oracle, the most expensive ecosystems are often the ones with the most lock-in. More often than not, the "some other way" you pay is by having to put up with janky UX and incomplete featuresets.

This is similar to what I did. Just download the gpx and analyze that. Skips the Garmin API.

GPS traces recorded on a watch can be pretty noisy. If you stand in the same spot for a while, you're not going to get the exact GPS position recorded for the entire time you're there. The same happens when you move, it's not a smooth trace.

Strava (and I assume to some extent Garmin) apply some smoothing to these raw GPX traces to try and improve the path, or remove some of the noise.

You'd be missing out on this post-processing by taking the data raw. Ofc you can implement something similar yourself, but I wanted to point out that these platforms are doing a little bit more than just displaying the GPX trace.

  • When parsing high end Garmin and Apple fit files, it appears a lot of their smoothing is done before writing to the fit file. They’re in a very workable state straight out of the gate.

    • Yes. The location data you get from CoreLocation has been processed already, in that it is the output of combining the inputs from the GPS, Wi-Fi access points, cell towers, magnetometer, accelerometer, and gyroscope sensors.

      Workout data might take it a step further, as you tell it the type of workout, and I'm assuming WorkoutKit might do something like adjust the distance filter that specifies how far the device has to travel before triggering a location update event to minimize battery use during the workout.

  • But how real of a problem that is?

    I wander often on many smartwatch/sport tracking forums/subreddits, and it's fairly frequent that people ask how to deal with smoothing and get back raw data. Some love how Garmin smooths out a race track run for them and make gps trail stick perfectly to a lane. Some pull their hair out seeing their lake run being smoothed out to make it look like they jumped over fences and private properties.

    I often find my garmin traces confusing as well, it's not objectively better.

    • Some users may be confused about Garmin functionality. If you select the Track Run activity profile on a standard 400m track then it will generate a perfectly smooth and consistent route every time. This is only possible because it knows the exact shape of a standard track and can adjust the location data points to fit.

      All fitness trackers (and mobile devices in general) do some level of smoothing on location data before recording it to an activity. There is no "raw data" to get back. The developers try to select smoothing algorithms that produce a good result in most cases but there will always be occasional discrepancies. This is usually due to poor signal quality including multipath reflections when the device doesn't have a clear line of sight to the sky due to structures or trees.

      Garmin devices don't only use "GPS". They support multiple GNSS constellations including Glonass and Galileo, and depending on the selected mode may use all of those simultaneously to improve location accuracy.

doesn’t Garmin support completely local synchronization with their devices still?

  • they do - and this is why I buy their stuff.

    but a lot of these folks are uploading everything to garmin connect and letting it have your data and do the work.

    • If you do local sync, can you work with the files directly? I.e. if I don't want to upload to garmin connect, can I just tell Claude to use an API or reverse engineer the files? I've had a venu 4 for a few months, and finished my connect+ trial, and want to setup my own analytics.

      1 reply →

  • Yes, but it stays within Garmin. It's hard to get metrics from multiple devices in one place.

You can do this, you can plug your Garmin device into your machine and pull all of the data off.