Garmin FIT Files – welcomed improvements for 2023/4.
Garmin recently updated the way it stores activity data in FIT files. FIT (or ‘File Information Transfer’) files are how Garmin devices save activity data for things like runs, bike rides and swims. The latest changes affecting 2023/ 2024 are relatively small in scope but should improve reliability.
The Problem: Garmin mandated some format changes to be made before 1 Dec 2023 but that hasn’t been done by all companies and various file format errors arise as a result when some platforms try to read FIT files.
Co-authored with: Mathias @Fit File Repair Tools.
First, Some Background
Many people think of FIT files as the standard format for storing exercise and sports data. This is largely true, but some companies like Polar still use the TCX format a lot. Sports platforms also use JSON files to talk to each other, and tools like Golden Cheetah store your data internally as JSON files.
The big advantage of FIT files is that almost everyone understands and can use them. One nice thing is that FIT files only store the necessary data, so they remain small in size. TCX files on the other hand often contain a lot of unused “dead space”.
There are other benefits to FIT files when you look under the hood. The FIT standard includes codes for different sports, devices and more. FIT files can store planned routes or workouts, and are flexible enough to handle data types like cached heart rate from swimming, multiple data points per second, and less frequent “smart” sensor readings.
However, FIT files were not always the obvious top choice. In late 2021 Garmin started a transition to the current FIT file version 2.0 across most of their new devices and services. By early 2022 most Garmin products used it, and the wider industry adopted it by the end of that year.
Now in February 2024, the FIT standard is very mature. It only receives occasional tweaks, plus continuous updates to properly record data from new Garmin sports profiles and device types.
Garmin FIT File 2.0 – the improvements
In the past, Garmin saved sports data in the order it was recorded during a workout or activity. So all the individual data points (“records”) would be listed first in the file in the sequence they happened. After that, it would add the lap data if you did any laps. Finally, it added information about the whole exercise session at the very end.
This old format worked fine, but it meant your device had to remember lots of details as you were exercising. It also risked losing some of your data if the battery died halfway through. This could happen because the device waited until the end to write things like the session details or lap information to the file.
So if the battery went flat before you finished, the file may have been missing things like lap splits, total time or distance. The format didn’t protect your data very well if something interrupted the recording before completion.
Modern FIT File Structure
Now Garmin structures the files differently. It saves the lap details and session info alongside the individual data points (“records”), rather than just at the end.
So it records the stats for lap 1, then the records from lap 1. Then the stats for lap 2, followed by those records, and so on.
This presents the activity in the order it happened, which is more logical. It also means that if the device loses power, nearly all the collected data will be saved rather than just part of it.
The new way Garmin organises the files provides a better picture of each exercise session. It captures more complete details even if something goes wrong during recording.
Overall it seems a smarter system for storing our important sports records. The changes ensure our hard-earned data is preserved as fully as possible. That way the proof that you did the workout exists for platforms like Strava! Or at least most of it will be there.
These are the more detailed changes that happened
FIT File 2.0 brought these changes in 2021
- Nested data layout – Lap and session data are placed alongside individual records in a timeline order of how the activity happened.
- Extra metrics included – New record, lap and session messages provide additional information like vertical bouncing, ground contact time, and training load.
- Consistent timestamps – All messages now include a time stamp so the timing of events is logged the same across different message types.
- Clearer definitions – Message definitions are documented better to set out standard uses across different devices and software.
- Distinct lap transitions – Separate messages show whether lap splits were planned breaks or accidental stops.
- File checksums – New checksums when files are written and read check contents are not corrupted.
- Simpler processing – The nested structure makes it easier to work with lap/session data together with individual records.
- Backwards compatibility – While the structure changed, core record details stayed similar enough to convert from older FIT 1. x files.
- Optimised size – Files are a bit bigger on average but improved data capture and ability to log more metrics over time makes up for it.
- Better analysis – Greater context and standardisation allow more accurate calculations of things like training impact in third-party apps.
Garmin FIT File 2.1
- In December 2022, Garmin published an update to the specification called version 2.1.
- Version 2.1 added some new message definitions and further refined existing ones. These helped enable new metrics and edge case functionality.
- One example is the HRV_24HR message type to support detailed heart rate variability tracking in fitness watches
These format changes were supposed to be implemented everywhere by 1 Dec 2023, presumably on that date all Garmin devices capable of supporting the ‘new’ format switched over to use it. But the changes haven’t been universally accepted by the key players and the likes of Fit File Repair Tool (FFRT) report an increase in the numbers of people encountering errors and not quite knowing the cause plus more potential issues of lost data when recording in the new format.
This file structure requires that all data (all laps, session and all records) are stored in memory or in a temporary file and that the fit file is written after the activity ends… What happens if the battery gets empty during the recording? Will there be any data in a temporary file that can be used to build a fit file which contains data up the point where the battery got empty? Or will the recording stop automatically and will the fit file be written some seconds before the battery gets empty? [Mathias K, FFRT]
FIT File Improvements going forward?
In my opinion, further improvements are needed to ensure that workout files are more easily recovered, especially when we incorrectly discard workouts. Sure, Garmin makes this hard to do by accident. But accidents happen.
At present, FIT files effectively only store one record per second, an exception being that RR/HRV data is stored as multiple deltas per second. For more scientific sports uses like with Muscle Oxygen (SmO2), more frequent data recording is required. The current limit is 5Hz based on an HR of 250bpm and that needs to be significantly higher.
Co-authored with: Mathias @Fit File Repair Tools. The FFRT product manipulates and fixes FIT files in many ways. It’s a great tool.
More: Garmin FIT SDK
This content is not sponsored. It’s mostly me behind the labour of love which is this site and I appreciate everyone who follows, subscribes or Buys Me A Coffee ❤️ Alternatively please buy the reviewed product from my partners. Thank you! FTC: Affiliate Disclosure: Links pay commission. As an Amazon Associate, I earn from qualifying purchases.