Where to get a COMPLETE list of FIT profile and message definitions?

I've written a tool to convert FIT files to GPX some years ago which does not work with the newest generation of Garmin devices.

The FIT files seem to contain the message type 327 (0x147) which is not seen on the latest list (Profile.xlsx in the FitSDKRelease_21.84.00 archive). So I am unsure if the list is incomplete or I forgot to implement something in my code (still investigating if anything has changed in newer FIT file definitions)...

..

  • Hi Dreuw,

    thank you very much to share these message numbers. 

    I found 2 additional numbers, related to Garmin devices (Garmin Edge 1000, Garmin Edge 1030, ..).

    A Locations.fit inside a Garmin Edge contains waypoints (with name, latitude, longitude, altitude, ..) and these waypoints will be displayed on the map.

    The message number for these waypoints is 29 (to read and write such a Locations.fit) Relaxed

    And if somebody wants to add new waypoints to a Garmin Edge, it's possible to decide, how a Garmin Edge should add these new waypoints to an existing Locations.fit:

    With message number 189 you can decide it (byte field value):

    0 => waypoints will be added to existing waypoints

    1 => waypoints will replace all existing waypoints

    2 => all existing waypoints  will be deleted (very usefull to clear all existing waypoints on an Edge (limited to 200 waypoints)  without deleting each waypoint with 5~6 clicks on the display Wink)

    Best regards

    Roland

  • Hi. Thanks. I generated this by spoofing a fit file with global message numbers from 0 to N then putting it through the fittocsv.jar javascript app provided with the SDK.  

    Interestingly it is still incomplete.

    There are a few more in their profile spreadsheet provided but again incomplete.

    Garmin seems to have real problems keeping its documentation up to date. The need to update should be captured in a dependency tree so that when code is changed a cascade of update requests is generated for the software development team.

    I suspect they are overwhelmed by the sheer pace of development and plethora of hardware devices.

    mesg_num uint16
    file_id 0
    capabilities 1
    device_settings 2
    user_profile 3
    hrm_profile 4
    sdm_profile 5
    bike_profile 6
    zones_target 7
    hr_zone 8
    power_zone 9
    met_zone 10
    sport 12
    goal 15
    session 18
    lap 19
    record 20
    event 21
    device_info 23
    workout 26
    workout_step 27
    schedule 28
    weight_scale 30
    course 31
    course_point 32
    totals 33
    activity 34
    software 35
    file_capabilities 37
    mesg_capabilities 38
    field_capabilities 39
    file_creator 49
    blood_pressure 51
    speed_zone 53
    monitoring 55
    training_file 72
    hrv 78
    ant_rx 80
    ant_tx 81
    ant_channel_id 82
    length 101
    monitoring_info 103
    pad 105
    slave_device 106
    connectivity 127
    weather_conditions 128
    weather_alert 129
    cadence_zone 131
    hr 132
    segment_lap 142
    memo_glob 145
    segment_id 148
    segment_leaderboard_entry 149
    segment_point 150
    segment_file 151
    workout_session 158
    watchface_settings 159
    gps_metadata 160
    camera_event 161
    timestamp_correlation 162
    gyroscope_data 164
    accelerometer_data 165
    three_d_sensor_calibration 167
    video_frame 169
    obdii_data 174
    nmea_sentence 177
    aviation_attitude 178
    video 184
    video_title 185
    video_description 186
    video_clip 187
    ohr_settings 188
    exd_screen_configuration 200
    exd_data_field_configuration 201
    exd_data_concept_configuration 202
    field_description 206
    developer_data_id 207
    magnetometer_data 208
    barometer_data 209
    one_d_sensor_calibration 210
    monitoring_hr_data 211
    time_in_zone 216
    set 225
    stress_level 227
    max_met_data 229
    dive_settings 258
    dive_gas 259
    dive_alarm 262
    exercise_title 264
    dive_summary 268
    spo2_data 269
    sleep_level 275
    jump 285
    aad_accel_features 289
    beat_intervals 290
    respiration_rate 297
    hsa_accelerometer_data 302
    hsa_step_data 304
    hsa_spo2_data 305
    hsa_stress_data 306
    hsa_respiration_data 307
    hsa_heart_rate_data 308
    split 312
    split_summary 313
    hsa_body_battery_data 314
    hsa_event 315
    climb_pro 317
    tank_update 319
    tank_summary 323
    sleep_assessment 346
    hrv_status_summary 370
    hrv_value 371
    raw_bbi 372
    device_aux_battery_info 375
    hsa_gyroscope_data 376
    chrono_shot_session 387
    chrono_shot_data 388
    hsa_configuration_data 389
    dive_apnea_alarm 393
    skin_temp_overnight 398
    hsa_wrist_temperature_data 409
  • There has always been unknown messages and fields in the FIT SDK, and the expectation is that there always will be unknown messages and fields. 

  • Sure. It makes no difference to parsing the data.