It’s been a while, but I’ve finally found some time to work on pygarmin and garmin-sync again. This has resulted in a new version of garmin-sync, 0.3. Not much has changed since 0.2; the biggest changes are in pygarmin itself. In general, this version should work better for people who had trouble getting it to work in the past.
You can download it at https://launchpad.net/garmin-sync/+download
New features include:
- More robust USB communication
- Possibility to get debug information, to help fix problems
- Might work with Forerunner (testers needed)
- Fixed bug 135717 (Missing data point for Forerunner)
- Fixed bug 154081 (Some value errors when running garminsync.py)
I’m hoping this release will make garmin-sync work with the Forerunner series, and not only with Edge. If you have a Forerunner, please give it a try, and tell me whether it works.
If you have problem getting your GPS to work, please run garmin-sync with -d usb.packet and send the output to me. That will help me debug what’s wrong.
I have been working on a program that can download data from my Garmin Edge 305 GPS in Linux, and now I’ve finally got something that’s work. The program is called GarminSync, and you can download it from Launchpad.
Please try it out, but don’t expect too much from it. My main focus has been to get something working, now I’m going to focus more on getting it somewhat stable. There are a tons of bugs, for example it sometimes doesn’t work to download the data, and you have to simply try to run it again, and/or reconnect the GPS. But at least it’s able to download the runs from my GPS and export them to TCX files. It should be possible to such files to MotionBased, but it seems like the format is slightly wrong. At the moment I can’t get the GPS to work in VMWare, so I haven’t been able to get a correct file to compare with.
GarminSync is written in Python, so it probably works on other platforms than Linux as well, but I haven’t tried yet.
I recently bought a new gadget for my bike, a Garmin Edge 305. It’s a GPS-enabled bicycle computer, which tracks your position, speed, pulse, altitude, etc., and you can of course download the data to your computer and analyse it. You can also upload data to it, for example workout programs, courses, and more.
The sad thing is that its Linux support is currently limited. Tools such gpsbabel and gpsman claim to support the device, but I haven’t gotten it to work yet. Also, those tools are mainly for extracting GPS data, they don’t handle other data, such as pulse and laps that well.
But there is hope! I found a project called pygarmin which is a Python library for communicating with Garmin GPS devices. The library is based on Garmin’s Device Interface SDK, so it shouldn’t be too hard to make it support my GPS device. The protocol specification doesn’t seem to include all the commands that the Edge uses, but there’s an open source tool for Windows, MotionBased Agent, which should be able to download and upload data to a Garmin Edge 305, so it should be possible to find out what needs to be added to pygarmin.