Garmin Forerunner (ANT+) mit Ubuntu auslesen

In diesem Artikel zeige ich, wie man eine Garmin-Laufuhr (mit ANT+-Schnittstelle) mit einem Linux-System synchronisieren kann, d.h. auf die aufgezeichneten Tracks im Garmin-eigenen FIT-Format zugreifen kann um sie beispielsweise bei Garmin Connect zu veröffentlichen.
Das Auslesen der Uhr geschieht dabei von der Kommandozeile aus mit dem Python-Tool antfs-cli.

In meinem Fall handelt es sich um ein Garmin Forerunner 610, welche mit einem ANT+-USB-Strick geliefert wurde. Laut Projektseite von antfs-cli sollte die vorgestellte Software auch mit anderen ANT+-fähigen Laufuhren von Garmin funktionieren.
Mein Linux-System ist ein Lenovo Thinkpad auf dem ein Ubuntu 16.04 installiert ist. Die Installationsanleitung ist daher Ubuntu-spezifisch, sollte aber unverändert auf Debian-basierten Systemen funktionieren.

(Dieser Artikel ist eine aktualisierte und erweiterte Version meines Artikels von 2015)

Vorbereitungen

1. Benötigte Software-Pakete müssen vorhanden sein (python, python-setuptools, git, libusb-1.0-0, usbutils). Falls nicht, können sie über das Terminal mit

florian@ubuntu:~$ sudo apt-get update
florian@ubuntu:~$ sudo apt-get install python python-setuptools
florian@ubuntu:~$ sudo apt-get install git libusb-1.0-0 usbutils

installiert werden.

2. ANT+-Stick muss eingesteckt und vom Rechner erkannt werden, was man einfach mit einem Aufruf von lsusb feststellen kann:

florian@ubuntu:~$ lsusb
...
Bus 001 Device 011: ID 0fcf:1009 Dynastream Innovations, Inc. ANTUSB-m Stick
...

Hier muss neben vielen anderen USB-Devices ein ANT+-USB-Stick angezeigt werden.

ANT+-Stick im Laptop
ANT+-Stick im Laptop

3. Aktuelle Versionen von pyusb, openant und antfs-cli von github.com herunterladen und installieren:

# Repositories klonen
git clone https://github.com/walac/pyusb.git     /tmp/pyusb
git clone https://github.com/Tigge/openant.git   /tmp/openant
git clone https://github.com/Tigge/antfs-cli.git /tmp/antfs-cli

# Installieren; Root-Passwort wird benötigt!
(cd /tmp/pyusb     ; sudo python setup.py install)
(cd /tmp/openant   ; sudo python setup.py install)
(cd /tmp/antfs-cli ; sudo python setup.py install)

# Repository-Klone wieder löschen
rm -rf /tmp/pyusb /tmp/openant /tmp/antfs-cli[/code]

Nach erfolgreichem Ausführen dieser Setup-Skripte, sollte es insbesondere ein antfs-cli-Executable in /usr/local/bin/ geben, zudem sollten udev-Regeln für den ANT+USB-Stick in /etc/udev/rules.d/ angelegt worden sein.

Pairing und Synchronisation

Ein erstmaliger Aufruf von antfs-cli führt ein Paring durch, welches man an der Uhr bestätigen muss:

Pairing-Bestätigung am Forerunner 610
Pairing-Bestätigung am Forerunner 610

Danach startet direkt der Download der Daten.
Die Ausgabe im Terminal sollte etwas wie folgt aussehen:

florian@ubuntu:~$ antfs-cli
Driver available: [, , ]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223])
Starting system...
Key done...
Searching...
Authenticating with Forerunner 610 (3897XXXXXX)
 - Pairing: OK
 - Set time: FAILED
Downloading 158 file(s)
Downloading 2016-03-31_15-50-36_4_108.fit: [..............................] ETA: 0:00:00
...
Transfer-Anzeige am Forerunner 610
Transfer-Anzeige am Forerunner 610

Bei nachfolgenden Aufrufen von antfs-cli entfällt der Pairing-Schritt und der Download beginnt sofort (sofern neue Daten auf der Uhr vorhanden sind).

Die heruntergeladenen Daten landen im Verzeichnis ~/.config/antfs-cli/3897XXXXXX/activities, wobei 3897XXXXXX die Identifikationsnummer des Forerunner ist.

Und dann?

Nach einem Lauf rufe ich immer antfs-cli im Terminal auf, um die neuen Tracks von der Uhr herunterzuladen.

Garmin Connect

Typischerweise lade ich die neuen Tracks dann bei Garmin Connect hoch.
Dazu öffne ich im Browser die Aktivitäts-Seite von Garmin Connect, starte die Funktion „manuell hochladen“ und wähle dann die neue FIT-Datei aus dem Verzeichnis ~/.config/antfs-cli/3897XXXXXX/activities aus.
Voilà, mein neuer Lauf ist auf Garmin Connect verfügbar!

Upload bei Garmin Connect
Upload bei Garmin Connect

Strava

Ein Upload bei Strava funktioniert ähnlich.
Hier ruft man die Upload-Seite auf, klickt auf den Menüpunkt „Datei“, und wählt anschließend die FIT-Datei aus dem Verzeichnis ~/.config/antfs-cli/3897XXXXXX/activities aus.
Bingo! – Der Lauf ist auf Strava!

Man kann sein Strava-Profil auch automatisch von Garmin Connect aus befüllen lassen – wie man das einrichtet, erkläre ich in einem separaten Betrag.

GPSBabel

Mit den Kommandozeilentool gpsbabel lassen sich die FIT-Dateien in weitere Formate konvertieren und anderweitig weiterverwenden.
Eine GPX-Datei erzeugt man bespielsweise so:

gpsbabel -i garmin_fit -f EINGABE.fit -o gpx -F AUSGABE.gpx

EINGABE.fit ist dabei z.B. eine FIT-Datei aus dem Verzeichnis ~/.config/antfs-cli/3897XXXXXX/activities, AUSGABE.gpx ist der Name der zu erzeugenden GPX-Datei.

Ein Gedanke zu „Garmin Forerunner (ANT+) mit Ubuntu auslesen“

Kommentar verfassen