README

Short description:
GarminPlugin is a browser plugin to support Garmin Devices on Linux.
Currently (02.12.2010) there is no official browser plugin support for Linux from Garmin.
This plugin has nothing to do with the company Garmin (http://www.garmin.com)
Long description:
This browser plugin has the same methods and properties as the official
Garmin Communicator Plugin (http://www8.garmin.com/products/communicator/).
It can be used to transfer GPX files (Geocache Descriptions) to your garmin
device using the official Garmin Javascript API. Its functionality depends on
the device you use.
- Edge305/Forerunner305: ReadFitnessData, ReadGpsData, No write support
- Edge705/Oregon/Dakota: ReadFitnessData, ReadGpsData, Write Gpx files
- Edge800: ReadFitnessData, Write Gpx/Tcx Files
- Other devices: Executes external command to write Gpx to device
Motivation:
Garmin introduced paperless geocaching a while ago on their devices. This
works great using Windows and geocaching.com because a windows plugin is
available that gives you the possibility to transfer geocaches with one click
to the device. Having to boot Windows every time I wanted to go geocaching
felt like a waste of time. I had many different ideas on how to best transfer
geocaches to my garmin device, but they were all based on parsing the
geocaching.com website because they do not offer an official API to access
the geocaches. The idea of having to update my application every time they
change their layout did stop me from going that approach. Writing a browser
plugin that simulates the garmin plugin seemed to be the best idea. Using a
javascript debugger soon revealed that the effort of writing such a plugin
wasn't that huge - so I got started...
Features:
- Write a GPX file to disk
- Call a script after the GPX file was written to disk
- Read FitnessData from device
GarminPlugin is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GarminPlugin is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
This software was written by Andreas Diesner [ andreas.diesner [AT] gmx [DOT] de ]
The project is hosted on http://www.andreas-diesner.de/garminplugin/
The source code is hosted on GitHub http://github.com/adiesner/GarminPlugin
Dependencies to other projects:
garmintools - http://code.google.com/p/garmintools/
libusb - http://www.libusb.org/
ticpp - http://code.google.com/p/ticpp/
zlib - http://www.zlib.net
Thanks goes to
- Christian Kurek
- Bob Trower (http://base64.sourceforge.net)
- The contributors of the above projects
Howto compile GarminPlugin:
# This example shows how to compile GarminPlugin on a 64bit Ubuntu System
sudo apt-get install build-essential subversion git-core xulrunner-dev zlib1g-dev libusb-dev
git clone http://github.com/adiesner/GarminPlugin.git
svn export http://garmintools.googlecode.com/svn/trunk/ garmintools
svn export http://ticpp.googlecode.com/svn/trunk/ ticpp
wget http://downloads.sourceforge.net/project/premake/Premake/4.2.1/premake-4.2.1-linux.tar.gz?use_mirror=ignum
# compile ticpp
tar xvzf premake-4.2.1-linux.tar.gz
cd ticpp
../premake4 --cc=gcc --os=linux --platform=x64 gmake
# if you are not able to execute premake4 on a 64bit machine install ia32-libs and try again
sed --in-place 's/$(CFLAGS)/$(CFLAGS) -fPIC/g' TiCPP.make
make config=release64
cd ..
# compile garmintools
cd garmintools
./configure CXXFLAGS="-fPIC -g -O2" CFLAGS="-g -O2 -fPIC"
make
cd ..
# compile GarminPlugin
cd GarminPlugin
./configure
make
cd ..
# Install the plugin
sudo cp GarminPlugin/npGarminPlugin.so /usr/lib/mozilla/plugins