lunes, 28 de mayo de 2012

Garmin forerunner 405 y 410 en Ubuntu



Este blog nace por la dificultad que tuve al hacer funcionar correctamente mi garmin forerunner 410 en ubuntu 12.04, asi que decidi publicar mis experiencias.
Lo primero que hay que decir que comunmente para hacer funcionar el forerunner en linux se suele usar el paquete garmin-ant-downloader con el cual se obtienen resultados regulares, asi que descartado este empezamos al lio.

Los dispositivos soportados para la receta son:
- Garmin forerunner 405cx
- Garmin forerunner 410
- USB Ant stick  (FCC ID 06RUSB2)
- Cualquier distribucion de Linux deberia ser compatible, yo lo probé en un ubuntu 11.10 y 12.04
Desde luego estos pasos son un pelin mas laboriosos que usar garmin-ant-downloader pero los resultados son muchisimo mejores, "garantizao".

Para poder descargar los datos a tu pc usaremos python-ant-downloader, las caracteristicas principales son:
- Obviamente la descarga de datos del garmin forerunner.
- Envio de los datos descargados a tu cuenta de garminconnect de forma automatica si asi se quiere.
- Subida de datos a tu cuenta de gmail, opcionalmente tambien.
- Posibilidad de borrar los datos del GPS una vez descargados en el PC.

Las carencias son:
- No puede subir trayectos ni entrenos del PC al GPS, esa caracteristica solo la tiene el soft de WIN.
- No tiene interfaz grafica, no tiene la menor importancia, al menos para mi. Aunque con otro articulo lo resolveremos con un simple script.

Las dependencias a instalar son:
- Python 2.6+
- pyusb 1.0 (se recomienda la ultima version desde git, la 0.4 no funciona)
- poster
- argparse
- lxml
- setuptools

En ubuntu resolveremos las dependencias con:

sudo apt-get install git python python-argparse python-lxml python-setuptools

Instalaremos pyusb desde git:

git clone https://github.com/walac/pyusb.git
cd pyusb
sudo ./setup.py install
cd

Instalamos python-ant-downloader desde git:

git clone git://github.com/braiden/python-ant-downloader.git
cd python-ant-downloader
git checkout serial
sudo ./setup.py install

Ahora ya tenemos todo el software listo a falta compatibilizar nuestro usb ant stick con ubuntu; Creamos /etc/udev/rules.d/99-antusb.rules:
En ubuntu 12.04 y posteriores:

sudo nano /etc/udev/rules.d/99-antusb.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1008", MODE="666"
RUN += "/sbin/modprobe usbserial vendor=0x0fcf product=0x1008"

Guardamos con la combinacion de teclas "CTRL" + "O"

En ubuntu 10.04 y anteriores:

sudo nano /etc/udev/rules.d/99-antusb.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fcf", SYSFS{idProduct}=="1008", MODE="666"
RUN += "/sbin/modprobe usbserial vendor=0x0fcf product=0x1008"

Guardamos con la combinacion de teclas "CTRL" + "O"
Reiniciamos udev y añadimos nuestro usuario al grupo dialout:

sudo /etc/init.d/udev restart
sudo adduser $USER dialout

Antes de iniciar la comunicacion con el GPS hay que configurarlo de tal manera:

Menu > Configuración > ANT+ > Ordenador > Vinculación > Ativado
Menu > Configuración > ANT+ > Ordenador > Forzar enviar > Si
Menu > Configuración > ANT+ > Ordenador > Activado > Si

La primera vez que ejecutes el programa este se scincronizará con el GPS. Asegurate que el GPS esta encendido y tiene la vinculacion ant+ activada.
A continuacion tan solo tienes que ejecutar el programa

ant-downloader

Una vez aceptada la solicitud de emparejamiento en el GPS se guarda una clave y ya no sera necesario emparejar el dispositivo de nuevo. Tan solo tendreis que encender el GPS, activar la vinculacion y ejecutar el programa seguidamente se descargarán todos los datos a nuestro PC.
El ultimo paso es editar el fichero de configuracion de python-ant-downloader que se encuentra en; "~/.antd/antd.cfg".

nano ~/.antd/antd.cfg.

Guardamos con la combinacion de teclas "CTRL" + "O"
Es bastante entendible a pesar de que esta en ingles.
Hago un breve repaso al fichero de configuracion con los datos mas importantes.

Aqui podeis poner cualquier directorio de vuestro PC, en mi caso es "~/Tracks Forerunner"
[antd.tcx]
; plugin which writes TCX files, you probably
; want to keep enabled.
enabled = True
; where tcx files are written
tcx_output_dir = ~/.antd/%%(device_id)s/tcx
La primera opcion es para activar o desactivar (True o False") el envio de los datos descargados a vuestra cuenta de Garmin Connect, mas abajo debereis especificar vuestra cuenta y contraseña.
[antd.connect]
; true to enable uploading in general
enabled = False
; Garmin Connect username / password
; Email smtp login info for strava
username = cuenta
password = contraseña
Con esta opcion activada se borrarán todos los datos vuestro GPS una vez descargados en vuestro PC.
; set to true to delete from data from device after downloading
delete_from_device = False

Y listo, espero que sirva de ayuda y como no, espero vuestras criticas y sugerencias.
En la proxima entrada explicare como añadir una interfaz grafica e interactiva.