Backward compatibility of Global FIT Profile - Where to find old SDK versions?

 I am looking for older versions of the profile.xls (the Global FIT profile), which is enclosed in de SDK. Can anyone help me to older versions? Previous SDK versions are not on-line apparently...

The reason is that older FIT messages and fields seem to have been removed from newer global profile versions, like the 'waypoints' message (message number 29). I would have expected the Global FIT Profile to remain backward compatible, so always FIT files from older devices can be decoded. 

  • As a rule, definitions are not removed from the global profile. Message number 29 has never been defined in the public SDK. 

  • Thanx Ben, that was what I expected: only additions, no removals...

    I must have reverse engineered the message number 29 myself then. It has been a while ago. I assumed I got it from an ancient SDK version, which assumption appears to be wrong then. The message is used in the my Edge 810 and Edge 830 in the file /Garmin/Locations/Locations.fit to define a location.

    Do you happen to know why a lot of messages and fields are NOT defined in the Global FIT Profile, like this message 29? Are they proprietary?

  • I'm going to guess that some of the messages have formats that are different between devices.

    That is, the 810 stores locations in a fit file but that fit file might not work on other devices.

    The messages in the SDK are ones that are meant to be public and the ones that aren't are meant to be reserved.

  • Thanx for the reply.

    Generally, these kinds of public and standard specifications indeed define generic messages/fields, but allow for customisation. Suppliers of devices can implement their own messages only used by their devices, to allow for competitive advantage. The FIT spec is not different: there is a message range reserved for this:

    Custom messages may be defined in the manufacturer specific message range (0xFF00–0xFFFE). Information contained in manufacturer specific messages will generally not be interoperable, since other applications will not have knowledge of them.

    In the Fit Global Profile message number 29 is left blank (as are multiple other numbers), but apparently used, suggesting it has been removed from the spec.

    record

    20

    event

    21

    device_info

    23

    workout

    26

    workout_step

    27

    schedule

    28

    ???

    29

    weight_scale

    30

    course

    31

    course_point

    32

    totals

    33

    Anyway, this requires reverse engineering apparently.
    If anybody has a profile defining messages/fields of Garmin devices I would be very happy.

  • Why would it have been removed?  Current devices use the number.

    The gaps don't necessarily mean things were removed.

    Things get added to the spec over time.

    Keep in mind that every message type gets a number.

    29 could have been used before it was used for something public.

    The 29 message might also have been something that was intended to be public but other reasons made that unworkable.

    The custom stuff could have been added later.

  • There are a fair number of fields that have never been available via the API & documentation, and this is one of them.

    You might find this github repository  helpful for some of them (I hope Garmin don't mind me linking to it!)