Garmin watches and bike computers, and many other sports devices and training apps, record activities in FIT, a compact binary format. Most map apps, route planners and GIS programs want GPX instead. Upload the .fit file above and you get a GPX with the route you rode, ran or hiked, including elevation and the time of every point.
Do you actually need to convert?
Not always. Strava reads FIT directly, including heart rate, cadence and power, according to its upload documentation, and Komoot imports FIT as well. If you are uploading to one of those, use the original file. You lose nothing that way.
Conversion is useful when the target takes only GPX. Mapy.com (formerly Mapy.cz) imports GPX only. Navigation apps on phones, older GPS units, QGIS and photo programs that geotag pictures from a track log usually expect GPX too. And sending a friend the route of yesterday's ride is easier as GPX, because anybody can open it.
What the GPX contains
Our converter decodes the activity from the FIT file and writes a standard GPX 1.0 file:
- Track points with latitude, longitude, elevation and time. If the device recorded speed, it is kept in metres per second.
- Pauses. Every time the timer is started again after a stop or auto-pause, a new track segment begins. Map apps therefore do not draw a straight line across the place where you stood or took the train.
- Laps. The end of each lap becomes a waypoint named LAP001, LAP002 and so on. Lap times and lap statistics are not carried over.
- Saved locations stored in the FIT file become waypoints.
What is lost: heart rate, cadence, power and temperature. The FIT file contains them, but plain GPX has no fields for them and our output does not use the Garmin extensions. The same goes for everything that is not a track point: calories, training effect, session summaries, device and sensor information, and data fields added by apps such as running power meters.
Common problems
FIT to GPX without heart rate
As described above, the GPX holds the route, not the sensor data. If you need heart rate and power in another platform, upload the original FIT there. Strava, for one, takes it directly.
The GPX is empty
The activity has no GPS positions: a treadmill run, a turbo trainer session, pool swimming or strength training. Points without a position are skipped, so there is no track to write.
Conversion fails with a damaged file
Each FIT file ends with a CRC checksum. When the watch battery dies mid-activity or a sync is interrupted, the file can end in the middle of a record. Our converter stops on such errors rather than produce a half-guessed track. Try syncing the device again or exporting the activity from the platform it uploaded to.
Times in the GPX are one or two hours off
They are not wrong. FIT stores time in UTC and the GPX keeps it in UTC, marked with a Z at the end. Map apps convert it to local time, but if you geotag photos from the track, set the camera's time zone offset in the photo program.
Mapy.com refuses a long activity
Mapy.com accepts at most 70,000 points per route. With one point per second that is about 19 hours, so multi-day or ultra events can exceed it. Watches using smart recording store fewer points and rarely hit the limit.
Other ways to get a GPX
If the activity is already in Garmin Connect, open it on the website and use Export to GPX in the gear menu. Strava offers Export GPX for your own activities too. Our converter is handy when you have the files themselves: copied from the device over USB (many Garmin devices keep them in the GARMIN/Activity folder), received from a training partner, or from a brand whose app has no GPX export. You can convert 10 files at once without creating any account.
FIT and GPX side by side
| FIT | GPX | |
|---|---|---|
| Type | binary, compact | XML text, human-readable |
| Maintained by | Garmin (FIT SDK) | TopoGrafix; GPX 1.0 in 2002, 1.1 in 2004 |
| Typical content | full activity: records, laps, sessions, sensors, device | tracks, routes, waypoints |
| Time | seconds since 31 December 1989 UTC | ISO 8601 date and time in UTC |
| Position | semicircles (2³¹ = 180°) | decimal degrees |
FIT, short for Flexible and Interoperable Data Transfer, is designed for sport, fitness and health devices. Garmin publishes the specification and SDK on its developer site. Time is counted in seconds from midnight UTC on 31 December 1989, the so-called FIT epoch, and positions are stored as 32-bit integers in which 2³¹ units equal 180 degrees, a resolution of under one centimetre. GPX is an open XML format by TopoGrafix; version 1.1 dates from 9 August 2004.