Using Garmin 910XT With Ubuntu Linux (Part 1)

Garmin Forerunner 910XT

My primary (recently only) OS is Ubuntu Linux, and I’ve been struggling to set up device sync with my Garmin 910XT on Linux. Figured it out today, and thought I’d post it here for reference. (This post refers to getting the data off the device and on to the system. In 2nd post of the series, will add instructions to then upload it using Garmin Connect).

Here’s what I did:

  1. Downloaded the drivers branch of ‘Garmin Forerunner 610 Extractor’ from Github as a zip file, and extracted it to a folder on my drive. For me, this folder was at ‘~/Dropbox/Misc/GarminOnLinux/Garmin-Forerunner-610-Extractor-drivers/
  2. As suggested in the notes on Github (and included README), ran the following command to make it easy to run the sync without using sudo. Didn’t work for me, but your results may vary:

    cd Dropbox/Misc/GarminOnLinux/Garmin-Forerunner-610-Extractor-drivers/
    sudo cp resources/ant-usbstick2.rules /etc/udev/rules.d

  3. Installed pyusb. I used pip to install:

    pip install pyusb

  4. Connected the ANT+ USB stick at /dev/ttyUSB0. Inserted the USB stick, and ran the command below:

    lsusb | grep Dynastream

    This gives an output of the form like: ‘Bus 003 Device 002: ID 0fcf:1009 Dynastream Innovations, Inc.‘.
    Used the information from this output in the next command:

    sudo modprobe usbserial vendor=0x0fcf product=0x1009

  5. Everything is now setup, so switched on the Forerunner watch, with pairing switched on. After a short wait to allow for pairing, ran the Forerunner extractor1:

    sudo python garmin.py

That’s it. The final command initiated a complete download from my Forerunner 910XT, files being stored in ‘~/.config/garmin-extractor/XXXXXXX/', XXXXXXX being a number that varies from device to device.


Most instructions on the web say root access isn’t required for running garmin.py, but for me it didn’t work without the sudo.  Got the error:

DriverException: could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
Interrupted: could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'

Using Garmin 910XT With Ubuntu Linux (Part 1)

6 thoughts on “Using Garmin 910XT With Ubuntu Linux (Part 1)

  1. After reading your tweet, I too remembered to setup the script on my new laptop and did that today.
    I don’t know why you’re using /dev/ttyUSB0, the shipped udev rules add symlinks for /dev/ttyANT2 and /dev/ttyANT3.
    Whenever I connect my USB ANT+ stick to laptop, it is creating the device symlink with following permissions
    lrwxrwxrwx 1 root root 15 Jan 6 01:32 /dev/ttyANT2 -> bus/usb/003/021
    Thus, I can read as normal user too.
    Either your udev rules aren’t working or you’ve specified /dev/ttyUSB0 somewhere, which is causing the issue.

    1. Adi says:

      Sorry mate.. never got down to writing part 2.

      Just wrote a basic shell script to do the sync, copy files to a folder inside my dropbox (for backup), and open the folder in Nautilus. Still do the manual upload myself.

Leave a Reply