Garmin forerunner and Ubuntu 14.04
Aug 16, 2014
This post is more than 5 years old. While math doesn't age, code and operating systems do. Please use the code/ideas with caution and expect some issues due to the age of the content. I am keeping these posts up for archival purposes because I still find them useful for reference, even when they are out of date!
This post is about getting running data off of a Garmin Forerunner 305 and uploaded to the Garmin Connect website. This post follows my previous post on the Garmin forerunner and Ubuntu 12.04 . Basically I will repeat these previous instructions, making sure that everything can still be done on Ubuntu 14.04-- the good news is that everything works on 14.04, so read on if you are interested.
First, we install some dependencies:
$ sudo apt-get install garmin-forerunner-tools libxml2-utils
Second, we grab code from a git repository (do this in a directory where you
want the code to reside-- I'll do this in
$ cd ~/gitlocal/
$ git clone email@example.com:cstrelioff/garmin-dev.git
Note: Edit: 2015, Aug 27
git clonecommand uses ssh and will only work if you have a github account setup and have an ssh key on file. If you don't and would rather not bother setting that up you can
- Dowload a zip of the repository from the github page and unzip on your local computer-- look for the Download ZIP button on the right side of the page.
Or, use git with https instead of ssh. This changes the git clone command
$ git clone https://github.com/cstrelioff/garmin-dev.git
Finally we are ready to get data. I will give one approach -- start by
making a directory where the data will be saved. For example,
$ mkdir ~/GarminData
$ cd ~/GarminData
Next, we connect the watch to the computer using the usb cable and obtain the data from the watch:
If there is data on the watch, this command should produce *.gmn files that use the directory structure: Year/Month/*.gmn.
Finally, the *.gmn files need to be converted to *.tcx for upload to Garmin Connect. It is probably good to choose a consistent place to do this. For example, create a directory called tcxfiles:
$ mkdir ~/GarminData/tcxfiles
$ cd ~/GarminData/tcxfiles/
A command to do the conversions has to provide full paths for gmn2tcx and the input *.gmn file. So, try something like this if you've used the directory structure discussed above:
$ ~/gitlocal/garmin-dev/gmn2tcx ~/GarminData/DataFromWatch/Year/Month/file.gmn > run-name.tcx
Be sure to change ~/GarminData/DataFromWatch/Year/Month/file.gmn to something that makes sense. If all went well, the file run-name.tcx (change this filename to something sensible as well) will be in your local directory and ready to upload. Of course, in the short run you'll want to write a script to automate this process and avoid the typing.