Page 2 of 3
Re: EPO expired [Bug 71]
Posted: Wed Oct 01, 2025 11:03 pm
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.
Re: EPO expired [Bug 71]
Posted: Wed Oct 01, 2025 11:36 pm
by GPSrChive
Do you just change the file extension from DAT to BIN before loading to the Garmin GPSr?
Re: EPO expired [Bug 71]
Posted: Thu Oct 02, 2025 10:03 pm
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.
Re: EPO expired [Bug 71]
Posted: Thu Oct 02, 2025 10:15 pm
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.
Re: EPO expired [Bug 71]
Posted: Sat Oct 04, 2025 2:08 pm
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.
Re: EPO expired [Bug 71]
Posted: Sat Oct 04, 2025 2:31 pm
by GPSrChive
Do you also have a method for CPE.bin files?
Re: EPO expired [Bug 71]
Posted: Sat Oct 04, 2025 9:21 pm
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.
Re: EPO expired [Bug 71]
Posted: Sun Oct 19, 2025 7:07 pm
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.
Re: EPO expired [Bug 71]
Posted: Sun Dec 14, 2025 1:44 pm
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?
Re: EPO expired [Bug 71]
Posted: Sun Jan 04, 2026 3:38 am
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.