FIT file format
A FIT file is a compact binary file for data from sport, fitness and health devices, such as a recorded run or ride with its GPS positions, heart rate, power and laps. Garmin designed the format and publishes it with a free SDK.
- Full name
- Flexible and Interoperable Data Transfer
- Extension
- .fit
- Type
- Binary
- Maintained by
- Garmin, with a free SDK
TrackLoupe does not open FIT files yet. The tools page lists what it opens today.
What a FIT file can store
| Data | FIT |
|---|---|
| Recorded tracks | Yes |
| More than one track | No |
| Track segments | Yes |
| Planned routes | YesCourse files |
| Waypoints | YesCourse points |
| File name and title | No |
| Description | No |
| Author | No |
| Creation time | Yes |
| Links | No |
| Track names | No |
| Activity type | YesSport |
| Elevation | Yes |
| Timestamps | Yes |
| Heart rate | Yes |
| Cadence | Yes |
| Power | Yes |
| Temperature | Yes |
| Speed | Yes |
This table comes from the code of TrackLoupe, and the notes say how each field is stored. The converters use the same table to tell you what a conversion keeps and what it loses.
Why FIT is binary
FIT stores numbers as raw bytes instead of text. A recording with a sample every second stays small, which matters on a watch with little memory, and the device writes it quickly. A text editor cannot read it, so you need a program that knows the format.
What is inside a FIT file
A FIT file starts with a header of 12 or 14 bytes that contains the text .FIT. Messages follow the header, and a 2-byte checksum (CRC) closes the file.
- Definition messages describe the layout of the data messages that follow, field by field.
- Data messages carry the values. In an activity file,
file_idsays what kind of file it is and which device made it. Eachrecordmessage holds one sample: time, position, altitude, heart rate, cadence, speed, power or temperature, depending on the sensors.lapandsessionmessages hold the totals, andeventmessages mark the start, the pauses and the stop.
Two details surprise people who decode FIT by hand:
- Positions are whole numbers in semicircles, where 2³¹ semicircles make 180 degrees.
- Times count the seconds since 31 December 1989, 00:00 UTC, the FIT epoch, instead of 1970.
Garmin’s free FIT SDK includes FitCSVTool, a command line program that turns a FIT file into readable CSV text.
Activities, courses and workouts
FIT stores more than recordings. A course file holds a planned route with course points, such as turns, and a workout file holds the steps of a training session. These files open on a device for navigation or training, and they are not activities. Strava, for example, refuses course files with a “Not an Activity” error.
How to open a FIT file
- On Strava: the Strava website accepts FIT files up to 25 MB as an upload, along with GPX and TCX.
- With FitCSVTool: the tool from Garmin’s FIT SDK converts the file to CSV on your computer.
TrackLoupe does not open FIT files yet.
FIT or GPX?
A FIT file keeps the full recording of the device: laps, sessions, power, temperature and the details of the sensors. GPX is text and opens almost everywhere, but it carries sensor data only through extensions and has no laps. Keep the FIT file as your original, and export a GPX when an app or a map needs one.
Questions
What does FIT stand for?
Flexible and Interoperable Data Transfer.
Can I open a FIT file in a text editor?
A text editor shows unreadable characters, because FIT is binary. A program that decodes FIT, such as FitCSVTool, turns it into text.
How do I open a FIT file?
Upload it to a service that reads FIT, such as Strava, or convert it to CSV with Garmin’s FitCSVTool. TrackLoupe does not open FIT files yet.
Why does my FIT file have no map?
The activity probably had no GPS, such as a treadmill run or a ride on an indoor trainer. The file still holds the time, the heart rate and the other sensor data.