I have two garmin gps watches. A Forerunner 220 and a Fenix. Both can use epehemeris data to speed up satellite fix. It works really well and both watches don’t need more than 15 Seconds to get a fix. Only problem: You need windows to load the ephemeris data onto the watch. So I installed windows, installed the garmin software and started tcpdump. The result is nice. The Garmin software only downloads a file and puts it on the watch. curl can do that also. So here is how to get the gps cache with linux:
On the fr220 the file has to go to GARMIN/REMOTESW/EPO.BIN
On the fenix the file has to be saved to Garmin/GPS/EPO.BIN
I have no idea why one has to post that data. Its only 63bytes. Use mine if you don’t want to start windows.
Update: The cool guys at the the garmin forum found out why the dowloaded File didn’t work. There are always 3 bytes between each chunk of 6-Hour-Data that have to be removed. I wrote some ruby lines to do this. fix_garmin.rb:
This script reads from stdin and writes the fixed data to stdout. So you can plug it in the curl command from above:
I am very happy with the setup now. I only have to plug in my watch and the ephemeris data gets downloaded onto my watch automagically. Thanks to udisks-glue. If you only want to have the File and the above seems a bit too complicated, head over to javawas site. He has made a nice online tool. It even supports the garmin-plugin.
Update2: this still works on a Fenix5 and the Forerunner 245
Update3: if this setup doesn’t work for you anymore, remember this post is from 2014 :) There are nice people in the garmin forums. Have a look at this thread