A GPX to FIT converter lets you take a track recorded in any app that exports GPX and import it into the Garmin ecosystem, which speaks the binary FIT format. This tool builds a genuine FIT activity file in your browser — no upload — so your route and timing stay private while still being recognised by Garmin devices and Connect.
How it works
FIT is a binary protocol built from a header, a sequence of records, and a trailing CRC:
- File header (14 bytes): header size, protocol and profile version, the data-records length, the ASCII signature
.FIT, and a CRC of the header itself. - Definition messages describe the shape of the data messages that follow — which fields, their sizes and base types.
- Data messages carry the actual values. The converter writes a
file_idmessage (type = activity) and onerecordmessage per GPX track point. - Coordinates are stored as 32-bit signed semicircles:
semicircles = round(degrees × 2^31 / 180). Timestamps are seconds since the FIT epoch (1989-12-31 00:00:00 UTC), and altitude uses FIT’s scale/offset ((metres + 500) × 5). - A CRC-16 over the whole file (header + data) is appended using Garmin’s specified lookup-table algorithm.
The result is a byte-for-byte valid FIT file you can download and import.
Tips and notes
- If your GPX track points lack timestamps, the converter synthesises a steadily increasing time so the activity still has a coherent timeline.
- Elevation is optional; points without
<ele>are written without an altitude value. - All track segments in the GPX are merged into a single record stream in document order.
- The output is an activity FIT; it is intended for importing a completed track, not for live device recording.