The FIT SDK is available for download at https://developer.garmin.com/fit/download/
21.115
In this release:
- C# SDK
- Added new FitListener and FitMessages classes. These classes provide generic message listeners and data models to decode any type of FIT file with a few lines of code. See the ActivityDecode recipe in the Cookbook class for usage.
Profile additions in this release:
- Added new manufacturer ids
- blackbird
- meilan_byte
- ezon
- spinning_mda
- hilldating
- Added new Garmin Product ids
- descent_t1
- gnss
- edge_540
- edge_840
- approach_s70
- fr265_large
- fr265_small
- epix_gen2_pro_42
- epix_gen2_pro_47
- epix_gen2_pro_51
- fr965
- fenix7_pro_solar
- instinct_2x
- descent_t2
- Added new sub-sports for flying sport type
- fly_canopy
- fly_paraglide
- fly_paramotor
- fly_pressurized
- fly_navigate
- fly_timer
- fly_altimeter
- fly_wx
- fly_vfr
- fly_ifr
- Added new messages
- monitoring_hr_data
- max_met_data
- spo2_data
- sleep_level
- beat_intervals
- respiration_rate
- sleep_assessment
- hrv_status_summary
- hrv_value
- Updated weight_scale with
- bmi
- Updated session message with
- sport profile name
- end_position_lat
- end_position_long
21.105
In this release:
- Added or extended messages and types related to the Descent series dive watches.
- Python SDK
- Fixed issue when the target of a component expansion was an enum field
- Improved handing for arrays of bytes, a field will only be marked as invalid if all the values in the array are invalid
- Bumped version to 21.107
- JavaScript SDK
- Fixed issue when the target of a component expansion was an enum field
- Improved handing for arrays of bytes, a field will only be marked as invalid if all the values in the array are invalid
- Bumped version to 21.107
- Objective-C SDK
- Bumped version to 21.107
Profile additions in this release:
- Added new sport type
- hiit
- Added new sub-sport types
- hiit
- amrap
- emom
- tabata
- Added new Garmin Product ids
- Fr35
- vivo_move_trend
- dive_settings message added fields
- timestamp
- travel_gas
- ccr_low_setpoint_switch_mode
- ccr_low_setpoint
- ccr_low_setpoint_depth
- ccr_high_setpoint_switch_mode
- ccr_high_setpoint
- ccr_high_setpoint_depth
- gas_consumption_display
- up_key_enabled
- dive_sounds
- last_stop_multiple
- no_fly_time_mode
- dive_alarm message added fields
- id
- popup_enabled
- trigger_on_descent
- trigger_on_ascent
- repeating
- speed
- dive_apnea_alarm message added fields
- message_index
- depth
- time
- enabled
- alarm_type
- sound
- dive_types
- id
- popup_enabled
- trigger_on_descent
- trigger_on_ascent
- repeating
- speed
- dive_gas message added feilds
- mode
- dive_summary message added fields
- avg_pressure_sac
- avg_volume_sac
- avg_rmv
- descent_time
- ascent_time
- tank_update message added fields
- timestamp
- sensor
- pressure
- tank_summary message added fields
- timestamp
- sensor
- start_pressure
- end_pressure
- volume_used
- session message added dive fields
- avg_depth
- max_depth
- surface_interval
- start_cns
- end_cns
- start_n2
- end_n2
- min_temperature
- o2_toxicity
- dive_number
- lap message added dive fields
- avg_depth
- max_depth
- min_temperature
- record message added dive fields
- air_time_remaining
- pressure_sac
- volume_sac
- rmv
- ascent_rate
- po2
- event enum added dive values
- dive_alert
- dive_gas_switched
- tank_pressure_reserve
- tank_pressure_critical
- tank_batter_low
- tank_pod_connected
- tank_pod_disconnected
- dive_alert enum added
- dive_alarm enum added
- ccr_setpoint_switch_mode enum added
- dive_gas_mode enum added
- gas_consumption_rate enum added
- no_fly_time enum added
21.101
In this release:
- JavaScript SDK - major version bumped from 0 (beta) to 21 (released)
- Python SDK - major version bumped from 0 (beta) to 21 (released)
*** Moving forward the major and minor version of these SDKs will be in-sync with the other SDKs.
Profile additions in this release:
- Added new manufacturer ids
- LSEC - renamed from ISEC, which was a typo
- Shaynue
- Porsche EP
- Added new Garmin Product ids
- Marq Gen2 Aviator
- Marq Gen2 - all other variants
- Instinct 2 Crossover
- Added new sport types
- Racket
- Water Tubing
- Wakesurfing
- Added new sub-sport types
- Pickelball (used with Sport type Racket)
- Padel (used with Sport type Racket)
- Added new messages
- Time In Zone
- Split
- Added new types
- Split Type
- HR Zone Calc - Percent Lactate Threshold HR (LTHR) value
- Local Device Type - used with the Device Type field in the Device Info message
- BLE Device Type - used with the Device Type field in the Device Info message
- Added Respiration Fields to:
- Session Mesg
- Lap Mesg
- Length Mesg
- Record Mesg
- Added Enhanced Altitude Fields to
- Segment Point Mesg
- Segment Lap Mesg
*** "Enhanced" fields use a larger data type than their counter part field; 32 bits instead of 16 bits, or 16 bits instead of 8 bits. Data from the counterpart field is copied to the enhanced field during decoding, except for the C SDK. The enhanced fields should be used when present.
21.94
In this release:
- New JavaScript SDK
- New Python SDK
Profile additions in this release:
- Added new Manufacturer Ids
- ISEC
- Lululemon Studio
- Added new Garmin Product ids
- Edge 1040
- Enduro2
- Venu Sq 2
- Venu Sq 2 Music
- ISEC
21.89
In this release:
- FIT CSV tool improvements
- Options were added to convert semicircles to decimal degrees, and to convert FIT date-times to ISO-8601. Decimal degrees and ISO-8601 values in the CSV file will also convert back to FIT.
See https://developer.garmin.com/fit/fitcsvtool/commandline/ for usage.- When using the -x option to print bytes as hex, 0x is appended to the value to allow the CSV file to be converted back to FIT.
- Improved error handling when decoding FIT files. If an exception occurs while decoding a FIT file, a CSV file containing the data up to the point of the corruption will now be written out. Use the -d option (enable debug output) to print the error to the terminal.
- General fixes for converting CSV files back to FIT.
- A new FIT Activity File Repair Tool was added to the Java SDK. The Activity Repair Tool can remedy the most common issues associated with corrupt or invalid FIT Activity files, so that the repaired file may be successfully uploaded to the desired fitness platform.
See https://developer.garmin.com/fit/cookbook/activity-file-repair-tool/ for usage.
- Options were added to convert semicircles to decimal degrees, and to convert FIT date-times to ISO-8601. Decimal degrees and ISO-8601 values in the CSV file will also convert back to FIT.
Profile additions in this release:
- Added new Manufacturer Ids
- Tag Heuer
- Keiser Fitness
- Fazua
- Oreka Training
- Added new Garmin Product ids
- Forerunner 255
- Forerunner 955
- Vívosmart 5
- HRM Pro Plus
- Tactix 7
- Edge Expore 2
- Added two dozen new Course Point Types
- Added secondary targets to Workout Step message
- Tag Heuer
21.78
In this release:
- The preexisting Objective-C SDK has been removed. It was replaced by new Objective-C SDK v21.67.
- The HR to Record Message plugin in the Java SDK has been updated to better handle heart rate values less than 60 bpm.
Profile additions in this release:
- Added new Manufacturer Ids
- Decathlon
- TQ Systems
- True Fitness
- RGT Cycling
- Vasa
- Race Republic
- Added new Garmin Product ids
- Instinct 2
- Fenix 7
- Epix Gen 2
- Descent G1
- Venu 2 Plus
- D2 Air X10
- Decathlon
21.67
This release includes a new Objective-C SDK that is compatible with Swift. Information on using this SDK can be found at https://developer.garmin.com/fit/example-projects/objc/. This will be the last release that contains the preexisting Objective-C SDK, found under the cpp folder, that is not compatible with Swift.
Profile additions in this release:
- Added new Manufacturer Ids
- GeoId
- Added new Garmin Product ids
- Forerunner 945 LTE
- Forerunner 55
- Added Sub-Sport Ids
- Breathing
- Ultra
- Indoor Climbing
- Bouldering
- Added ANT+ Device Type Id
- Shifting
- Dive Summary Message, added five new fields
- avg_ascent_rate
- avg_descent_rate
- max_ascent_rate
- max_descent_rate
- hang_time
21.60
- Added new Manufacturer Ids
- Shimano
- Coospo
- Syncros
- Added ~30 Garmin Product ids
- Venu 2
- Approach
- Backfilled missing product ids for previously released devices
- Added Sub-Sport Ids
- Sail-Race
- Java SDK
- Setting a string with a byte length greater than 254 bytes will now throw an exception. Previously a corrupt FIT file would be created.
- DateTime class now implements the Comparable interface.
- Added new FitDecoder, FitListener, and FitMessages classes. These classes work together to decode any type of FIT file with a few lines of code. See the FitDecoderExample class for usage.
- New Java Example apps that mimic the C# recipes. See https://developer.garmin.com/fit/example-projects/java/ for usage.
- Encode Activity
- Encode Course
- Encode Workout
- Shimano
21.47
- Added an operator=() method to the DeveloperFieldDefinition class in the C++ SDK. This is to prevent a crash when encoding FIT files with developer fields.
- Updated the example Encode project in the C++ SDK to provide a better example of how to use Developer Fields when using the C++ SDK.
- New ids where added to the manufacturer list
- SIGEYI
21.40
- Diving has been added to the Sport enum
- New devices have been added to the Garmin Products enum
- D2 Air
- Forerunner 745
- Forerunner 745 Asia
- Venu Square
- Venu Square Asia
- FIT SDK Cookbook
- The FIT SDK Cookbook contains examples of using the FIT SDK to solve real-world problems. There are recipes for encoding and decoding Activity, Workout, and Course files; and recipes that provide tips for working with the FIT SDK.
- For more information see https://developer.garmin.com/fit/cookbook/
- New devices have been added to the Garmin Products enum