[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 | Plugin firefox Garmin ( installation , utilisation ) ]


Piloter un garmin forerunner


Dernière modification le 23 octobre 2013

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

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

[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 dans le fichier /var/log/messages quand on insert la clé ANT+.

Oct 19 18:52:23 tahiti kernel: [17732.711062] usb 4-1: new full-speed USB device number 4 using uhci_hcd

Oct 19 18:52:23 tahiti kernel: [17732.871098] usb 4-1: New USB device found, idVendor=0fcf, idProduct=1009
Oct 19 18:52:23 tahiti kernel: [17732.871108] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 19 18:52:23 tahiti kernel: [17732.871115] usb 4-1: Product: ANT USB-m Stick
Oct 19 18:52:23 tahiti kernel: [17732.871120] usb 4-1: Manufacturer: Dynastream Innovations
Oct 19 18:52:23 tahiti kernel: [17732.871125] usb 4-1: SerialNumber: 063
Oct 19 18:52:23 tahiti mtp-probe: checking bus 4, device 4: "/sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1"
Oct 19 18:52:23 tahiti mtp-probe: bus: 4, device: 4 was not an MTP device

en tapant lsusb on obtient

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

Maintenant j'ai utilisé l'outil GFrun dont la homepage peut se trouver par ici  https://github.com/xonel/GFrun
On le télécharge en tapant dans un shell

wget -N https://github.com/xonel/GFrun/raw/GFrun/GFrun/install/GFrunMenu.sh

et on lui donne des droits d'exécution en tapant

chmod 755 GFrunMenu.sh

on le lance en tant que simple utilisateur en tapant

./GFrunMenu.sh


 
L'outil est prévu pour être lancé sous ubuntu avec un droit sudo, avant de choisir quoi que ce soit dans le menu ci-dessus, sur une mageia en tant que root vous allez installer les packages suivants

pyusb-1.0.0-1.mga2.noarch
python-serial-2.5-2.mga1.noarch
python-poster-0.8.1-3.mga4.noarch
python-setuptools-0.6.24-2.mga2.noarch
python-pip-1.4.1-2.mga4.noarch

à présent vous allez créer sous /etc/udev/rules.d les deux fichiers suivants

garmin-ant2.rules qui contient

SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1009",
RUN+="/sbin/modprobe usbserial vendor=0x0fcf product=0x1009"

puis ant-usbstick2.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"

les 2 fichiers ont pour droit 644, relancez udev en tapant

udevadm control --reload-rules

vous devriez voir apparaître les fichiers spéciaux suivants

ll /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 oct.  20 20:18 /dev/ttyUSB0

ll /dev/ttyANT3
lrwxrwxrwx 1 root root 15 oct.  20 20:05 /dev/ttyANT3 -> bus/usb/004/004

On revient au niveau du menu de GFrun et on choisit l'installation en, tapant 1, il va installer sous ~/GFrun garmin-extractor qui comme son nom l'indique extrait des fichiers au format FIT pour les montres GPS Forerunner 60, 405CX, 310XT, 610 et 910XT qui utilisent la clé ANT+.
Il va installer ensuite le plugin firefox garminplugin qui permet de pouvoir se connecter au site garmin connect, vous allez avoir des erreurs de droits, zapper vers le chapitre correspondant pour l'installation de ce plugin, préalablement il faudra vous créer un compte sur garmin connect.
Normalement tout est bon, tout est installé, tout est bon, allumez votre GPS avec lequel vous avez effectué quelques activités. Lancer GFrun et choisissez 6, la fenêtre se lance et à un moment votre GPS vous demande de valider la transmission, cliquez sur Oui. La fenêtre suivante se lance



vous allez retrouver les fichiers téléchargés sous

~/.config/garmin-extractor/3872022432/activities format .fit
~/.config/garmin-extractor/3872022432/activities_tcx .tcx

Le numéro 3872022432 correspond à l'ID de votre appareil qui est visible à partir du menu Paramètres->A propos de Forerunner. Si on se connecte sur Garmin Connect on peut voir le Forerunner 310XT y compris si celui-ci est éteint, en effet le plugin regarde les fichiers présents dans le répertoire garmin-extractor et non ceux dans le GPS.



La configuration de l'endroit de stockage est donnée dans le fichier ~/.config/garminplugin/garminplugin.xml à cette ligne

<StoragePath>/home/olivier/.config/garmin-extractor</StoragePath>

or nos fichiers sont stockés sous ~/.config/garmin-extractor/3872022432/ du coup quand on clique sur Télécharger les nouvelles activités ou Télécharger les activités sélectionnées, il ne voit rien. J'ai donc créer les liens suivants

ln -s /home/olivier/.config/garmin-extractor/3872022432/activities /home/olivier/.config/garmin-extractor/Garmin/Activities
ln -s /home/olivier/.config/garmin-extractor/3872022432/courses/ /home/olivier/.config/garmin-extractor/Garmin/Courses
ln -s /home/olivier/.config/garmin-extractor/3872022432/sports/ /home/olivier/.config/garmin-extractor/Garmin/Sports
ln -s /home/olivier/.config/garmin-extractor/3872022432/settings/ /home/olivier/.config/garmin-extractor/Garmin/Settings
ln -s /home/olivier/.config/garmin-extractor/3872022432/totals/ /home/olivier/.config/garmin-extractor/Garmin/Totals
ln -s /home/olivier/.config/garmin-extractor/3872022432/workouts/  /home/olivier/.config/garmin-extractor/Garmin/Workouts
ln -s /home/olivier/.config/garmin-extractor/3872022432/weight/ /home/olivier/.config/garmin-extractor/Garmin/Weight

et cette fois-ci, ça marche, on voit bien toutes les activités



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



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

tar xvf turtlesport-linux-1.5.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.5/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_13.9.0.linux.gtk.x86_64.zip

Cela donne le répertoire mytourbook dans lequel on tape

./mytourbook



[Retour haut de la page]

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.20-0-gee0849f.tar.gz

cela donne le répertoire eadiesner-GarminPlugin-ee0849f/ on se déplace dans le répertoire des sources

cd adiesner-GarminPlugin-072a60/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 205.

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