Retrieve EPO.BIN GPS data from Garmin's servers on any platform that you can compile a Go binary for, rather than only those that support Garmin Connect. Since Garmin's software doesn't run natively on Linux, it's useful there.
EPO.BIN is GPS Extended Prediction Orbit (EPO) satellite data valid for 7 days, used to help speed up GPS locking on Garmin devices that support this.
For Forerunner devices, the file should be copied to
GARMIN/REMOTESW/EPO.BIN
on the watch.
There are other existing options, e.g. running curl
and then a short
Ruby script as detailed in this blog
post, or
using postrunner, a more
complete application which also uses Ruby. However, this code can be
compiled into a standalone binary, for different platforms, and then run
without any dependencies.
This repository hosts a daily
download of EPO.BIN
.
If you don't want to build from source, Linux and Windows binaries are built from tagged versions via GitHub Actions.
With Go installed:
go build
orgo install
Or, use the Dockerfile
via make
:
make build-linux
(for a Linux build)make build-windows
(for a Windows build)
Just run the compiled binary. EPO.BIN
should be generated
in the same directory.
Code uses the POST data and idea from the blog post
here and
is also based on the GPL v2 licensed code in
postrunner, specifically
EPO_Downloader.rb
. Go code is my contribution.