The Problem

Since getting a Garmin Forerunner 610 I have been largely satisfied with the various aspects of getting the data from the said watch on to the Internet. It is a multi stage process, each with risks and issues very much dependent on non functional qualities, such as network and USB resilience, usability and so on. To give an example, I get the data from my watch using a USB ANT+ stick, Mac computer, Garmin's Express software, Garmin Connect online service and finally, Strava via Strava's linked account capability. That's a lot of steps, and a lot of potential failures lying in wait. I am not going to get into my rather low estimation of both Garmin's Connect service and Express software; needless to say, I think they are both rather substandard at the moment.

Now the usual method of getting data from the watch is a trivial affair when everything just works: wake up the Mac, plug in the ANT stick, fire up Garmin Express and put the watch within the vicinity. Just recently I had noticed that the occasional run session would not upload to the computer. The transfer progress bar would appear on the watch and then disappear almost immediately with the Garmin Express software announcing that the latest workout was uploaded to Garmin Connect.

A small amount of research will tell you that, whilst Garmin gear is great when it works, there is frustratingly little in the way of support or information when things go wrong.

A Solution

Bear in mind (in case it's not obvious) that this article is written in the context of someone who is using a Unix / Linux based operating system. If you are running Windows then I am sorry - you have my sympathy.

In the somewhat unlikely event that things are going wrong, and all you want to do is get the data off that damn watch, there is a solution to your woes. Bear with me, however, there's going to be some command line work involved...

So, first things first, fire up a terminal session.

Go ahead and make yourself a directory to do all the work in:

$ mkdir ~/Documents/garmin
$ cd ~/Documents/garmin

Now get the software you are going to need to get the job done - this involves downloading (cloning) some code from Github:

$ git clone
$ cd openant
$ sudo python install
$ cd ..

openant is a library that is a dependency for the Garmin Forerunner Extractor software. Below, you can see how you clone the code, install it and make it executable.

$ git clone GFR610
$ cd GFR610
$ sudo python install
$ chmod u+x

Now just run it as a test it to make sure that it works:

$ ./ --help
usage: [-h] [--upload] [--debug] [--pair] [-a]

Extracts FIT files from ANT-FS based sport watches.

optional arguments:
  -h, --help           show this help message and exit
  --upload             enable uploading
  --debug              enable debug
  --pair               force pairing even if already paired
  -a, --skip-archived  don't download files marked as 'archived' on the watch

Now get your ANT usb stick and plug it in to any port on your machine and then run the program again. Now start up your watch and put it somewhere nearby. Next, just watch the output in the terminal:

$ ./
Driver available: [<class ant.base.driver.SerialDriver at 0x100c69ae0>, <class ant.base.driver.USB2Driver at 0x100d692c0>, <class ant.base.driver.USB3Driver at 0x100d69328>]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223])
Starting system...
Key done...
Authenticating with Forerunner 610 (3890343564)
 - Pairing: OK
Downloading 7 file(s)
Downloading [..............................] ETA: 0:00:00
Downloading [..............................] ETA: 0:00:00
Downloading [..............................] ETA: 0:00:00
Downloading [..............................] ETA: 0:00:00
Downloading [..............................] ETA: 0:00:00
Downloading [..............................] ETA: 0:00:00
Downloading [..............................] ETA: 0:00:00

You'll notice that there is a point where the terminal output mentions 'Searching' and then 'Authenticating [...]'. At this point the watch will ask you if you wish to pair the watch, at which point you select 'yes' on the watch screen.

Once that is successful, you will see the files start to download. You will notice that there is a series of files with names beginning 1989-12-31_00-00-00 - these are not workouts you did many years ago; they are system files which will appear each time you run this process and can be safely ignored.

Finally, all the files that have downloaded successfully are placed in a directory in your home directory, named .config/antfs-cli/nnn, where nnn is, I presume, the device identifier of your watch. The files you will be interested in are those in the activities directory.

$ ls -al ~/.config/antfs-cli/3890343564/*/*
-rw-r--r--  1 chrisramsay  staff  65363  7 Jan 11:33 activities/
-rw-r--r--  1 chrisramsay  staff  46457 13 Jan 22:11 activities/
-rw-r--r--  1 chrisramsay  staff  10255 13 Jan 22:12 activities/
-rw-r--r--  1 chrisramsay  staff   9624 13 Jan 22:12 activities/
-rw-r--r--  1 chrisramsay  staff  48803 13 Jan 22:13 activities/
-rw-r--r--  1 chrisramsay  staff  61218 13 Jan 22:14 activities/
-rw-r--r--  1 chrisramsay  staff   3586 13 Jan 22:14 activities/
-rw-r--r--  1 chrisramsay  staff    573  7 Jan 11:28 settings/
-rw-r--r--  1 chrisramsay  staff   1213  7 Jan 11:28 sports/
-rw-r--r--  1 chrisramsay  staff   1213  7 Jan 11:28 sports/
-rw-r--r--  1 chrisramsay  staff    125  7 Jan 11:33 totals/
-rw-r--r--  1 chrisramsay  staff     72  7 Jan 11:33 weight/

So now you can go ahead and grab those .fit files and upload them directly to Strava via their 'add manual entry' page. Note that these files will contain heart rate data if you used your heart rate monitor strap during your run.


comments powered by Disqus