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]
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
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 là.
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]
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
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
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
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
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
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]
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
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
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
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.
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.