FUNIX

Mettez un manchot dans votre PC



Piloter un garmin forerunner


Piloter un garmin forerunner


Dernière modification le 2 novembre 2012

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 dispose pour cela d'un garmin forerunner 205.

quand on branche le forerunner 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

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


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. 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.

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.4.4.tar.gz

Cela donne le répertoire gpsbabel-1.4.4 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-1.4.2/The_Formats.html

Pour le garmin on retiendra par exemple

Garmin Training Center (.tcx) (gtrnctr)
GPX XML (gpx)
Google Earth (Keyhole) Markup Language (kml)
Garmin serial/USB protocol (garmin)

La commande suivante permet de télécharger les fichiers d'un forerunner 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 un fichier d'entraînement .tcx

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

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



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.2 préalablement créé

tar xvf turtlesport-linux-1.2.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/web/turtlesport-1.2/turtlesport.sh /usr/local/bin/turtlesport

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.



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_12.6.1.linux.gtk.x86.zip

Cela donne le répertoire mytourbook dans lequel on tape

./mytourbook



Plugin firefox garmin

Installation

Le plugin Garmin de firefox vous permet de bénéficier des fonctionnalités du site connect.garmin.com. Vous pouvez y télécharger vos courses, les visualiser et uploader des trajets vers le forerunner tout cela à partir de votre navigateur. On installera préalablement le package lib64tinyxml-devel. Le site officiel est  http://www.andreas-diesner.de/garminplugin/doku.php?id=source on y téléchargera l'archive qu'on décompresse en tapant

tar xvfz adiesner-GarminPlugin-V0.3.12-0-gea7d0db.tar.gz

cela donne le répertoire adiesner-GarminPlugin-072a60e on se déplace dans le répertoire des sources

cd adiesner-GarminPlugin-072a60e/src

et on tape successivement

./configure --with-garmintools-incdir=/usr/local/include --with-garmintools-libdir=/usr/local/lib
make

puis en tant que root, on copie le plugin dans le répertoire adéquat

cp npGarminPlugin.so /usr/lib64/mozilla/plugins/

Utilisation

Connectez vous maintenant à connect.garmin.com, il faudra d'abord créer un compte, puis le personnalisez en choisissant notamment la langue française.



Si vous cliquez sur Télécharger à partir d'un liste, vous obtenez tous les trajets présents sur votre forerunner

Mettant si on visualiser un trajet particulier on obtient des informations très riches. Vous pouvez les garder privées ou les rendres publiques sur le site de garmin.

Vous pouvez maintenant uploader des trajets vers le forerunner en choisissant Téléchargement manuel dans ce cas il faut veiller à uploader des fichiers d'entraînement (.tcx)


A noter qu'il faut souvent que je lance turtlesport préalablement avant qu'il ne voit mon forerunner.

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