[Présentation | Installation du garmin forerunner 205 | Installation du Garmin Forerunner 310XT | Installation de GoogleEarth | Garmintools ( installation , utilisation ) | GPSBabel ( installation , utilisation ) | Turtlesport ( installation , utilisation ) | Mytourbook  ]


Piloter une montre GPS Garmin Forerunner


Dernière modification le 26 avril 2015

Présentation

Cette page a pour objet de présenter les outils permettant de piloter un garmin forerunner sous linux, en particulier comment récupérer et visualiser les trajets et uploader des fichiers de point vers le GPS. Vous pouvez trouver sur internet un certain nombre de sites qui proposent des traces GPS, cela permet de préparer une sortie et notamment d'uploader la trace dans le GPS afin de la suivre. Parmi ces sites, on peut citer http://www.utagawavtt.com/ et http://www.tracegps.com/.

Je disposais pour cela d'un garmin forerunner 205 que j'ai malheureusement perdu pendant une sortie en planche à voile.

A présent je dispose d'un garmin forerunner 310XT


Installation du Garmin Forerunner 205

Dans ce chapire je présente l'installation d'un forerunner 205 sur un système linux non doté de systemd (mageia 2), ne disposant plus de ce gps à l'heure actuelle, je ne saurai garantir si ça marche toujours. Quand on branche le forerunner 205 voilà ce qu'on peut observer dans le fichier /var/log/messages

Nov  2 11:01:07 huahine kernel: [  171.093636] garmin_gps ttyUSB0: Garmin GPS usb/tty converter now disconnected from ttyUSB0
Nov  2 11:01:07 huahine kernel: [  171.093656] garmin_gps 1-1.1:1.0: device disconnected
Nov  2 11:01:09 huahine kernel: [  172.806276] usb 1-1.1: new full-speed USB device number 5 using ehci_hcd
Nov  2 11:01:09 huahine kernel: [  172.892888] usb 1-1.1: New USB device found, idVendor=091e, idProduct=0003
Nov  2 11:01:09 huahine kernel: [  172.892893] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Nov  2 11:01:09 huahine kernel: [  172.893391] garmin_gps 1-1.1:1.0: Garmin GPS usb/tty converter detected
Nov  2 11:01:09 huahine kernel: [  172.893610] usb 1-1.1: Garmin GPS usb/tty converter now attached to ttyUSB0

par défaut on peut trouver sur n'importe quelle distribution linux moderne le module garmin_gps dont on peut visualiser le chargement en tapant

lsmod|grep garmin

voilà le résultat

garmin_gps             23105  0
usbserial              47070  1 garmin_gps
usbcore               207173  9 ehci_hcd,usb_storage,usbhid,usbserial,garmin_gps,snd_usbmidi_lib,snd_usb_audio,uvcvideo

Au branchement un fichier /dev/ttyUSB0 est créé automatiquement, voici le mien

crw-rw---- 1 root dialout 188, 0 nov.   2 10:52 /dev/ttyUSB0

 Si vous avez des problèmes de droit d'accés sur le port USB, il sera sans doute utile de rajouter votre utilisateur dans le groupe dialout et lp (fichier /etc/group) ou bien encore de taper (il faudra le faire à chaque fois) en tant que root

chmod 666 /dev/ttyUSB0

lsusb
me donne

Bus 001 Device 005: ID 091e:0003 Garmin International GPS (various models)

On crée ensuite un fichier /etc/udev/rules.d/51-garmin.rules contenant

SUBSYSTEM=="usb", ATTR{idVendor}=="091e", ATTR{idProduct}=="0003", MODE="0666"

et on rajoute au fichier /etc/modprobe.d/blacklist-mga.conf  (pour une mageia 2) la ligne

blacklist garmin_gps

[Retour vers le haut de la page]

Installation du Garmin Forerunner 310XT

L'installation est moins simple qu'avec le forerunner 205, il faut d'abord brancher la petite clé USB ANT+ qui est fournie avec. Il suffit que la montre GPS soit allumée à proximité pour que la transmission de données se fasse par liaison sans fil via la clé ANT+, le câble USB qui est founi avec ne sert qu'à recharger la batterie et aucunement au transfert de données. Vous devez préalablement configurer votre GPS pour permettre la transmission de données Mode->Paramètres->Système->Transfert des données, on choisit Activé et Couplage Activé. Voilà ce que ça donne en tapant journalctl -f quand on insert la clé ANT+.

avril 25 21:06:42 localhost kernel: usb 2-1.1: new full-speed USB device number 5 using ehci-pci
avril 25 21:06:42 localhost kernel: usb 2-1.1: New USB device found, idVendor=0fcf, idProduct=1009
avril 25 21:06:42 localhost kernel: usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
avril 25 21:06:42 localhost kernel: usb 2-1.1: Product: ANT USB-m Stick
avril 25 21:06:42 localhost kernel: usb 2-1.1: Manufacturer: Dynastream Innovations
avril 25 21:06:42 localhost kernel: usb 2-1.1: SerialNumber: 063
avril 25 21:06:42 localhost mtp-probe[20772]: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1"
avril 25 21:06:42 localhost mtp-probe[20772]: bus: 2, device: 5 was not an MTP device
avril 25 21:06:44 localhost kernel: usbcore: registered new interface driver usbserial
avril 25 21:06:44 localhost kernel: usbcore: registered new interface driver usbserial_generic
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for generic
avril 25 21:06:44 localhost kernel: usbcore: registered new interface driver usb_serial_simple
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for zio
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for funsoft
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for flashloader
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for vivopay
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for moto_modem
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for hp4x
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for suunto
avril 25 21:06:44 localhost kernel: usbserial: USB Serial support registered for siemens_mpi
avril 25 21:06:44 localhost kernel: usb_serial_simple 2-1.1:1.0: suunto converter detected
avril 25 21:06:44 localhost kernel: usb 2-1.1: suunto converter now attached to ttyUSB0

visiblement il le rattache à un équipement suunto, mais ça n'a pas d'importance. En tapant lsusb on obtient

Bus 004 Device 004: ID 0fcf:1009 Dynastream Innovations, Inc.

On installera maintenant les packages suivants:

urpmi python-pyusb python-serial python-setuptools python-pip

on récupère maintenant openant qui est une bibliothèque python pour piloter les périphériques compatibles ANT-FS (les produits garmin en général). Le site officiel est https://github.com/Tigge/openant on y récupère l'archive qu'on décompresse en tapant

unzip openant-master.zip

cela donne le répertoire openant-master dans lequel en tant que root on tape

python setup.py install

Maintenant  on récupère antfs-cli, qui s'appelait auparavant Garmin-Forerunner-610-Extractor ou Garmin-Extractor) et qui permet de récupérer les fichiers d'actitivté FIT d'un périphérique et de les écrire dans un répertoire. Le site officiel https://github.com/Tigge/antfs-cli on y récupère l'archive qu'on décompresse en tapant

unzip antfs-cli-master.zip

cela donne le répertoire antfs-cli-master dans lequel on tape

python setup.py install

Quand on regarde de plus près, il a créé sous /etc/udev/rules.d/ le fichier ant-usb-sticks.rules qui contient

SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1008", MODE="0666", SYMLINK+="ttyANT2", ACTION=="add"
SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1009", MODE="0666", SYMLINK+="ttyANT3", ACTION=="add"

quand la clé est effectivement branchée, quand on tape

ll /dev/ttyANT3

on peut voir

lrwxrwxrwx 1 root root 15 avril 25 21:59 /dev/ttyANT3 -> bus/usb/002/007

pour le lancer il suffit de taper dans un shell

antfs-cli --upload

voilà la trace

Driver available: [<class ant.base.driver.SerialDriver at 0x7f2d38e1aef0>, <class ant.base.driver.USB2Driver at 0x7f2d387c8600>, <class ant.base.driver.USB3Driver at 0x7f2d387c8668>]
 - Using: ant.base.driver.USB3Driver
Request basic information...
  Capabilities:  array('B', [8, 8, 0, 186, 54, 0, 223, 230])
Starting system...
Key done...
Searching...
Authenticating with Forerunner 310XT (3872022432)
 - Pairing:

Quand on le lance la première fois, il faut faire une synchronisation avec la montre (apparier), sur la montre il demande l'autorisation de le faire, on répond bien évidemment oui.

 OK
Downloading 121 file(s)
 and uploading 0 file(s)
Downloading 1989-12-31_01-00-00_1_65535.fit: [..............................] ETA: 0:00:00
Downloading 1989-12-31_01-00-00_2_65535.fit: [..............................] ETA: 0:00:00
....

sur la montre on peut voir s'afficher Transfert de données, ça peut prendre un certain temps si vous ne faites pas le ménage régulièrement sur votre montre. Vous allez retrouver les fichiers téléchargés au format .fit sous

~/.config/antfs-cli/3872022432/activities

Le numéro 3872022432 correspond à l'ID de votre appareil. Pour faire simple et pour retrouver facilement les fichiers d'activités ensuite, j'ai créé le lien suivant

ln -s /home/olivier/.config/antfs-cli/3872022432/activities /home/olivier/Activités-gps

[Retour vers le haut de la page]

Installation de Google Earth

On commencera par installer GoogleEarth qui est utilse pour visualiser les trajets. On récupérera une version binaire à cette adresse http://www.google.fr/earth/index.html  j'ai choisi le rpm 64 bits qu'on installera de manière classique avec urpmi


[Retour vers le haut de la page]

Garmintools

Installation

Garmintools est un ensemble d'utilitaire permettant de piloter spécifiquement les GPS garmin, on installera préalablement la bibliothèque lib64usb-devel. On récupèrera ensuite garmintools à l'adresse suivante http://code.google.com/p/garmintools/downloads/list. A noter que garmintools ne marche pas avec les montres compatibles ANT+. On décompresse l'archive en tant

tar xvfz garmintools-0.10.tar.gz

Cela donne le répertoire garmintools-0.10 dans lequel on tape

./configure --with-pic
make

A noter que l'option --with-pic est nécessaire en architecture 64 bits. Puis en tant que root

make intall

Utilisation

La commande garmin_get_info permet d'obtenir des infos sur le périphérique, voilà le résultat

<garmin_unit id="e3cf5040">
 <garmin_product id="484" software_version="2.90">
  <product_description>Forerunner205 Software Version 2.90</product_description>
 </garmin_product>
 <extended_data_list>
  <extended_data>SIRFGPS N/A    a
                                 </extended_data>
 </extended_data_list>
 <garmin_protocols>
  <garmin_physical protocol="P000"/>
  <garmin_link protocol="L001"/>
  <garmin_command protocol="A010"/>
  <garmin_waypoint>
   <garmin_waypoint_waypoint protocol="A100" waypoint="D110"/>
  </garmin_waypoint>
  <garmin_route protocol="A201" header="D202" waypoint="D110" link="D210"/>
  <garmin_track protocol="A302" header="D311" data="D304"/>
  <garmin_almanac protocol="A500" almanac="D501"/>
  <garmin_date_time protocol="A600" date_time="D600"/>
  <garmin_position protocol="A700" position="D700"/>
  <garmin_pvt protocol="A800" pvt="D800"/>
  <garmin_lap protocol="A906" lap="D1015"/>
  <garmin_run protocol="A1000" run="D1009"/>
  <garmin_workout>
   <garmin_workout_workout protocol="A1002" workout="D1008"/>
   <garmin_workout_occurrence protocol="A1003" occurrence="D1003"/>
   <garmin_workout_limits protocol="A1005" limits="D1005"/>
  </garmin_workout>
  <garmin_fitness protocol="A1004" fitness="D1004"/>
  <garmin_course>
   <garmin_course_course protocol="A1006" course="D1006"/>
   <garmin_course_lap protocol="A1007" lap="D1007"/>
   <garmin_course_point protocol="A1008" point="D1012"/>
   <garmin_course_limits protocol="A1009" limits="D1013"/>
  </garmin_course>
 </garmin_protocols>
</garmin_unit>

La commande garmin_save_runs récupère les fichiers d'un forerunner et les sauve dans le répertoire courant. L'extension des fichiers est .gnm, c'est un fichier binaire qui peut être ensuite décodé par les commandes garmin_dump et garmin_gmap. Les fichiers sont sauvegardés en créant automatiquement les répertoires pour l'année et le mois. Voilà ce que ça donne à l'exécution

Extracting data from Garmin Forerunner205 Software Version 2.90
Files will be saved in '/raiatea/video/embarque/test'
Wrote:   /raiatea/video/embarque/test/2011/07/20110707T182216.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110710T143302.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110711T071437.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110716T101059.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110719T072116.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110720T080519.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110722T145846.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110723T152942.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110728T080944.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110730T143423.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110730T144217.gmn
Wrote:   /raiatea/video/embarque/test/2011/07/20110731T144905.gmn

on peut changer l'emplacement de sauvegarde par défaut en modifiant la variable d'environnement GARMIN_SAVE_RUNS

la conversion en fichier xml s'effectue avec garmin_dump avec la syntaxe suivante

garmin_dump 20110731T144905.gmn > 20110731T144905.xml

garmin_gmap a la même syntaxe et permet de sauvegarder un fichier lisible par googlemaps.
garmin_gpx a la même syntaxe et permet de sauvegarder un fichier lisible par OpenStreetMap.

[Retour haut de la page]

GPSBabel

Installation

GPSBabel convertit des points de passage (waypoint), des trajectoires (tracks) suivant différents formats en entrée et en sortie. Le site officiel est http://www.gpsbabel.org/. On y récupèrera l'archive qu'on décompressera en tapant

tar xvfz gpsbabel-1.5.2.tar.gz

Cela donne le répertoire gpsbabel-1.5.2 dans lequel on tape successivement

./configure
make

puis en tant que root

make install

Utilisation

La syntaxe est la suivante

gpsbabel -i format d'entrée -f nom du fichier d'entrée -o format de sortie -F nom du fichier de sortie

On obtient la liste des formats à l'adresse suivante http://www.gpsbabel.org/htmldoc-development/The_Formats.html

Pour le garmin on retiendra par exemple

Flexible and Interoperable Data Transfer (FIT) Activity file (garmin_fit)
Garmin 301 Custom position and heartrate (garmin301)
Garmin G1000 datalog input filter file (garmin_g1000)
Garmin Logbook XML (glogbook)
Garmin MapSource - gdb (gdb)
Garmin MapSource - mps (mapsource)
Garmin MapSource - txt (tab delimited) (garmin_txt)
Garmin PCX5 (pcx)
Garmin POI database (garmin_poi)
Garmin Points of Interest (.gpi) (garmin_gpi)
Garmin serial/USB protocol (garmin)
Garmin Training Center (.tcx) (gtrnctr)
Garmin Training Center (.xml) (gtrnctr)

La commande suivante permet de télécharger les fichiers d'un forerunner 205 et de les sauver dans un fichier .gpx

gpsbabel -i garmin -f /dev/ttyUSB0 -o gpx -F fichier.gpx

La commande suivante permet d'uploader dans un forerunner 205 un fichier d'entraînement .tcx

gpsbabel -i gtrnctr -f fichier.tcx -o garmin -F /dev/ttyUSB0

A noter qu'il semblerait que ça ne marche pas avec une connexion via ANT+. Pour par exemple télécharger dans le forerunner une trace afin de pouvoir la suivre, généralement on récupère une trace .gpx qu'il faudra convertir au format entraînement .tcx comme ceci

gpsbabel -i gpx -f fichier.gpx -o  gtrnctr -F fichier.tcx

Pour uploader il suffit ensuite de taper

gpsbabel -i gtrnctr -f fichier.tcx -o garmin -F /dev/ttyUSB0



 [Retour haut de la page]

Turtlesport

Installation

Turtlesport est une application permettant de télécharger les fichiers d'un forerunner et de visualiser les données, pour cela il est même interfacé à google earth. Le site officiel est http://turtlesport.sourceforge.net/FR/home.html. On y récupèrera l'archive qu'on décompressera dans le répertoire turtle-sport-1.6 préalablement créé

tar xvf turtlesport-linux-1.6.tar

on lance l'application en tapant dans ce répertoire ./turtlesport.sh on peut également créer le lien suivant

ln -s /usr/local/linux/pda-gps/turtlesport-1.6/turtlesport.sh /usr/local/bin/turtlesport

A noter qu'on peut télécharger les activités directement à partir d'un forerunner 205 mais ça ne marche pas à partir du 310XT, il faudra passer par l'import de fichiers.

Utilisation

On configure l'appli à partir de l'icône de préférence (celle du milieu), on télécharge ensuite les fichiers à partir de l'icone verte la plus à gauche. Vous disposez ensuite de différentes fonctionnalités plus ou moins intuitives permettant de visualiser vos exploits.



Une des fonctionnalités les plus intéressantes est le couplage directe avec google earth à partir de la petite icône en haut à droite.



[Retour vers la haut de la page]

Mytourbook

Mytourbook est un outil similaire à turtlesport, il dispose d'une fonctionnalité intéressante qui permet sur un trajet de visualiser en un seul coup d'oeil les différences de vitesse suivant la couleur (copie d'écran ci-dessous). Le site officiel est http://mytourbook.sourceforge.net/mytourbook/. On y récupèrera l'archive qu'on décompresse en tapant

unzip mytourbook_15.3.2.linux.gtk.x86_64.zip

Cela donne le répertoire mytourbook dans lequel on tape

./mytourbook



[Retour page d'accueil FUNIX] [retour haut de la page ]