<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://forums.garmin.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>FIT SDK</title><link>https://forums.garmin.com/developer/fit-sdk/</link><description>A place to ask and answer questions related to the Flexible and Interoperable Data Transfer (FIT) Protocol.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><item><title>Forum Post: RE: python SDK weight_scale, weight - potential bug</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/437310/python-sdk-weight_scale-weight---potential-bug/2038763</link><pubDate>Wed, 17 Jun 2026 14:00:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:48b8ae07-ddc8-4a68-85c3-2f59fd03532d</guid><dc:creator>Eli FIT</dc:creator><description>With the release of the 21.208 SDK, this behavior is now fixed. Weight in the weight_scale mesg is now properly a uint16 and will apply scale as expected when either encoding or decoding data. The new version was published to PyPi available here: https://pypi.org/project/garmin-fit-sdk/</description></item><item><title>Forum Post: Create workout with steps using the SDK</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/437845/create-workout-with-steps-using-the-sdk</link><pubDate>Wed, 10 Jun 2026 17:04:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:aff0d127-5cf5-4cfe-ab45-7b5e1bf51df6</guid><dc:creator>ReiterPeter</dc:creator><description>Hi, I am currently developing a strength training application for my Garmin watch. The application is able to record an activity using the Toybox.ActivityRecording.Session. After running the workout with session.start(), session.stop() and session.save(), the activity is stored on my device and is uploaded to Garmin Connect. If I create a strength training with my watch using the standard strength training app, I have a number of sets including reps, the time of the set and the time of the pause. It looks like this in Garmin Connect: When I create an activity with my self made application, I cannot add any sets to the strength training. The method &amp;#39;createFIeld(...) is not creating the correct data field in the FIT file. By decoding the FIT file from my watch, I found the required data that is used to create the sets inside the Garmin Connect app: [ {...}, { &amp;quot;frame_type&amp;quot;: &amp;quot;definition_message&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;set&amp;quot;, &amp;quot;header&amp;quot;: { &amp;quot;local_mesg_num&amp;quot;: 2, &amp;quot;time_offset&amp;quot;: null, &amp;quot;is_developer_data&amp;quot;: false }, &amp;quot;global_mesg_num&amp;quot;: 225, &amp;quot;endian&amp;quot;: &amp;quot;&amp;lt;&amp;quot;, &amp;quot;field_defs&amp;quot;: [ ... ], &amp;quot;dev_field_defs&amp;quot;: [], &amp;quot;chunk&amp;quot;: { &amp;quot;index&amp;quot;: 13, &amp;quot;offset&amp;quot;: 1546, &amp;quot;size&amp;quot;: 51 } }, {...} ] Therefore, I tried to create the data inside my application, but haven&amp;#39;t found any way to create the data field for sets. Does anybody know, how to add the sets to my application, so I can view the sets inside the Garmin Connect app?</description><category domain="https://forums.garmin.com/developer/fit-sdk/tags/field">field</category><category domain="https://forums.garmin.com/developer/fit-sdk/tags/sdk">sdk</category><category domain="https://forums.garmin.com/developer/fit-sdk/tags/FIT%2bdata">FIT data</category></item><item><title>Forum Post: RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/2036743</link><pubDate>Sun, 07 Jun 2026 05:58:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:d8a504d6-b0ee-4366-ad24-a0e7c3b7b295</guid><dc:creator>Alan</dc:creator><description>No worries. Next time when you have such files, you can upload them here.</description></item><item><title>Forum Post: RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/2036619</link><pubDate>Sat, 06 Jun 2026 12:12:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:dca9b199-17ee-4478-9cbd-016129e572e4</guid><dc:creator>Duma-70</dc:creator><description>thanks Alan but it&amp;#39;s been so long that I don&amp;#39;t have the file anymore.</description></item><item><title>Forum Post: RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/2036618</link><pubDate>Sat, 06 Jun 2026 11:51:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:2197af98-22a1-4b21-8b67-5e7c1417fd3f</guid><dc:creator>Duma-70</dc:creator><description>thank you for trying. it didn&amp;#39;t work.</description></item><item><title>Forum Post: RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/2036564</link><pubDate>Sat, 06 Jun 2026 03:16:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:33d9ddda-a867-4183-9c36-627b97f593cc</guid><dc:creator>Alan</dc:creator><description>Can you upload your corrupt files to Google Drive or attached to a reply so that I can analyze them for you? Currently my understanding of the FIT file is on the official FIT file format specification at https://developer.garmin.com/fit/protocol/ . So if a file is corrupt, I can try to make it follow the specification. It is interesting to see other possible corruption patterns which makes the data look strange though the file still follow the specification.</description></item><item><title>Forum Post: RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/2036383</link><pubDate>Fri, 05 Jun 2026 10:42:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:565734a5-2d5c-4193-9f3c-9e8094b2c9f8</guid><dc:creator>4870762</dc:creator><description>I may be able to help with testing. I have encountered several corrupted FIT files over the years due to interrupted syncs, device freezes, and incomplete activity saves. Corrupt FIT files are unfortunately a fairly common issue in the Garmin ecosystem, and many users rely on repair tools such as FIT File Repair Tool or FIT File Tools to recover activity data. It would be interesting to see whether your analysis can help identify common corruption patterns across different devices and firmware versions.</description></item><item><title>Forum Post: RE: python SDK weight_scale, weight - potential bug</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/437310/python-sdk-weight_scale-weight---potential-bug/2035633</link><pubDate>Tue, 02 Jun 2026 17:17:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:519de691-7e92-4455-8e05-454090b800ea</guid><dc:creator>Eli FIT</dc:creator><description>Hello, this is the correct place to raise this question. You are right that the issue is due to the weight field in the weight_scale mesg having a type of weight (enum) rather than a uint16. The weight type is a uint16 value under the hood but is interpreted by the Python and JavaScript SDKs as an enum rather than the intended numeric type. This causes both the encoder and decoder to handle the value without applying or reversing the scale/offset. For example, when encoding a weight with a decimal e.g. 85.56, the encoder will currently truncate the value to 85 rather than apply the scale of 100. &amp;#39;weight&amp;#39;: { &amp;#39;0xFFFE&amp;#39;: &amp;#39;calculating&amp;#39;, }, Thanks for bringing this to our attention! We&amp;#39;ll work on getting this fixed in both SDKs and address this post when it has been released.</description></item><item><title>Forum Post: does Garmin/Firstbeat silently track Aerobic Threshold in FIT?</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/437346/does-garmin-firstbeat-silently-track-aerobic-threshold-in-fit</link><pubDate>Tue, 02 Jun 2026 13:22:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:79bfca8c-001b-48ef-a152-95d8b74c6492</guid><dc:creator>RinseRepeat</dc:creator><description>Is it plausible on the newest Garmin watches they silently track Aerobic Threshold in the Firstbeat ecosystem? The advanced historical projected LTHR is new since Fenix7/Fenix8 since the Fenix6 Firstbeat doesn&amp;#39;t do that Which makes me wonder if buried particularly in Run activities they are silently tracking Aerobic Threshold It cannot be done from a single run, it would have to be over several activity/weeks, so it would have to be forwarded in each FIT file Just to clarify, LTHR is actually anaerobic threshold (aka Ventilatory Threshold 2) Aerobic Threshold is sometimes rarely called &amp;quot;fatmax&amp;quot; or Ventilatory Threshold 1 aka AeT AeT is typically half of vo2max but not always depending on training/genetics I&amp;#39;m kinda surprised Garmin doesn&amp;#39;t openly expose/track Aerobic Threshold as of 2026, they&amp;#39;ve practically exhausted every other metric in Firstbeat But it basically MUST silently do it since you are given an Aerobic+Anaerobic score for each Run</description></item><item><title>Forum Post: python SDK weight_scale, weight - potential bug</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/437310/python-sdk-weight_scale-weight---potential-bug</link><pubDate>Mon, 01 Jun 2026 17:58:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:477e7794-958a-46ca-8bcd-a660429fc3ba</guid><dc:creator>8294519</dc:creator><description>I wrote an encoder based on the pythonSDK test_encode_activity_recipe.py. It seemed to work well except for the weight key like below: mesgs.append({ &amp;#39;mesg_num&amp;#39;: Profile[&amp;#39;mesg_num&amp;#39;][&amp;#39;WEIGHT_SCALE&amp;#39;], &amp;#39;timestamp&amp;#39;: scale_date, &amp;#39;weight&amp;#39;: 8400, #decoding issue? &amp;#39;muscle_mass&amp;#39;: 66.0, })Code The &amp;#39;weight&amp;#39; is a weight type and supposed to be in kilograms; however, it seems to scale incorrectly (8400 instead of 84.0kg). The other keys that use mass (eg/ muscle_mass) all convert from to kilograms okay when uploading the FIT file to Connect. Perhaps it&amp;#39;s a type weight vs type unit16 issue? Thoughts? Thanks! PS Hopefully I&amp;#39;m writing this in the correct place, apologies if not.</description><category domain="https://forums.garmin.com/developer/fit-sdk/tags/fitsdk">fitsdk</category><category domain="https://forums.garmin.com/developer/fit-sdk/tags/python">python</category><category domain="https://forums.garmin.com/developer/fit-sdk/tags/scale">scale</category></item><item><title>Forum Post: Rust #![no_std] library for decoding and encoding FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/436873/rust-no_std-library-for-decoding-and-encoding-fit-files</link><pubDate>Mon, 25 May 2026 06:27:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9b10cda5-58b2-46a4-82bb-d5b3b049d63c</guid><dc:creator>muktihari</dc:creator><description>Hi, I created a Rust library for decoding and encoding FIT files with #![no_std] support, making it portable across a wide range of environments; from baremetal, WebAssembly to server applications, and potentially mobile platforms such as Android and iOS as well. The library is designed to work in baremetal Rust, where performance and memory efficiency are carefully considered. Repository: https://github.com/muktihari/rustyfit I originally started this project to learn Rust, and also because the official FIT SDK currently does not support Rust. I previously built a FIT library in Go ( https://github.com/muktihari/fit ), so I thought it would be interesting to do a Rust version as well. I Hope it could be useful for others working with FIT files in Rust ecosystems. The project is open source and still evolving, so feedback, bug reports, and contributions are very welcome. If companies or teams using Garmin FIT technologies need assistance integrating or extending it, I’d also be happy to collaborate professionally. And of course, if Garmin is ever interested in making this capability official or collaborating on maintenance, I’d be excited to discuss that as well.</description></item><item><title>Forum Post: RE: Transfer data to Strava</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/361181/transfer-data-to-strava/2033102</link><pubDate>Fri, 22 May 2026 13:37:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:ad2fd30a-2ee8-43e3-af7e-e55ee085d32a</guid><dc:creator>cbanks</dc:creator><description>Did you ever figure this up Gazz? Running into the same issue with not being able to refresh/re-sync the data to Strava after updating the workout info on the Garmin Connect app.</description></item><item><title>Forum Post: RE: C SDK version 21.171.0 compile issues under Xcode / Swift Package</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/413370/c-sdk-version-21-171-0-compile-issues-under-xcode-swift-package/2032521</link><pubDate>Tue, 19 May 2026 22:19:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:6253139d-effd-4a96-bc39-6c4d057baf20</guid><dc:creator>Ben FIT</dc:creator><description>I apologize for the very late response to your question. We had a few posts get unintentionally stuck in a moderation queue, and the queue was recently purged. Are you still having this issue? About the time of your post we did add FIT_CAST to the C SDK to help with compiling the C SDK with a C++ compiler. That change would be a suspect since it is the only change to the C SDK in a while. The &amp;quot;work-around&amp;quot; is to use the FIT Swift SDK. It will not be as fast as the C SDK, but the latest release included a handful of performance improvements. https://github.com/garmin/fit-swift-sdk</description></item><item><title>Forum Post: RE: Type definitions for @garmin/fitsdk (TypeScript or JSDoc)</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/355839/type-definitions-for-garmin-fitsdk-typescript-or-jsdoc/2032515</link><pubDate>Tue, 19 May 2026 21:47:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:c40e31de-32cc-45e1-8dca-5c856cd38750</guid><dc:creator>Ben FIT</dc:creator><description>v21.205 of the JavaScript SDK added type definitions. https://github.com/garmin/fit-javascript-sdk/tree/main/src/types See the post here for more information v21.205 of the JavaScript SDK added type definitions.</description></item><item><title>Forum Post: v21.205 of the JavaScript SDK added type definitions.</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/436584/v21-205-of-the-javascript-sdk-added-type-definitions</link><pubDate>Tue, 19 May 2026 21:46:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0ea4e4cf-a6dc-4669-a930-d614a6b7804e</guid><dc:creator>Ben FIT</dc:creator><description>v21.205 of the JavaScript SDK added type definitions. https://github.com/garmin/fit-javascript-sdk/tree/main/src/types Along with the types definitions, the decoder now adheres to the profile for array fields. Array fields will always be returned as arrays, even when there is only one element Non-array fields will always return a single value, even when there are multuple values The binary protocol allows for any field to be an array, whereas the profile provides an unenforceable contract of what fields are arrays. That is true for all SDKs. Previously, the JavaScript SDK would decode a field and then check the array length. If the length as one, then it would return the value at index zero, else it would return an array. We did not want to carry that behavior forward when adding the type definitions. So now, the decoder references the profile to see if a field is an array or not and returns an array or scalar based on the profile. While this change has the potential to be a breaking change, we don&amp;#39;t think it will. The reason being is, most people should have discovered by now that sometimes a field that was not expected to be an array might be. i.e. any string field and any field with a name that starts with &amp;quot;enhanced&amp;quot;, and everyone should have checks in their code to handle this. If so, then that defensive code can be removed. If this change does break your code, the read() method of the Decoder class has a new legacyArrayMode option. The default is false. Setting the option to true will revert back to the previous behavior. The v21.205 release did not include many profile changes, a few product ids, so the other option is to stay with 21.202 and update to 21.205 at a later time. The new legacyArrayMode option is marked as deprecated since we plan to remove it by EOY26. Even if you do not use TypeScript, the type definitions should provide better auto-complete and context sensitive help when using the JavaScript SDK.</description></item><item><title>Blog Post: FIT SDK 21.205.00 Release</title><link>https://forums.garmin.com/developer/fit-sdk/b/news-announcements/posts/fit-sdk-21-205-00-release</link><pubDate>Tue, 19 May 2026 20:59:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:7c8ade89-46bd-423c-bd0e-24f7302b78c2</guid><dc:creator>Ben FIT</dc:creator><description>Version 21.205.00 of the FIT SDK is available for download at https://developer.garmin.com/fit/get-the-sdk/ In this release: JavaScript SDK Performance improvements when decoding files Added TypeScript support Decoder now adheres to the profile for array fields. Array fields will always be returned as arrays, even when there is only one element Non-array fields will always return a non-array value New behavior can be overridden with the read() method legacyArrayMode option Profile Updates Garmin Product Ids fr170 fr170_music fr70_2026 d2_mach2_pro</description></item><item><title>Forum Post: RE: **Persistent 429 on API login — account blocked for 48+ hours**</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/435087/persistent-429-on-api-login-account-blocked-for-48-hours/2032311</link><pubDate>Tue, 19 May 2026 10:21:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9bf49f41-d961-4bd6-a8c8-64ae8ab8df00</guid><dc:creator>7174550</dc:creator><description>I use a python script to grab the session cookies whilst logging in manually, that I store.</description></item><item><title>Forum Post: RE: **Persistent 429 on API login — account blocked for 48+ hours**</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/435087/persistent-429-on-api-login-account-blocked-for-48-hours/2031937</link><pubDate>Mon, 18 May 2026 01:35:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:1dfdd47e-52cc-45bf-ab32-d7a5b05a7e0d</guid><dc:creator>3139143</dc:creator><description>same issue for me - does anyone know what conditions cause this error to be raised, or how to avoid it?</description></item><item><title>Forum Post: RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/2031699</link><pubDate>Sat, 16 May 2026 03:58:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:a06922e5-6411-42ad-bb75-80f8e77d06f5</guid><dc:creator>Alan</dc:creator><description>I have fixed file, but it is much smaller than the original one. Please check if it works: https://drive.google.com/file/d/17m2PA01UW1f5sFwRDTnUSeB0elJVtCBk/view?usp=sharing You may also try other tools mentioned in this article https://www.datanumen.com/fit-repair/guides/repair-fit-file/ to see if one of them can fix your file.</description></item><item><title>Forum Post: RE: Parsing transitions in multi-sport FIT files — best practice?</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion/436246/parsing-transitions-in-multi-sport-fit-files-best-practice/2031395</link><pubDate>Thu, 14 May 2026 20:20:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:00510ad4-94fc-4b25-8397-13fe4beb3ab4</guid><dc:creator>Ben FIT</dc:creator><description>If the user is creating separate Activity files for each leg of a multi-sport event, the timestamps will be serial and the individual files will not overlap. So the data could be easily combined, appended really, or kept separate. The trick will be autodetecting this vs asking the user to manually link them. Go with what works best for your users and platform. The source code that goes with that article can be found here. github.com/.../ActivityDecode</description></item></channel></rss>