Ceci est une ancienne révision du document !
GPSBabel
GPSBabel est un logiciel permettant de
- Récupérer/envoyer les points de passages (waypoints), les traces (tracks) et routes vers un appareil GPS.
- Les convertir entre les différents formats GPS et logiciels de cartographie.
GPSBabel support les format Garmin MapSource, Magellan MapSend, GPX, Geocaching *.loc.
Il gère la communication USB avec les appareils Garmin et Magelan.
Pré-requis
- Disposer des droits d'administration ;
- Disposer d'une connexion à Internet configurée et activée ;
- Avoir activé l'accès aux dépôts Universe ;
- Avoir installé les paquets libc6 libexpat1 libusb-0.1-4 geotoad
Installation
L'installation est très simple. Il vous suffit d'installer le paquet gpsbabel
Utilisation
Format général
L'utilisation des commandes gpsbabel suit toujours un même schéma de base qui renseigne :
- -i : le format d'entrée
- -f : le fichier d'entrée et son chemin
- -o : le format de sortie
- -F : le fichier de sortie et son chemin
Ce qui nous donne donc de manière générique :
gpsbabel -i format_d_entrée -f fichier_d_entrée -o format_de_sortie -F fichier_de_sortie
Conversion de formats
GPSBabel permet également la conversion de différents formats. Ainsi il est possible de convertir la liste des caches de votre région dans un autre format.
Le site du logiciel propose une liste des formats supportés par GPSBabel.
Un exemple (celui qui m'est le plus utile) : la conversion du format geocaching.com-*.loc en format GPX (compris par mon gps)
gpsbabel -i geo -f /home/votre_dossier_personnel/geocaching.loc -o gpx -F /home/votre_dossier_personnel/geocaching.gpx
Comme on peut le constater dans cet exemple, la seule difficulté va donc consister à connaître le nom à mettre dans la commande pour déterminer les formats. Il ne sont pas tous intuitif (*.loc et nommé geo dans notre exemple)
Communiquer avec le GPS
Rappelons nous que dans Linux tout est considéré comme un fichier… un port USB aussi donc…
Retrouver le chemin de sa connexion USB
Une fois le GPS raccordé au port usb, il vous suffit d'exécuter la commande
dmesg
après avoir branché le GPS, pour voir apparaître des informations du style :
[4309364.676000] drivers/usb/serial/usb-serial.c: USB Serial support registered for Garmin GPS usb/tty [4309364.682000] garmin_gps 5-1:1.0: Garmin GPS usb/tty converter detected [4309364.726000] usb 5-1: Garmin GPS usb/tty converter now attached to ttyUSB0 [4309364.726000] usbcore: registered new driver garmin_gps [4309364.726000] drivers/usb/serial/garmin_gps.c: garmin gps driver v0.23
On remarque de suite que la gestion de la communication usb est gérée par le noyau et que le GPS se trouve donc lié au « pseudo port série » dénommé /dev/ttyUSB0.
C'est cette dernière information qui nous sera nécessaire. On aura donc :
- comme "fichier" de source : -f /dev/ttyUSB0
- ou de destination : -F /dev/ttyUSB0
Récupérer des données du gps
Attelons nous à rapatrier les données de notre gps. Ces informations sont les waypoints, les routes et les traces (log des déplacements).
Pour fonctionner avec les formats magellan et garmin, il faudra faire appel à des flags supplémentaire dans les commandes :
- -t : Pour les tracks
- -r : Pour les routes
- -w : Pour les waypoints
Voici donc un exemple pour récupérer la liste des waypoints enregistrée dans le gps de marque garmin et de modèle etrex venture cx
gpsbabel -w -i garmin -f /dev/ttyUSB0 -o gpx -F liste_waypoints.gpx
La liste des waypoints sera donc ici enregistrée, au format GPX, dans le fichier nommé « liste_waypoints.gpx ».
Nous pouvons naturellement récupérer l'ensemble des enregistrements (tracks, waypoints, routes) en combinant tous les flags dans la commande :
gpsbabel -t -r -w -i magellan -f /dev/ttyUSB0 -o gpx -F backup.gpx
Cette commande créera un fichier, au format gpx, nommé backup.gpx contenant toutes les traces, routes et waypoints d'un gps de type magellan.

Fournir des données au GPS
Transférer la liste des waypoints ou la route de votre futur randonnée vers votre gps (afin de vous éviter des les entrer un à un sur le gps lui-même) est relativement simple si vous avez suivit jusqu'ici, puisqu'il suffira d'inverser source et destination…
Les flags -w, -r, et -t gardent la même signification que dans le paragraphe précédent.
Un exemple pour éclaircir les idées??
Pour notre exemple ce fichier s'appellera rando1.gpx et sera "codé" au format GPX (format normalisé basé sur le XML)
Envoyons donc notre route pour cette futur randonnée vers notre GPS Garmin :
gpsbabel -r -i gpx -f rando1.gpx -o garmin -F /dev/ttyUSB0
geocaching.com
Si vous êtes comme moi un adepte du geocaching, et que vous utilisez souvent le site geocaching.com, vous pouvez creer un script bash qui vous permet d'envoyer un fichier loc directement sur votre GPS depuis le site. Pour cela, il vous suffit de créer le script « send2gps » suivant :
#!/bin/sh gpsbabel -w -i geo -f "$1" -o garmin -F /dev/ttyUSB0
Dans cette exemple, j'utilise un GPS de type garmin branché sur le port USB. Je vous laisse biensur le soin de le modifier selon votre configuration et votre gps. Ensuite rendez vous sur le site de geocaching, et tester votre script en cliquant sur un fichier "loc" à telecharger. Votre navigateur devrait vous demander si vous voulez le telecharger. Choisissez tout simplement "ouvrir avec" et sélectionner votre script "send2gps" à la place.
Pour le rendre utilisable par le navigateur, il ne faut pas oublier de le rendre éxecutable et donc lui donner les droits adéquat :
chmod +x send2gps.sh