29 enero 2012

Clonar nuestro GPS Garmin en una unidad GPS Virtual

Con la aparición en el mercado de la renovada serie Etrex XX de receptores GPS "de mano", se extiende la generalización del uso del programa gratuito Garmin BaseCamp para la administración de los mapas (vectoriales y ráster) y de los datos (waypoints, tracks y rutas) de nuestro GPS, en detrimento del programa Garmin MapSource que ya ha dejado de actualizarse y se encuentra en clara "via de extinción".

Por otro lado, el problema que afecta con mayor frecuencia a los usuarios tal como se desprende de su publicación en los foros, es el "cuelgue" del GPS al incluir en el mismo un dato (track, ruta, etc.) o mapa, en teoría compatibles y habitualmente obtenido de Internet, pero que en la práctica puede dejar a nuestro receptor inoperante hasta que no resolvamos el problema, consiguiendo generar en nosotros el correspondiente "ataque de pánico" :-(

Si nos queremos evitar dicho "mal trago", una muy buena solución es utilizar un "clon virtual" de nuestro GPS con el programa BaseCamp (o el HomePort) para verificar que los datos o mapas que vamos a introducir en nuestro receptor serán 100% compatibles y no vamos a tener problema alguno con ellos. Con lo de "clon virtual" me vengo a referir en crear "algo" con unas características que emule a nuestro GPS y que "engañe" al programa BaseCamp creyendo que se trata de nuestro GPS pero que en realidad no lo es. Ya se que suena de momento un poco "metafísico" pero espero que se entenderá.

Cuando conectamos nuestro receptor GPS de última generación al PC a través del cable USB, el ordenador detecta el dispositivo y carga los controladores o "drivers" del GPS, que se copian automáticamente al instalar el programa BaseCamp. Es entonces cuando dichos controladores le dicen al sistema operativo que nuestro GPS se comporta como una unidad de almacenamiento removible, y crea un unidad de almacenamiento para acceder al contenido de la memoria interna del GPS y otra unidad de almacenamiento para la tarjeta de memoria (si existe obviamente... ;-p).

Así que lo de crear un "clon virtual" de nuestro GPS no es más que conseguir tener en el PC, una unidad de almacenamiento removible y con el mismo contenido, similar a la que se nos crea cuando conectamos físicamente y a través del cable USB, nuestro receptor GPS. Dado que ambas unidades de almacenamiento (la de la memoria interna y la de la tarjeta de memoria) utilizan el mismo sistema de carpetas y archivos, y el GPS lee indistintamente los datos y mapas de cualquiera de ambas, bastará con clonar tan solo una de ellas.

¿Y como podemos crear un "clon virtual" de nuestro GPS?. Pues existen 2 métodos:

1) Utilizando un lápiz de memoria USB, pues se detecta como una unidad de almacenamiento removible cuando la conectamos a un puerto USB del ordenador.

Una vez tengamos el lápiz de memoria formateado en FAT/FAT32, crearemos en él una carpeta de nombre Garmin. En dicha carpeta copiaremos el archivo de nombre GarminDevice.xml que debemos buscar en la memoria interna de nuestro GPS. Este archivo es el responsable de "engañar" y hacer creer al programa BaseCamp que el lápiz de memoria USB se trata de nuestro GPS, pero que en realidad no lo es.

En dicha carpeta Garmin crearemos el resto de carpetas susceptibles de contener datos y mapas que queramos "probar" en el BaseCamp antes de meterlas en nuestro GPS, a saber:

-carpeta BirdsEye para los mapas ráster JNX
-carpeta CustomMaps para los mapas ráster KMZ
-carpeta GPX para waypoints, tracks y routes en formato GPX

Los archivos "contenedores" con mapas vectoriales (ej. gmapsupp.img, gmapbmap.img, gmapprom.img, etc.) los copiaremos directamente en la carpeta Garmin, y pueden ser renombrados sin problema alguno para su mejor identificación (ej. TopoHispania.img, etc.)


2) Creando una unidad de almacenamiento removible "virtual" utilizando un archivo de imagen ubicado en el disco duro de nuestro PC.

Este procedimiento resulta algo más complejo, pero nos ahorraremos comprar el lápiz de memoria USB y superaremos las limitaciones que conlleva su uso, a saber, su "limitada y fija" capacidad de almacenamiento y que las operaciones de lectura/escritura desde/hacia el lápiz de memoria USB son mucho más lentas que no desde un archivo de imagen ubicado en nuestro disco duro.

Para crear nuestra unidad de almacenamiento removible "virtual" nos descargaremos e instalaremos el programa gratuito ImDisk Virtual Disk Driver. Para acceder al programa se nos ha creado un icono en el Panel de Control con el mismo nombre.

La primera operación a realizar es crear la unidad de almacenamiento removible virtual, ejecutando el programa desde el Panel de Control:

  • Presionamos el botón [Mount new...] en la ventana del programa 
  • En la nueva ventana que aparece seleccionamos una ubicación en el disco duro y un nombre para el archivo de imagen presionando el botón [...]. Podemos cambiar la letra de unidad con la que se identificará o dejar por defecto la primera letra libre que le asigna Windows. Escribimos en el siguiente recuadro el tamaño de la unidad virtual (ej. 4 Gigabytes) (¡OJO!, ese tamaño lo tendrá el archivo de imagen creado y por tanto se lo estamos quitando al disco duro...). Y por último y es ESENCIAL, seleccionar la opción [x]Removable media, ya que si no se selecciona esta opción aparecerá la unidad virtual creada como una unidad de disco duro y el Garmin BaseCamp hace caso omiso de ella. Presionamos [OK]
  • Volvemos a la ventana inicial y aparece listada nuestra unidad virtual ya creada. Nos queda un último paso y es seleccionar la letra de unidad haciendo click sobre ella (¡OJO!, solo se activa haciendo click sobre la letra bajo la columna Drive, porque haciendo click sobre la ruta y el nombre de la unidad no se activa...). Se activan entonces los botones inferiores de manera que ya podremos presionar sobre [Format...] para formatear nuestra unidad virtual (podemos dejar las opciones de formateo por defecto, FAT32, etc.), y le damos a [Iniciar]. Esperamos un poco hasta que nos indique que el formato de la unidad está completo.


Nuestra nueva unidad virtual ahora ya es accesible desde el Explorador de Windows en el apartado unidades con almacenamiento extraible. Ahora debemos crear en ella una carpeta de nombre Garmin en la que incluiremos el archivo GarminDevice.xml, así como el resto de carpetas ya mencionadas anteriormente donde incluiremos los mapas y datos GPS correspondientes. Si abrimos ahora el Garmin BaseCamp, detectará nuestra unidad virtual como si de nuestro GPS se tratara.

Si alguien no dispone de un GPS de Garmin de última hornada y por tanto no tiene acceso a un archivo GarminDevice.xml que es imprescindible, podeis utilizar el siguiente de ejemplo y que es completamente funcional. Para obtener el archivo GarminDevice.xml, basta con descargarse en el PC la siguiente imagen, eliminar del nombre la extensión ".jpg" para que quede el nombre del archivo como GarminDevice.zip, y descomprimir entonces de él el archivo GarminDevice.xml incluido.


IMPORTANTE:
Cuando cerramos la sesión de usuario o apagamos el PC, el contenido de la unidad virtual se guarda automáticamente en el archivo de imagen correspondiente. Si volvemos a encender el PC y/o iniciamos nueva sesión de usuario, hemos de volver a montar de nuevo la unidad virtual para ser accesible en Windows y por tanto, en el Garmin BaseCamp. En el Panel de Control seleccionamos ImDisk Virtual Disk Driver, presionamos [Mount new...] y en la nueva ventana con el botón [...] buscamos y seleccionamos el archivo de imagen que tenemos creado en el disco duro, seleccionamos de nuevo la opción [x]Removable media y presionamos [OK]. Ya tenemos de nuevo montada nuestra unidad de almacenamiento extraible virtual.


NOTA:
Es posible que algunos archivos contenedores de mapas (gmapsupp.img y similares) los visualiceis perfectamente en vuestro GPS y sin embargo en el programa Garmin BaseCamp no se visualicen. Para superar tal problema y hacerlo compatible con el programa es necesario modificar algún byte del archivo contenedor de mapas, lo cual podeis conseguir con la siguiente pequeña utilidad IMGMod . El archivo IMGMod.exe no hay que ejecutarlo una vez descomprimido. Hay que arrastrar el archivo contenedor de mapas IMG sobre el icono del archivo IMGMod.exe e instantáneamente queda parcheado y listo para su uso en BaseCamp. ;-p