EPO expired [Bug 71]

Discussion related to the Garmin GPSMAP 66s/st GPSr
Wojtas81
Posts: 34
Joined: Fri Sep 05, 2025 11:20 pm

Re: EPO expired [Bug 71]

Post by Wojtas81 »

If you want the most up to date EPO data, don't bother to download them from Garmin (ie. Garmin Express, Garmin Connect).

Download it directly from MediaTek (ie. GPS chipset manufacturer), using the command from Command line:

Code: Select all

curl -o EPO.BIN -r 0-64511 http://epodownload.mediatek.com/EPO.DAT
It should work under Windows 10/11, Linus or MacOS.

I have compared MediaTek data with Garmin data. And Garmin data are identical to MediaTek data starting from byte 6912.
When you divide 6912 by 2304 (single EPO set), you will get 3. And each EPO set contains 6 hours of data.
In other words: Garmin's data are outdated 18 hours when comparing to MediaTek data.

Also you can download more than 7 days (that Garmin Express downloads by default) directly from MediaTek - eg for 9 days:

Code: Select all

curl -o EPO.BIN -r 0-82943 http://epodownload.mediatek.com/EPO.DAT
But I do not recommend to download more than 9 days (single digit), as it will probably won't work with your receiver.
GPSMAP 66sr, GPSMAP 64sx, Montana 680t, Oregon 700
User avatar
GPSrChive
Site Admin
Posts: 4437
Joined: Fri Jan 20, 2017 11:29 pm

Re: EPO expired [Bug 71]

Post by GPSrChive »

Do you just change the file extension from DAT to BIN before loading to the Garmin GPSr?
paulxtr
Posts: 34
Joined: Wed Feb 27, 2019 11:13 pm

Re: EPO expired [Bug 71]

Post by paulxtr »

Wojtas81 wrote: Wed Oct 01, 2025 11:03 pm If you want the most up to date EPO data, don't bother to download them from Garmin (ie. Garmin Express, Garmin Connect).

Download it directly from MediaTek (ie. GPS chipset manufacturer), using the command from Command line:

<snip>
Thankyou for this excellent post.


GPSrChive wrote: Wed Oct 01, 2025 11:36 pm Do you just change the file extension from DAT to BIN before loading to the Garmin GPSr?
The file downloaded is already named EPO.BIN (see near the start of the command line) so it can be copied to the device as-is.
User avatar
GPSrChive
Site Admin
Posts: 4437
Joined: Fri Jan 20, 2017 11:29 pm

Re: EPO expired [Bug 71]

Post by GPSrChive »

paulxtr wrote: Thu Oct 02, 2025 10:03 pm
GPSrChive wrote: Wed Oct 01, 2025 11:36 pm Do you just change the file extension from DAT to BIN before loading to the Garmin GPSr?
The file downloaded is already named EPO.BIN (see near the start of the command line) so it can be copied to the device as-is.
The file I got was *.DAT, not *.BIN, thus my question.
Now I see how to get each type. The DAT files is much larger.
Wojtas81
Posts: 34
Joined: Fri Sep 05, 2025 11:20 pm

Re: EPO expired [Bug 71]

Post by Wojtas81 »

GPSrChive wrote: Wed Oct 01, 2025 11:36 pm Do you just change the file extension from DAT to BIN before loading to the Garmin GPSr?
Look at the command line, it is renamed automatically.
-o EPO.BIN means output as EPO.BIN (instead of default EPO.DAT)
-r 0-82943 means download bytes from 0 to 82943 (ie. 82944 bytes) instead of entire file, which is by default.

Please do not download entire EPO.DAT from MediaTek, it will not work. Garmin devices cannot use more than 9 days of data (ie. 9 * 9216 bytes).
So downloading more than 82944 bytes makes no sense and you risk that Garmin device will discard (ignore) the file entirely.

Please also note, that Garmin Express download 7 days data by default (ie. 7 days * 9216 bytes = 64512 bytes). But Garmin Express data are outdated when compared to MediaTek - up to 18 hours.
Sometimes Garmin Express data may be up date with MediaTek, it depends on which part of day (which hour) you happen to use it.

When you download EPO.BIN file via Bluetooth, you will get even shorter file ie. 3 or 4 days, depending on device. Eg. my Oregon 700 download 4 days of data (4 * 9216 bytes = 36864 bytes EPO.BIN file) via Bluetooth.
GPSMAP 66sr, GPSMAP 64sx, Montana 680t, Oregon 700
User avatar
GPSrChive
Site Admin
Posts: 4437
Joined: Fri Jan 20, 2017 11:29 pm

Re: EPO expired [Bug 71]

Post by GPSrChive »

Do you also have a method for CPE.bin files?
Wojtas81
Posts: 34
Joined: Fri Sep 05, 2025 11:20 pm

Re: EPO expired [Bug 71]

Post by Wojtas81 »

GPSrChive wrote: Sat Oct 04, 2025 2:31 pm Do you also have a method for CPE.bin files?
Only for Sony chips and only from Garmin servers, ie:

Code: Select all

curl -o CPE.BIN "https://api.gcs.garmin.com/ephemeris/cpe/sony/lle?coverage=WEEKS_1&constellations=GPS,GLONASS,GALILEO,QZSS"
and with Beidou

Code: Select all

curl -o CPE.BIN "https://api.gcs.garmin.com/ephemeris/cpe/sony/lle?coverage=WEEKS_1&constellations=GPS,GLONASS,GALILEO,BEIDOU,QZSS"
By the way: CPE.BIN isn't regular file, it is TAR archive. And it can be unpacked with 7-Zip for example.
It contains several files with data for different satelite systems (ie. CPE_BDS.BIN, CPE_GAL.BIN, CPE_GLO.BIN, CPE_GPS.BIN, CPE_QZSS.BIN).

I don't know however any link for Airoha chips which are used in newer devices (eg. Fenix 7, GPSMAP 67).

Also I have noticed that with latest firmware, all these files aren't used at all. Eg. my Forerunner 955 doesn't have EPO.BIN, CPE.BIN or GPE.BIN nowhere. No matter what I do (Garmin Connect and Garmin Express are synced).
Despite the absence of EPO/CPE/GPE BIN files, my Ephemeris data are current (checked in Settings > System > About menu). Also it acquires GNSS position instantly (even with Bluetooth and WiFi switched off).
So I think that newer devices store their ephemeris data somewhere in their internal database instead of regular files.
GPSMAP 66sr, GPSMAP 64sx, Montana 680t, Oregon 700
Wojtas81
Posts: 34
Joined: Fri Sep 05, 2025 11:20 pm

Re: EPO expired [Bug 71]

Post by Wojtas81 »

GPSrChive wrote: Sat Oct 04, 2025 2:31 pmDo you also have a method for CPE.bin files?
For Broadcom (based on GPSMap 65s/66sr firmware)

Code: Select all

curl -o CPE.BIN "https://api.gcs.garmin.com/ephemeris/cpe/broadcom?coverage=WEEKS_1"
For Airoha (based on Garmin Express traffic capture, when my Forerunner 955 watch is connected to PC)

Code: Select all

curl -o CPE.BIN "https://api.gcs.garmin.com/ephemeris/cpe/rxnetworks/bytes?coverage=DAYS_7"
I don't know whether it is useful. I have not enough devices to test.
GPSMAP 66sr, GPSMAP 64sx, Montana 680t, Oregon 700
User avatar
GPSrChive
Site Admin
Posts: 4437
Joined: Fri Jan 20, 2017 11:29 pm

Re: EPO expired [Bug 71]

Post by GPSrChive »

Newer models like the GPSMAP H1 and eTrex Touch 2 are using a new 'GPE.bin' file, which I am told works the same as the 'CPE.bin' file.

Are you aware of any manual download code for these yet?
Wojtas81
Posts: 34
Joined: Fri Sep 05, 2025 11:20 pm

Re: EPO expired [Bug 71]

Post by Wojtas81 »

In order to discover that, I would have to trigger EPO/CPE/GPE update from my computer. Which is not possible without having proper device (I don't have GPSMAP H1 nor eTrex Touch 2).
The whole idea is to redirect GPE update request from Garmin server to my custom spoofed server, firstly installing custom root certificate on my PC.
I cannot do that without one of above devices, so I cannot help at this time.

By the way. File name doesn't matter, file format does. And file format differs from chipset to chipset, eg. CPE.BIN files from Sony, Broadcom and Airoha aren't compatible.
GPSMAP 66sr, GPSMAP 64sx, Montana 680t, Oregon 700
Post Reply

Return to “GPSMAP 66s/st”