Hacker News new | past | comments | ask | show | jobs | submit login
GarminDB (github.com/tcgoetz)
326 points by haltcatchfire 13 days ago | hide | past | favorite | 72 comments





Be warned anyone that uses this - it uses Garth (https://github.com/matin/garth) to authenticate. It masquerades as an Android app (a single instance of one at that) and does some hacky stuff to login via web forms.

Garmin is such a horrible company to try to integrate with. I don't know why they lock down their stuff so hard like this. And if you do manage to gain access to one of their offical APIs or SDKs, they are total dogwater.


I'm a Garmin user as I find the hardware to be very reliable but the market is in deep need of an Open Source alternative.

Let's not forget Garmin was victim of a ransomware attack in 2020 and they finally paid $10 million after days of blackout and they never really addressed the issue.


An open source bike computer that isn't the price of a 2025 flagahip smartphone and the specs of a 2010 midrange smartphone! Please please!

I found this Raspberry Pi Zero based bike computer project: https://github.com/hishizuka/pizero_bikecomputer

This seems pretty nice in terms of features, but would probably need a bit of polish.


We looked at this years ago and came to the (sad) conclusion that in this space there is no money to be made in hardware, the UX, while uniformly bad, can't make you profitable, so it's down to selling the user as a product once again.

Garmin has nothing on Strava. If you integrate with Strava and the user revokes the link, you have to delete all the data that came from Strava or you risk losing access to the API.

> I don't know why they lock down their stuff so hard like this.

Same reason every other company locks down your data. You are the product and they want to keep you locked in, feeding them data.

They can't have you running off with all your data when a new device comes out from a competitor that is better; that would force them to compete more!

Garmin has a long history of being lazy as fuck unless someone's actually competing against them. The smartwatch market heated up and lo and behold features and better models coming out left and right. Their bike computers would go years between refreshes..until Wahoo, Bryton, Coros, and Hammerhead started beating on their door.

Strava is much the same way. They were pretty free with access in and out, and tightened things down making it nearly impossible to export data.


> If you integrate with Strava and the user revokes the link, you have to delete all the data that came from Strava or you risk losing access to the API.

That seems fair - the user has withdrawn their permission for processing their data or invoked "right to be forgotten", no?


Strava also imposes limits on app developers, it doesn't matter if you have 1 user or 1 million users, and it was quite hard to get the limits increased.

You'd think they would allow a popular app that their customers likes to use could have higher limits.

CityStrides were battling with it a lot, but it looks like it was resolved, finally: https://community.citystrides.com/t/increase-strava-api-limi...


Isn't that just following the law? User revoked their consent for you to have their data.

> Garmin has a long history of being lazy as fuck unless someone's actually competing against them

Heh, isn't that pretty much every company in the history of capitalism?


> Garmin is such a horrible company to try to integrate with

Is it still? A few years I built integration for creating posters from route GPS data, and it seemed pretty much the same experience as Strava and RunKeeper, but then they changed their TOC and wanted about $10K to connect.

It seems to be free now - although they still require approval. https://developer.garmin.com/gc-developer-program/overview/

If you want data for your own use - and to send data from one service to another - then tapiriik is great (or atleast was, I haven't used it for a few years):

https://tapiriik.com/


Very contrary to my experience.

I've been using InReach and the InReach APIs for a few years now.

They were both very reasonably priced (they cost nothing above my InReach subscription price), very easy to get access to (I emailed them and got access to API docs and the APIs within a day or three) and extremely well thought out and reliable (very robust callback based event/point reporting system, with retries on their side if your code breaks or is flakey, their web page has a great debug interface to see what happens if your webhook fails) and their support was top-notch (if not super fast).

I had a weird bug with their webhooks when I started implementation, where every event would come in twice, once with the timestamp of the event truncated to an integer of whole seconds. You could see from the user-agent that the one with the truncated timestamp was a few versions older of their software. Wrapped that analysis up in an email to them and about 12 hours later saw it get fixed and about 12 hours after that got an email back from AN ACTUAL ENGINEER who thanked me for the description, explained why and how it happened and explained their fix.

Granted, the InReach and definitely the InReach Professional API, are more of a professional product and less pure consumer, but, Garmin definitely knows how to do this.


Garmin acquire Delorme in 2016 including the inReach satellite communicators. I bet the development culture came with acquisition.

I think th consumer/retail side of Garmin company is a shit show. I recently ordered a HRM on Garmin website instead of other retail site. My order just sat at "ordered" status for over a week. I ended up just cancel and use Amazon.

I've run into that with most manufacturer retail sales departments -- it's almost always a better buying experience to use Amazon or another established online merchant.

It's expensive to build out a first class order fulfillment system and it's hard to compete with Amazon's system since they have such huge economies of scale -- Amazon probably ships more product in a few hours than Garmin does all year from their retail site.

Even worse than buying products from a manufacturer is buying a spare/replacement parts, you need a $5 replacement charging cord? Well it'll cost you $15 in shipping and still take 2 weeks, and often those spares are only available from the manufacturer.


A friend recently put me on to Intervals (https://intervals.icu) for Garmin / Strava related data nerdery and I’ve enjoyed it very much. As a rower it was nice that you can construct reports that give rowing related metrics rather than just the usual cycle / run stuff.

Nice app, i didn't know that one. I think for cycling that is quite sophisticated. However i had a different problem recently wanting to track a Hyrox Workout. I have a epix gen 2 (800€) and i cannot track it nicely. I know you can define workouts but it is such a hassle and doesn't even work good.

Long Story short, i just programmed my own App now for that. Works with all garmin watches and let's use define a fixed Workout and allows to analyze your individual performances across exercises:

https://multisports.creatness.studio - i'm still waiting for Garmin to approve my App Store Submission (another long story with garmin) but it can already be downloaded and sideloaded on a garmin watch. using it for a few weeks now myself.


I tried using that a couple years back and recall being frustrated by how it required running intervals to be formatted.

I believe it wanted interval activities to be recorded without also recording the rest intervals in between which was frustrating.

/edit derp, I’m getting confused between this and runalyze


I built something for post-processing runs into common running workout structures (e.g. 4 x 1mi) based solely on lap data, without needing the actual programmed workout. workoutsplitz.com if you want to try it out.

Neat! Will give it a go

Intervals.icu is great, and totally worth paying to support. Really fun to see progress over time, and the ability to customize charts is neat.

> We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you.

Noped the f outta there


> ... You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or the instructions provided in any email we send.

Nah thanks, I'll press the "report spam" button instead, k thnx have a nice day bye.

What dastardly acts do you think they’re committing here? They need your personal data (your email address) to send you emails, which presumably you can unsubscribe from

What you can always do to get ALL your raw data out of Garmin connect (as FIT files) is using the data export (https://support.garmin.com/en-US/?faq=W1TvTPW8JZ6LfJSfK512Q8).

There are some good OSS libraries to read and interpret those files (e.g. Python https://github.com/polyvertex/fitdecode, Go https://github.com/tormoder/fit).

To get your _current_ data, it is possible to pull the current .FIT files from your device (watch, bike computer, ..) when it is plugged to your computer and mounted as file system.

I once started a side project to do exactly that, but abandoned it after a while (https://github.com/jo-m/garmin-disconnect).


um, have you tried to export all your raw data from garmin? i have 15 years of logged data, and that dump does not include any fit/gpx/tcx files. it was 196 json files (228mb) which are just high-level summaries. using one of the hacky third-party export libraries, i was able to get the actual fit files (5708 files, 373mb). even that has missing files, empty files, and duplicates. very frustrating.

the lesson i learned is you can't just expect these exports from any online services to be complete or what you expect. i highly recommend going through an export of anything you depend on and see if it has what you expect.


This is particularly relevant with the recent blue triangle of death episode where all their newest watches downloaded a corrupted gps ephemeris data file and entered a boot loop.

One of the recommended fixes was a factory reset of the watch, which deletes all of the stored .fit files.


Maybe it is because I am in Europe, but the data export I recently did (2024-10) contained all my FIT files, although in another layer of zip:

    DI_CONNECT/DI-Connect-Uploaded-Files/UploadedFiles_0-_Part\*.zip
    DI_CONNECT/DI-Connect-Fitness/my@email_PrimaryTrainingBackup_Part1.zip

Should it be possible to request all the data via GDPR and friends?

You’ve got nothing to lose from trying

Garmin should really embrace this. The alternative, relying on smartphone apps, will lock them out in the long run. The big advantage of buying dedicated hardware, like a Garmin bike computer, is having more control over your data.

I wish Garmin worked on their SDK and documentation — I wrote a quick app for personal use, and it made me appreciate folks who write Garmin watch apps much more. The documentation is incredibly bad, half the things I had to figure out using trial and error, and even then I wouldn't know how to build/test for other watches than the one I own. I'd have gladly worked on the app and put it in the store, I think it'd useful to some people, but I'd have to put far more effort than it's worth.

I have two Garmin devices: a watch and bike computer. Both are connected to the same app that collects data to a single Garmin Connect account.

I expected some synergy but I got nothing. When monitoring the same activity with the two devices you just gets dupes (for example, sum of the distances measured by the two devices). This is worse than if I had 2 devices from 2 different brands.


What synergy are you expecting if you’re recording distinct activities on two devices?

FWIW you might have been looking for extended display mode.

https://support.garmin.com/en-US/?faq=fZaD0E9cTwAwBffjoJcWT8


Right, Garmin doesn't support simultaneous recording on multiple devices. But if you've got a bike computer then there's nothing to be gained by also recording on your watch, you won't get any more data.

There's another related defect if you use one of their chest straps that records and stores heart rate data for later download (this is mainly for swimming activities where radio can't be used). If you record an activity on your watch and it syncs to Garmin Connect before downloading heart rate data, then after the watch downloads from the chest strap it will create a duplicate activity in Garmin Connect instead of updating the existing activity. Customers have been complaining about this for years but Garmin doesn't care.


The WorkOutDoors app and Strava both provide full access to gpx data

Is the Garmin data you get through Strava unfiltered? As strava does some auto-pause things and so on, Garmin too probably...

If it's pushed to Strava from another device (Garmin, Wahoo, etc) then you can download the original file, which will have all the data that the original device recorded. This may have auto pausing, may not.

On e.g. files that are uploaded from my Garmin watch, Strava adds its auto pause as a filter on top of the data: iff the original data doesn't have any pauses (Garmin auto pause not enabled on my runs), then Strava will cut out periods of time when you're standing still; otherwise it'll leave the data alone.


You can view and download everything from their website

What similar devices don't fight their own users wanting to access their own data ?

Apple locks down everything:

'I like the safety'- Apple marketers or people who fell for the marketing

Garmin/google/anyone else does it:

"So dumb, I should be able to use my own stuff!"


You can export all health and fitness data with no trouble using the Health app.

1. Open the health app

2. Tap on your face in the upper right

3. Scroll down to the bottom and tap "export all data" or whatever it says.

Bam: every workout and every health measurement in an XML file.

Whoever told you apple locks down health and fitness data was either mistaken or lying to you.

edit: here is a more technical explanation https://www.ryanpraski.com/apple-health-data-how-to-export-a...


it always surprises me how much data is locked up in garmin's (ancient) sdk.

for example, the FIT file format, used exclusively for programming workouts on all bike computers, are only supported in one or two apps!

I suppose that's our fault and we should build on the sdk


The Garmin Connect web site seems to work fine for building structured workouts. It can also sync with TrainingPeaks. Is there something else we need?

There are a lot more than two apps which read or write FIT files for purposes other than workout planning. I wrote one of them.


I personally don't know anyone who creates workouts in Garmin Connect. Not saying it doesn't happen, or even that it isn't common, but everyone I know is creating their workouts in TP, Intervals.icu, Golden Cheetah (or other similar dedicated training platforms), or even in Zwift (or another virtual training platform).

I build workouts in Garmin Connect (web version). It's not great, but it works.

I’ll parrot the other replies and say that I also do.

I create workouts in Garmin Connect

I have, for years.

> for purposes other than workout programming

I specifically called out workouts.

one tedious thing is needing to manually create the workouts. Unless you're doing the same thing week in and week out, it gets old quickly.

I'd build something like a ZWO to FIT converter but there's no way to load them onto a bike computer without Garmin or TrainingPeaks


I only use my Garmin for GPS+heartbeat based workouts such as hikes + my runs. I've never had any issues integrating their services into Strava or a variety of workout devices in gyms. Though, on a sidenote, it is beyond annoying when many of those devices only support Ant+ or Apple HealthKit integration; but I wouldn't really tag that a Garmin issue as much as an ecosystem one.

That all being said, I could imagine more complicated workouts that surpass simple lap/leg tracking could be problematic.


Yeah, Garmin’s own software isn’t great but it very easily syncs directly to loads of other services, and there are “interlocutor” (not sure what the right term is) apps like Rungapp on iOS that will let you sync it to even more.

I personally highly recommend intervals.icu


Any benefits of intervals.icu over Garmin connect?

It’s not only that API access is hard, it’s also they don’t listen tot the community.

Example: It’s not possible to filter for workouts without gear. Sometimes I forget to add my bike or a pair of shoes, so such a filter would be helpful.

It would be very easy for them to add add that filter to the app and / or connect website.

But without a community manager, there’s no engagement possible.

Imagine they had a public tracker where people could request features. They could review them and use that knowledge to build better stuff, making more money.


I just got a new Garmin Vivoactive5 this week, because my old one broke (also vivoactive3). For now I am quite happy with it, but I bought it knowingly, that Garmins APIs and possibilites are not _optimal_ at all.

I looked into getting a Apple Watch series 10, but ultimately decided against it (battery lasting not longer than 1.5days / no real use for messaging or smart apps a side from health / 2x price compared to the vivo).

I would love to find an _open_ watch, that allows for hacking, nice APIs, self-hosting of dashboards even, nice apps et cetera. I feel like there is market for people like me. Maybe the rebirth of the pebble will be able fill this void?


I was hoping this would be a way to import and track data directly from the device, but it appears it talks to the Connect API, so I'm still tied to the official app.

Activities are just FIT files that can be accessed over USB.

You are right, but I've worn out the USB ports on multiple Garmins from using the ports to recharge and download the files. Now I just use the app and download the files later from the Garmin website, and use a magnetic charger plug also to eliminate the wear and tear on the port. I wish I could wirelessly access the files and cut out the Garmin app/download steps.

How old is your Garmin watch/device?

I'm still using a Forerunner 935 from 2017 and I haven't had any problems with charging/syncing data. I use the USB charger about once a week. Once every two weeks during winter when I don't use the GPS as much.

Only thing I have updated on the watch is the free loop, which holds the watch band after you've threaded it through the buckle. I'm gonna have to replace the watch band eventually - the plastic band is starting to crack, Canadian winters aren't gentle on these things.

Garmin support sent me replacement free loops when I called in asking how I could replace them.


I use mine every day for recording year round barring a few breaks and need to charge every three days or so. I've had one long enough to have to change the battery because the life went down so much.

I've been through a lot of Garmin devices and mine always have battery degradation before the USB port is in any way non-functional. Especially with USB-C on the newest ones, that really shouldn't be happening.

I've been using 520-530-540 on a bicycle and ride every day but only need to charge once every three days or so, but these came with microUSB ports.

I believe 540 is on USB-C. I have an Edge 840 (same generation as the 540).

You are correct, the last time I had to replace my 530, the 530 was on sale due to the 540 coming out so I bought the 530 on sale and haven't thought about it since. For some reason I thought I bought a 540 after comparing the product pages for so long.

Whats your magnetic charger of choice? I am tired of wearing through my charging ports.

I gamble and buy the cheapest ones on EBay in lots of three (some have adapters included plugs for USB-C/micro USB, though it seems like as time passed by, more and more are separating the plug purchase from the cable purchase). The recently announced tariffs will put a damper to this since the last few I have bought were dropshipped from China.

I've given up on that, I now use http://www.rungap.com/ to extract Garmin data from their API to my iCloud storage.

You can select the filetype too: gpx, fit or tcx.


I just set this up a few months ago! It stores data in a local sqlite db. I have a script that pulls in new data once a day.

It takes a surprisingly long time, there must be some serious inefficiencies since the watch only takes a second or so to sync all that same data to my phone. I haven't had a chance yet to look closer at the internals.


Any fitness watch with better access to data? I'm not even talking about open source (which would be great), just interested in real-time access to health info without monthly subscription or scrapping their online portal.

I believe garmin is actually better than the others.

I've never put my watch online.

You don't have to "activate" the watch or create an account to use it. You can just strap it on your wrist and go.

You can get to your data using MTP (or the garmin protocol) by accessing the watch filesystem.

I'm not certain about updates. I haven't found a way to download and update the watch offline, but I haven't seriously tried. I did notice some beta firmware you could download and update older watches with offline.

So I think you might need garmin connect or similar to download apps or updates.


Before I recommend this to a garmin-owner who rows, does it have good models for rowing specific data like the 500m split timers and your cadence? I looked and it seems like its very bicycle/run aware, and "paddle" is not a term of art for rowers. (thats in the plugin) -If there is a data model for the Ergo, it probably would work because "its the same" (it isn't but anyway. meh)

He shared some data with me to see if I could decode/dump (2+ years ago) and I gave up. Garmin are not easy sometimes. Shame. I doubt their s/w is making them much, people buy for the hardware not the app specifically. False benefit lockin.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: