[Présentation | Garmin Instinct2 ( Installation , programmation avec Connect IQ ) | Logiciels avec client lourd ( Installation de GoogleEarth  , Mytourbook , Viking , OpenCPN  ) | Logiciels en ligne de commande ( GPSBabel ) | Applications en ligne | Montres et outils obsolètes ( Installation du garmin forerunner 205 , Installation du Garmin Forerunner 310XT , Installation du Garmin Forerunner 735XT , Turtlesport , Garmintools ) ]


Piloter une montre GPS Garmin

Dernière modification le 7 décembre 2024

Présentation

Cette page a pour objet de présenter les outils permettant de piloter un garmin 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/ ou bien encore https://www.visorando.com/.

J'ai successivement disposé d'un garmin forerunner 205 que j'ai malheureusement perdu pendant une sortie en planche à voile. Puis d'une Garmin Forerunner 310XT qui a pris l'eau après 7 ans d'utilisation intensive.


Garmin Forerunner 205

Garmin Forerunner 310XT
Je suis passé ensuite au Garmin Forerunner 735XT qui présente l'intérêt de disposer d'un environnement de développement permettant de la personnaliser comme on peut le voir ci-dessous (voir ce post pour plus de détails).
Malheureusement c'est une montre assez fragile et j'ai cassé l'écran assez rapidement lors d'une session en planche à voile (voir ce post) et j'ai fait avec un écran fêlé pendant quasiment 4 avant qu'elle me lâche définitivement.

Je l'ai remplacé depuis par une Garmin instinct modèle surf que j'ai personnalisé avec l'environnement de développement Connect IQ.

dans la suite de cette page j'ai maintenu les détails de configuration propre aux précédentes montres GPS qui n'évoluent plus et que j'ai placés en fin de cette page.

 [Retour vers le haut de la page]

La Garmin Instinct 2

Installation

Elle est vue comme un périmètre de stockage USB tout ce qui a de plus classique et est automatiquement montée.

nov. 24 10:37:36 predator.kervao.fr kernel: usb 3-8: new full-speed USB device number 7 using xhci_hcd
nov. 24 10:37:36 predator.kervao.fr kernel: usb 3-8: New USB device found, idVendor=091e, idProduct=0f30, bcdDevice= 5.09
nov. 24 10:37:36 predator.kervao.fr kernel: usb 3-8: New USB device strings: Mfr=0, Product=0, SerialNumber=0
nov. 24 10:37:36 predator.kervao.fr kernel: usb-storage 3-8:1.0: USB Mass Storage device detected
nov. 24 10:37:36 predator.kervao.fr kernel: scsi host7: usb-storage 3-8:1.0
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210266]: checking bus 3, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-8"
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210266]: bus: 3, device: 7 was not an MTP device
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210267]: checking bus 3, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-8"
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210267]: bus: 3, device: 7 was not an MTP device
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210280]: checking bus 3, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-8"
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210280]: bus: 3, device: 7 was not an MTP device
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210286]: checking bus 3, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-8"
nov. 24 10:37:36 predator.kervao.fr mtp-probe[210286]: bus: 3, device: 7 was not an MTP device
nov. 24 10:37:36 predator.kervao.fr Thunar[210279]: thunar-volman: Périphérique USB de type « usb » non pris en charge.
nov. 24 10:37:36 predator.kervao.fr Thunar[210294]: thunar-volman: Périphérique USB de type « usb-storage » non pris en charge.
nov. 24 10:37:37 predator.kervao.fr kernel: scsi 7:0:0:0: Direct-Access     Garmin   instinct2S Flash      PQ: 0 ANSI: 5
nov. 24 10:37:37 predator.kervao.fr kernel: sd 7:0:0:0: [sde] 37211 512-byte logical blocks: (19.1 MB/18.2 MiB)
nov. 24 10:37:37 predator.kervao.fr kernel: sd 7:0:0:0: [sde] Write Protect is off
nov. 24 10:37:37 predator.kervao.fr kernel: sd 7:0:0:0: [sde] Mode Sense: 23 00 00 00
nov. 24 10:37:37 predator.kervao.fr kernel: sd 7:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
nov. 24 10:37:37 predator.kervao.fr kernel:  sde:
nov. 24 10:37:37 predator.kervao.fr kernel: sd 7:0:0:0: [sde] Attached SCSI removable disk
nov. 24 10:37:43 predator.kervao.fr udisksd[3491]: Mounted /dev/sde at /run/media/olivier/GARMIN on behalf of uid 5001

Et dans le répertoire GARMIN qui est monté automatiquement on retrouve un repértoire GARMIN/ACTIVITY où on retrouvera nos activités au format FIT. La commande lsusb donnera

Bus 003 Device 007: ID 091e:0f30 Garmin International

 [Retour vers le haut de la page]


Programmation avec Connect IQ

Contrairement à la 735XT qui est basée sur Eclipse, elle est basée sur l'environnement de développement Visual Studio Code.

Tous les détails de l’installation sont données en anglais . Pour résumer on récupérera le SDK à cette adresse. Et on tapera les commandes suivantes pour l’installer et le lancer la première fois.

mkdir connectiq-sdk
unzip connectiq-sdk-manager-linux.zip
cd connectiq-sdk/
cd bin/
./sdkmanager

Au besoin il faudra éventuellement installer le package lib64webkit2gtk4.0_37

Il va falloir d’abord se loguer sur son compte Garmin ou le créer à défaut.

Ensuite il y a une fenêtre pour savoir si les mises à jour du SDK doivent être téléchargées automatiquement quand il y a une nouvelle version. Puis vient une fenêtre pour savoir si on effectue également les mises à jour de périphériques automatiquement. A ce moment vous pouvez sélectionner les périphériques concernés, je vous conseille de sélectionner strictement la catégorie de périphérique utile car sinon ça prend de la place inutilement.

Vient ensuite la fenêtre suivante avec un onglet SDK et DEVICES (périphériques), j’ai cliqué sur la dernière version du SDK et seulement les montres (watches and wearables).

Le SDK Connect IQ est basé sur Visual Studio Code qu’on téléchargera ici. On l’installe et on le lance en tapant:

tar tar xvfz code-stable-x64-1731511985.tar.gz
cd VSCode-linux-x64/
bin/code

Il faudra maintenant installer l’extension Monkey C qui inclut un éditeur, un compilateur et un débogueur. Pour cela dans Visual Studio Code, on ira sur View->Extensions et on tapera Monkey C. Puis on clique sur le bouton Install en bleu. Il faudra ensuite relancer Visual Studio Code.

On génère maintenant une clé de développeur qui sera utile pour signer les applications, attention de bien la conserver dans un coin sans quoi, on ne pourra plus éditer les différents projets ! Pour la générer, on tapera la combinaison de touches Ctrl+Shift+P et dans la liste déroulante on choisit Monkey C: Generate a developper key.

Tant qu’à fait avec la même combinaison de touches on téléchargera des exemples de code Monkey C: Open Samples Folder. Ils se sont retrouvés sous .Garmin/ConnectIQ/Sdks/connectiq-sdk-lin-7.3.1-2024-09-23-df7b5816a/samples. J’ai donc fait un lien de ce répertoire vers mon répertoire de travail de Connect IQ.

On peut passer à sa première application Hello Word ! Pour le code, c’est un peu la jungle, il faut naviguer à vue sur la page Connect IQ et pas mal tâtonner, on pourra commencer par la page pour construire sa première application. La page donnant le détail de l’API est un incontournable, pour mon Instinct 2, il y a une page spécifique mais je n’ai pas trouvé de codes spécifiques même dans les exemples téléchargés. Le forum dédié est également une bonne source d’informations et d’aide. Vous pouvez ensuite partager votre code ici mais force est de constater que peu de développeurs partagent leur code.

 [Retour vers le haut de la page]

Au final ça m’a pris des heures pour essayer de comprendre comment coder tout ça et aboutir à ce résultat, tout cela à partir du projet originel Hello World. C’est assez galère car il y a globalement assez peu d’exemples commentés.

Une fois que l’application fonctionne sur le simulateur, il faut construire le binaire, on y accède via la combinaison de touches Ctrl+Shift+P et on choisit Monkey C : Build for device. La compilation va générer un fichier .PRG, une fois la montre connectée en USB, on le placera sous GARMIN/APPS. Pour revenir en arrière il suffira de supprimer le dit fichier.

Et voilà ce que ça donne avec la montre en fonctionnement

J'ai particulièrement galéré pour l'affichage des secondes car par défaut il y a une mise à jour que toutes les minutes quand la montre est en mode basse consommation (la plupart du temps) et il faut se servir de la fonction onPartialUpdate qui permet un affichage local avec un rafraîchissement toutes les secondes.

j'ai également pris du temps à créer une jauge pour la batterie, je suis parti de cette page sur le forum Garmin.

J'ai également utilisé une font personnalisé car celles par défaut étant trop grosses même les plus petites. Je me suis aidé de cette page  https://jeffchen.dev/posts/Garmin-Watch-Faces-Custom-Fonts-On-MacOS/ son auteur a forké le logiciel FontBuilder qui va permettre de générer des fonts à un format compréhensible pour Garmin à partir des fonts présentes sur un système linux sous /usr/share/fonts (ou ailleurs).

On télécharge le fork à l'adresse https://github.com/jchen1/fontbuilder. On décompresse ensuite l'archive en tapant

unzip fontbuilder-master.zip

Il faudra éventuellement installer les packages freetype2-devel, lib64qt5widgets-devel et lib64qt5xml-devel. On tape ensuite

cd fontbuilder-master/
qmake
make

et on lance le logiciel en tapant bin/FontBuilder


Dans cet onglet on chargera la font

Et dans cet onglet on l'exporte au format BMFont

On placera ensuite les fichiers générés .fnt et .PNG dans un répertoire resources/fonts du projet.

Au final si vous souhaitez consulter les sources, vous les trouverez à cette adresse https://github.com/funix83/Funix-Watch

 [Retour vers le haut de la page]

Logiciels avec clients lourds

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 https://www.google.fr/earth/index.html  j'ai choisi le rpm 64 bits qu'on installera de manière classique avec urpmi
La version indépendante qui ne se lance pas via un navigateur se lance en tapant la commande google-earth-pro



[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’œil 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 le binaire qu'on décompresse en tapant

tar xvfz mytourbook-24.11.0-linux.x86.tar.gz

Cela donne le répertoire mytourbook dans lequel on tape

./mytourbook


[Retour vers la haut de la page]

Viking

viking est un autre logiciel pour gérer les données GPS, le site officiel est https://github.com/viking-gps/viking on récupère l'archive qu'on décompresse en tapant

tar xvfz viking-viking-1.10.tar.gz

cela donne le répertoire viking-viking-1.10
il faudra éventuellement installer les packages suivants

urpmi json-glib-devel lib64geoclue2-devel lib64gexiv2-devel lib64oauth-devel lib64gpsd-devel lib64mapnik-devel lib64curl-devel lib64gtk+3.0-devel lib64magic-devel

et créer le lien suivant en tant que root

ln -s /usr/include/mapnik/mapbox/ /usr/include/

puis sous viking-viking-1.10 on tape

./autogen.sh
./configure

Voilà le résultat

===========================================
viking http://viking.sf.net/ 1.10
-------------------------------------------
GTK2                             : no
Bing Maps                        : yes
Google                           : yes
Terraserver Maps                 : no
Expedia Maps                     : no
Open Street Map                  : yes
BlueMarble                       : yes
GeoClue Support                  : yes
Geonames                         : yes
Geocaches Acquire                : no
Geotag Support                   : yes (libgexiv2=yes libexif=)
USGS 24k DEM                     : no
Realtime GPS Tracking            : yes
bzip2 Support                    : yes
File Magic Support               : yes
MBTiles Support (SQLite3)        : yes
Zip File Support (with libzip)   : no
MD5 Hash Support (with libnettle): yes
Mapnik Rendering Support (C++)   : yes
OAuth                            : yes
Size of map cache (in memory)    : 256
Age of tiles (in seconds)        : 604800
GeoNames user                    : "viking"
Documentation (+HTML)            : no (HTML: yes)
-------------------------------------------

Configure finished, type 'make' to build.

et on tape ensuite make puis en tant que root make install


[Retour vers la haut de la page]

OpenCPN

OpenCPN est un logiciel de navigation complet qui s'interface avec des équipements de navigation classiques comme les GPS, radar ou bien encore AIS. On peut également l'utiliser pour visualiser des traces sans connexion particulière.
Pour l'installation on commencera par installer wxWidgets qu'on trouvera par ici https://www.wxwidgets.org/ on récupèrera l'archive qu'on décompresse en tapant

tar xvfj wxWidgets-3.2.6.tar.bz2

cela donne le répertoire wxWidgets-3.2.6 dans lequel on tape

./configure
make

puis en tant que root

make install

on installe maintenant les packages tinyxml-devel, lib64glew-devel, lib64archive-devel et lib64usb1.0-devel. Le site officiel d'OpenCPN est https://opencpn.org/ mais on récupèrera les sources par là https://github.com/OpenCPN/OpenCPN/releases on les décompresse en tapant

tar xvfz OpenCPN-Release_5.10.2.tar.gz

cela donne le répertoire OpenCPN-Release_5.10.2 dans lequel on tape

mkdir build
cd build
cmake


puis

make

maintenant ce n'est pas tout, il faut récupérer les cartes, on pourra commencer par les cartes cotières d'OpenSeaMap par là http://openseamap.org/index.php?id=kartendownload&L=1 ou mieux encore les cartes CM93 ici http://pierre.lavergne1.free.fr/special_voileux/OpenCPN.html (mais pas sûr que ça doit bien libres...). On dézippe tout ça dans un répertoire qu'on indiquera ensuite à OpenCPN.

Et voilà le résultat en tapant opencpn


[Retour vers le haut de la page]

Logiciels en ligne de commande

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 https://www.gpsbabel.org/. On y récupèrera l'archive qu'on décompressera en tapant

tar xvfz gpsbabel-1.9.0.tar.gz

Cela donne le répertoire gpsbabel-1.9.0 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)

Pour transformer un fichier .fit en .gpx on tapera ainsi

gpsbabel -i garmin_fit -f 2020-07-25-tracegps-fun-sainte-marguerite-2.FIT -o gpx -F 2020-07-25-tracegps-fun-sainte-marguerite-2.gpx

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]

Applications en ligne

Il existe un certain nombre de sites en ligne qui vous permettent de visualiser vos traces à partir de format standard.

Tout d’abord des alternatives en ligne permettant d’importer des fichiers de points GPS. On commencera par GPS Visualizer qui permet d’afficher les valeurs en nœuds et miles nautiques et de coloriser la trace en fonction de la vitesse.


on notera la pointe de vitesse instantanée à 31,1 nœuds .

Il existe également My GPS Files qui donne quelque chose comme ça :


Attention il ne reconnait pas le format .FIT.

Il y a toutefois un petit bogue dans l’affichage de la vitesse marquée en nœuds mais qui est en km/h en fait. Le replay de la trace est possible.

Il existe maintenant des solutions qui permettent un archivage des sorties mais qui obligent à avoir un compte, c'est le cas de strava ou de Garmin Connect que j'utilise

[Retour vers la haut de la page]

Montres et outils obsolètes

Installation du Garmin Forerunner 205

Dans ce chapitre 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) 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+.

mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: new full-speed USB device number 5 using ehci-pci
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: New USB device found, idVendor=0fcf, idProduct=1009
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: Product: ANT USB-m Stick
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: Manufacturer: Dynastream Innovations
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: SerialNumber: 063
mai 07 14:01:21 tetiaroa.kervao.fr mtp-probe[26867]: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2"
mai 07 14:01:21 tetiaroa.kervao.fr mtp-probe[26867]: bus: 1, device: 5 was not an MTP device
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbcore: registered new interface driver usbserial
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbcore: registered new interface driver usbserial_generic
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for generic
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbcore: registered new interface driver usb_serial_simple
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for carelink
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for zio
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for funsoft
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for flashloader
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for google
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for vivopay
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for moto_modem
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for novatel_gps
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for hp4x
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for suunto
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usbserial: USB Serial support registered for siemens_mpi
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb_serial_simple 1-1.2:1.0: suunto converter detected
mai 07 14:01:21 tetiaroa.kervao.fr kernel: usb 1-1.2: 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 001 Device 005: ID 0fcf:1009 Dynastream Innovations, Inc. ANTUSB-m Stick

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'activité 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 en tant que root

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 du Garmin Forerunner 735XT

En fait, il n'y a rien à faire, c'est un bête périphérique USB qui est parfaitement reconnu comme un périphérique de stockage, voici la trace avec journalctl

août 30 14:20:43 predator.kervao.fr kernel: usb 2-9: new full-speed USB device number 10 using xhci_hcd
août 30 14:20:44 predator.kervao.fr kernel: usb 2-9: New USB device found, idVendor=091e, idProduct=086e, bcdDevice= 5.09
août 30 14:20:44 predator.kervao.fr kernel: usb 2-9: New USB device strings: Mfr=0, Product=0, SerialNumber=0
août 30 14:20:44 predator.kervao.fr kernel: usb-storage 2-9:1.0: USB Mass Storage device detected
août 30 14:20:44 predator.kervao.fr kernel: scsi host8: usb-storage 2-9:1.0
août 30 14:20:44 predator.kervao.fr mtp-probe[15639]: checking bus 2, device 10: "/sys/devices/pci0000:00/0000:00:14.0/usb2/2-9"
août 30 14:20:44 predator.kervao.fr mtp-probe[15639]: bus: 2, device: 10 was not an MTP device
août 30 14:20:44 predator.kervao.fr baloo_file[4770]: UdevQt: unhandled device action "bind"
août 30 14:20:44 predator.kervao.fr mtp-probe[15655]: checking bus 2, device 10: "/sys/devices/pci0000:00/0000:00:14.0/usb2/2-9"
août 30 14:20:44 predator.kervao.fr mtp-probe[15655]: bus: 2, device: 10 was not an MTP device
août 30 14:20:44 predator.kervao.fr baloo_file[4770]: UdevQt: unhandled device action "bind"
août 30 14:20:44 predator.kervao.fr Thunar[4571]: thunar-volman: Périphérique USB de type « usb » non pris en charge.
août 30 14:20:44 predator.kervao.fr Thunar[4571]: thunar-volman: Périphérique USB de type « usb-storage » non pris en charge.
août 30 14:20:45 predator.kervao.fr kernel: scsi 8:0:0:0: Direct-Access     Garmin   FR735XT Flash    1.00 PQ: 0 ANSI: 5
août 30 14:20:45 predator.kervao.fr kernel: sd 8:0:0:0: [sdf] 20646 512-byte logical blocks: (10.6 MB/10.1 MiB)
août 30 14:20:45 predator.kervao.fr kernel: sd 8:0:0:0: [sdf] Write Protect is off
août 30 14:20:45 predator.kervao.fr kernel: sd 8:0:0:0: [sdf] Mode Sense: 23 00 00 00
août 30 14:20:45 predator.kervao.fr kernel: sd 8:0:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
août 30 14:20:45 predator.kervao.fr kernel:  sdf:
août 30 14:20:45 predator.kervao.fr kernel: sd 8:0:0:0: [sdf] Attached SCSI removable disk
août 30 14:20:50 predator.kervao.fr udisksd[3008]: Mounted /dev/sdf at /run/media/olivier/GARMIN on behalf of uid 5001

Et dans le répertoire GARMIN qui est monté automatiquement on retrouve un repértoire GARMIN/ACTIVITY où on retrouvera nos activités au format FIT. Sinon un lsusb donnera

Bus 002 Device 010: ID 091e:086e Garmin International Forerunner 735XT

[Retour vers le haut de la page]

Turtle Sport

Installation

Turtle Sport est une application permettant de télécharger les fichiers d'un forerunner 205 ou 735XT directement ou via import de fichiers et de visualiser les données, pour cela il est même interfacé à google earth. Le site officiel est http://turtlesport.sourceforge.io/FR/home.html. Sur ma mageia j'ai installé le rpm turtlesport-2.0-1.all.rpm  et je lance l'application en tapant dans un shell turtlesport.

Il n'a pas été mis à jour depuis un certain temps mais il reste utilisable.

Utilisation

On configure l'application à 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 le haut de la page]

Garmintools

Installation

Garmintools est un ensemble d'utilitaire permettant de piloter spécifiquement les GPS garmin qui sont connectables en USB, il n'a pas d'intérêt pour les montres récentes. On installera préalablement la bibliothèque lib64usb-devel ou lib64usb-compat0.1-devel sur une mageia. 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 page d'accueil FUNIX] [retour haut de la page ]