<?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/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Discussion - Recent Threads</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion</link><description>Discussion about all things FIT SDK</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sun, 23 Aug 2026 15:32:16 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://forums.garmin.com/developer/fit-sdk/f/discussion" /><item><title>Multisport FIT file rejected as "invalid" by Garmin Connect (unknown_233 message type)</title><link>https://forums.garmin.com/thread/442501?ContentTypeID=0</link><pubDate>Sun, 23 Aug 2026 15:32:16 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:274c5de2-b80d-427f-9269-5098cc2581e5</guid><dc:creator>1337595</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/442501?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/442501/multisport-fit-file-rejected-as-invalid-by-garmin-connect-unknown_233-message-type/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I recorded a multisport activity (run-bike-run duathlon) on my Forerunner &lt;br /&gt;965 on 2026-08-23. Garmin Connect rejects the file as &amp;quot;invalid&amp;quot; via all &lt;br /&gt;import paths (auto-sync, Garmin Express, manual web import).&lt;/p&gt;
&lt;p&gt;Inspecting the file with a third-party FIT tool shows it&amp;#39;s complete and &lt;br /&gt;readable (7,394 messages, 1,561 record entries, 11 laps, all sessions &lt;br /&gt;present). It contains an unofficial/undocumented message type &lt;br /&gt;(unknown_233, 2,632 occurrences) that isn&amp;#39;t in the official FIT SDK &lt;br /&gt;profile &amp;mdash; possibly what&amp;#39;s tripping Connect&amp;#39;s server-side validator.&lt;/p&gt;
&lt;p&gt;Has anyone seen this before, or is there someone here who could take a &lt;br /&gt;look with FFRT (Fit File Repair Tool)?&lt;/p&gt;
&lt;p&gt;Device: Forerunner 965&lt;a href="https://forums.garmin.com/cfs-file/__key/communityserver-discussions-components-files/502/rennen.zip"&gt;forums.garmin.com/.../rennen.zip&lt;/a&gt;&lt;br /&gt;File attached.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Where can I find the name of the product  whose ID is 16338</title><link>https://forums.garmin.com/thread/442260?ContentTypeID=0</link><pubDate>Wed, 19 Aug 2026 15:33:57 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:ea66fd61-2681-4f37-9e18-0879f2fac543</guid><dc:creator>KenDuffill</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/442260?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/442260/where-can-i-find-the-name-of-the-product-whose-id-is-16338/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;When decoding the Device Info message from y Forerunner 45 watch I cannot find a description for product ID 16338&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Where can I find the name of the manufacturer whose ID is 36084</title><link>https://forums.garmin.com/thread/442259?ContentTypeID=0</link><pubDate>Wed, 19 Aug 2026 15:30:11 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:91b4cc01-6d76-45f3-814a-b87855938d48</guid><dc:creator>KenDuffill</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/442259?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/442259/where-can-i-find-the-name-of-the-manufacturer-whose-id-is-36084/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;When I decode Device Info Messages from my Forerunner 45 watch I find that manufacturer ID 36084 is&amp;nbsp;Unknown.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>JS SDK: decoder crash on unknown field before an accumulated field</title><link>https://forums.garmin.com/thread/442200?ContentTypeID=0</link><pubDate>Tue, 18 Aug 2026 19:45:14 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:ff6caf26-cadd-4038-8bc4-ccd1b2e3e8d5</guid><dc:creator>Ufie</dc:creator><slash:comments>2</slash:comments><comments>https://forums.garmin.com/thread/442200?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/442200/js-sdk-decoder-crash-on-unknown-field-before-an-accumulated-field/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Decoding with&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;Decoder.read({ includeUnknownData: true })&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;fails with:&lt;/p&gt;
&lt;p&gt;&amp;quot;Cannot read properties of undefined (reading &amp;#39;components&amp;#39;)&amp;quot;&lt;/p&gt;
&lt;p&gt;Decoding stops at that point, so all remaining messages in the file are lost.&lt;/p&gt;
&lt;p&gt;Cause is in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;code data-epitaxy-inline-code="" data-epitaxy-file-ref=""&gt;src/decoder.js&lt;/code&gt;&lt;/span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;#setAccumulatedField()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(line 719 in 21.213.0):&lt;/p&gt;
&lt;p&gt;let components = messageDefinition.fields[containingField.fieldDefinitionNumber].components ?? []&lt;/p&gt;
&lt;p&gt;With&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;includeUnknownData: true&lt;/code&gt;, fields that have no Profile entry are present in&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;message&lt;/code&gt;, so this lookup returns undefined. It only triggers when the unknown field comes before an accumulated field (distance, total_cycles, accumulated_power) in the message definition &amp;mdash; the same fields in the opposite order decode fine.&lt;/p&gt;
&lt;p&gt;Fix is the optional chaining already used on the next lookup two lines down:&lt;/p&gt;
&lt;p&gt;let components = messageDefinition.fields[containingField.fieldDefinitionNumber]?.components ?? []&lt;/p&gt;
&lt;p&gt;Reproduced on 21.208.0 and 21.213.0, Node 22. Happy to post a minimal repro script if that helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>has anyone got a developer field to render in connect recently? mine decode fine and show up nowhere</title><link>https://forums.garmin.com/thread/441548?ContentTypeID=0</link><pubDate>Sat, 08 Aug 2026 20:31:36 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:685b4440-cc20-476a-95bf-89019e5d5cef</guid><dc:creator>jpcams</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/441548?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/441548/has-anyone-got-a-developer-field-to-render-in-connect-recently-mine-decode-fine-and-show-up-nowhere/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p dir="ltr"&gt;i&amp;#39;ve got a connect iq strength app that records sport 10 / sub sport 20. it writes seven developer fields through fitcontrib: reps, load and hold on&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;MESG_TYPE_LAP&lt;/code&gt;, then total reps, total sets, volume and avg rpe on&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;MESG_TYPE_SESSION&lt;/code&gt;.&lt;/p&gt;
&lt;p dir="ltr"&gt;i&amp;#39;ve already decoded it with the fit sdk (export original out of connect rather than pulled off the watch over usb, happy to redo it that way if that matters). everything is in there and looks correct to me. unique ids in developer index 0, base types matching the declared sizes, units present, each one bound through&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;native_mesg_num&lt;/code&gt;. values check out too: total sets 19 against 19 laps carrying reps, total reps 209 against 209, volume 4019.5 kg summing reps &amp;times; load. 44 laps, and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;0 set messages&lt;/strong&gt;, which i understand is why the sets table is empty and is a ciq limitation rather than anything i can fix.&lt;/p&gt;
&lt;p dir="ltr"&gt;what i can&amp;#39;t work out is the developer fields. connect displays none of the seven, on web or in the phone app. no chart series offered beyond heart rate on either. the sdk docs for&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;createField&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;say a developer field can show up as a graph, as lap information or as workout summary information, and i&amp;#39;m getting none of the three.&lt;/p&gt;
&lt;p dir="ltr"&gt;so:&lt;/p&gt;
&lt;ol dir="ltr" start="1"&gt;
&lt;li&gt;&lt;strong&gt;has anyone actually seen a developer field render in connect recently, on any sport?&lt;/strong&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;i&amp;#39;ve got no other ciq app in my history writing them, so i can&amp;#39;t tell if this is strength specific or general.&lt;/li&gt;
&lt;li&gt;does&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;native_field_num&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;matter here? mine is unset on all seven and i can&amp;#39;t tell from the docs whether connect keys the display off it.&lt;/li&gt;
&lt;li&gt;is the strength page fed purely by&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code data-epitaxy-inline-code=""&gt;set&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;messages, so laps and developer fields have nowhere to go on that activity type by design?&lt;/li&gt;
&lt;/ol&gt;
&lt;p dir="ltr"&gt;happy to post the full decode if it&amp;#39;s useful.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Can a commercial Android app bundle the FIT Java SDK (com.garmin:fit) for distribution?</title><link>https://forums.garmin.com/thread/441419?ContentTypeID=0</link><pubDate>Thu, 06 Aug 2026 12:47:21 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:7cf1acff-7070-446d-8d9c-dde9ba7f394e</guid><dc:creator>Sugoi</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/441419?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/441419/can-a-commercial-android-app-bundle-the-fit-java-sdk-com-garmin-fit-for-distribution/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, I&amp;#39;m building an Android app (not yet published) that uses the official FIT Java SDK (com.garmin:fit, via Maven Central) to read FIT files recorded by Edge/VIRB devices, and I plan to distribute it commercially through Google Play.&lt;/p&gt;
&lt;p&gt;Section 1 of the SDK License Agreement permits using the FIT protocol &amp;quot;in any software created by Licensee&amp;quot;, but Section 2(c) separately restricts distributing the Licensed Technology to third parties. Since an Android APK bundles its compiled dependencies inside the package it distributes, I want to confirm: does shipping an app that includes the compiled FIT SDK count as &amp;quot;distributing the Licensed Technology&amp;quot; under 2(c), or is that covered as normal use under Section 1?&lt;/p&gt;
&lt;p&gt;Would appreciate any clarification - want to be compliant before launching. Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Battery life</title><link>https://forums.garmin.com/thread/441222?ContentTypeID=0</link><pubDate>Mon, 03 Aug 2026 11:33:56 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:dacb91f0-2b29-4e38-9235-c188fa8f486c</guid><dc:creator>2886759</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/441222?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/441222/battery-life/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;After the last update on the Fenix 8, the battery life is very bad. Fully charged on Saturday, and today it&amp;#39;s at 55%&lt;/p&gt;
&lt;p&gt;The always-on display is one, but it was on before the update,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Privacy and ability for offline mode</title><link>https://forums.garmin.com/thread/441189?ContentTypeID=0</link><pubDate>Sun, 02 Aug 2026 23:15:30 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:a52cf651-9831-4642-9816-9899392127e5</guid><dc:creator>6856588</dc:creator><slash:comments>2</slash:comments><comments>https://forums.garmin.com/thread/441189?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/441189/privacy-and-ability-for-offline-mode/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I&amp;rsquo;ve had 4 Forerunners in 10 years and I want to be able to have my watch sync with my phone, without syncing with the Cloud&amp;hellip;I&amp;rsquo;d like this setting for privacy as Garmin doesn&amp;rsquo;t have end-to-end encryption. This should be an easy add to benefit those who are in the wilderness or want additional digital privacy.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Requesting a FIT manufacturer ID as an individual developer — process and timing?</title><link>https://forums.garmin.com/thread/441122?ContentTypeID=0</link><pubDate>Sat, 01 Aug 2026 14:45:20 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:5a5a2b32-4f10-45df-a939-407aabea15f3</guid><dc:creator>8531634</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/441122?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/441122/requesting-a-fit-manufacturer-id-as-an-individual-developer-process-and-timing/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div data-line="1" data-line-type="context" data-line-index="0"&gt;&lt;span&gt;Hello,&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="2" data-line-type="context" data-line-index="1"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="3" data-line-type="context" data-line-index="2"&gt;&lt;span&gt;I am an individual developer in Japan, working on an Android cycling app that writes&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="4" data-line-type="context" data-line-index="3"&gt;&lt;span&gt;FIT files. I would like to obtain a FIT manufacturer ID so that my files identify the&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="5" data-line-type="context" data-line-index="4"&gt;&lt;span&gt;application correctly &amp;mdash; they currently use manufacturer = 255 (development).&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="6" data-line-type="context" data-line-index="5"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="7" data-line-type="context" data-line-index="6"&gt;&lt;span&gt;Following the guidance posted in this forum, I contacted Garmin business development&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="8" data-line-type="context" data-line-index="7"&gt;&lt;span&gt;by email about a week ago. I have not heard back yet, and I understand these requests&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="9" data-line-type="context" data-line-index="8"&gt;&lt;span&gt;may simply take time.&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="10" data-line-type="context" data-line-index="9"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="11" data-line-type="context" data-line-index="10"&gt;&lt;span&gt;Could anyone advise:&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="12" data-line-type="context" data-line-index="11"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="13" data-line-type="context" data-line-index="12"&gt;&lt;span&gt;1. Is contacting Garmin business development by email still the correct route for&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="14" data-line-type="context" data-line-index="13"&gt;&lt;span&gt; manufacturer ID requests, now that the ANT+ Adopter request form is no longer&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="15" data-line-type="context" data-line-index="14"&gt;&lt;span&gt; available to non-members?&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="16" data-line-type="context" data-line-index="15"&gt;&lt;span&gt;2. What is the typical turnaround for such a request?&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="17" data-line-type="context" data-line-index="16"&gt;&lt;span&gt;3. Is there any additional information that helps &amp;mdash; company details, a product&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="18" data-line-type="context" data-line-index="17"&gt;&lt;span&gt; description, or a sample FIT file? I am happy to provide whatever is needed.&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="19" data-line-type="context" data-line-index="18"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div data-line="20" data-line-type="context" data-line-index="19"&gt;&lt;span&gt;Thank you.&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to get RR intervals from FIT hr messages (Fit file message 132)?</title><link>https://forums.garmin.com/thread/440840?ContentTypeID=0</link><pubDate>Tue, 28 Jul 2026 18:53:16 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:78e923fe-80f8-4773-9e57-25637f59266a</guid><dc:creator>pepe</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/440840?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/440840/how-to-get-rr-intervals-from-fit-hr-messages-fit-file-message-132/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Garmin units write RR intervals to Fit file from Garmin HRM 600 and other Garmin HRM with memory at the end of a offline activity,(like swimming) writing 11 RR intervals per message,&lt;/p&gt;
&lt;p&gt;= TYPE=12 NAME=hr NUMBER=132&lt;br /&gt;--- timestamp=1126167485=2025-09-07T08:18:05Z&lt;br /&gt;--- event_timestamp=1778373632=1736693.000 s&lt;br /&gt;--- fractional_timestamp=0=0.0000 s&lt;br /&gt;--- filtered_bpm=71=71 bpm&lt;br /&gt;--- xxx251=0=0&lt;br /&gt;==&lt;br /&gt;= TYPE=11 NAME=hr NUMBER=132&lt;br /&gt;--- filtered_bpm=71=71 bpm,71 bpm,71 bpm,71 bpm,71 bpm,71 bpm,71 bpm,71 bpm&lt;br /&gt;--- event_timestamp_12=0=0.000 s,0.031 s,0.068 s,0.214 s,0.117 s,0.206 s,0.075 s,0.108 s,0.021 s,0.022 s,0.083 s,0.135 s&lt;br /&gt;==&lt;/p&gt;
&lt;h3&gt;&lt;span class=""&gt;Type‑12 Anchor Processing&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;code&gt;timestamp&lt;/code&gt;&lt;span class=""&gt; (absolute Unix time) and the scalar &lt;/span&gt;&lt;code&gt;event_timestamp&lt;/code&gt;&lt;span class=""&gt; (a 32‑bit integer in 1/1024‑second units).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;The anchor&amp;rsquo;s absolute time is calculated as:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;anchor_abs = timestamp + event_timestamp / 1024.0&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li class=""&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;This &lt;/span&gt;&lt;code&gt;event_timestamp&lt;/code&gt;&lt;span class=""&gt; scalar is used as the &lt;/span&gt;&lt;strong&gt;&lt;span class=""&gt;baseline&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; for the &lt;/span&gt;&lt;strong&gt;&lt;span class=""&gt;first beat&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; of the subsequent Type‑11 message (if present).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;&lt;span class=""&gt;Type‑11 Message Processing (The Core RR Extraction)&lt;/span&gt;&lt;/h3&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;When a Type‑11 message is encountered, GC processes two fields:&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;&lt;span class=""&gt;1. Scalar &lt;/span&gt;&lt;code&gt;event_timestamp&lt;/code&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;This is a &lt;/span&gt;&lt;strong&gt;&lt;span class=""&gt;32‑bit integer&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; representing the cumulative offset (in 1/1024 seconds) of the &lt;/span&gt;&lt;strong&gt;&lt;span class=""&gt;first beat&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; of this message from the start of the activity (or midnight).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;span class=""&gt;2. Packed &lt;/span&gt;&lt;code&gt;event_timestamp_12&lt;/code&gt;&lt;span class=""&gt; (field 10)&lt;/span&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;This field contains &lt;/span&gt;&lt;strong&gt;&lt;span class=""&gt;12 bytes&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; (0&amp;ndash;255). They are &lt;/span&gt;&lt;strong&gt;&lt;span class=""&gt;not&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; RR intervals &amp;ndash; they are packed 12‑bit cumulative offsets that extend the 32‑bit timestamp for the subsequent 11 beats.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;Needs unpacking the bytes using a specific bit‑twiddling algorithm (overlapping pairs, alternating extraction).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;span class=""&gt;For each pair of bytes, reconstruct a 12‑bit value&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;&lt;span class=""&gt;Result per Type‑11 Message&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;strong&gt;&lt;span class=""&gt;1 absolute beat time&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; from the scalar &lt;/span&gt;&lt;code&gt;event_timestamp&lt;/code&gt;&lt;span class=""&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;strong&gt;&lt;span class=""&gt;11 additional absolute beat times&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; from the unpacked bytes.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;strong&gt;&lt;span class=""&gt;Total: 12 absolute beat times&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; per message.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p class="ds-markdown-paragraph"&gt;&lt;strong&gt;&lt;span class=""&gt;11 RR intervals&lt;/span&gt;&lt;/strong&gt;&lt;span class=""&gt; (differences between consecutive absolute beat times).&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Fenix 6 product names in fit sdks seem to be wrong?</title><link>https://forums.garmin.com/thread/440597?ContentTypeID=0</link><pubDate>Sat, 25 Jul 2026 17:41:33 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:4bc331f5-2dc6-48a4-a417-7d5c7dbad9af</guid><dc:creator>HermoT</dc:creator><slash:comments>2</slash:comments><comments>https://forums.garmin.com/thread/440597?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/440597/fenix-6-product-names-in-fit-sdks-seem-to-be-wrong/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&amp;nbsp;&lt;a href="https://forums.garmin.com/members/4692e6261156423ca1b6bfa5b137c27d"&gt;Ben FIT&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Correct me if I am wrong, but it seems to me the fenix 6 series have the wrong names in the fit sdks.&lt;br /&gt;&lt;a href="https://github.com/garmin/fit-javascript-sdk/blob/main/src/profile.js#L24921-L24925"&gt;https://github.com/garmin/fit-javascript-sdk/blob/main/src/profile.js#L24921-L24925&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My belief is that the &amp;quot;Sport&amp;quot; is the regular fenix 6, and what appears to be the regular fenix 6 in the sdk should be the Pro.&lt;/p&gt;
&lt;p&gt;I have confirmed this with a fit file from my own fenix 6 Pro.&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SDK&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Reality&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Notes&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3287: &amp;quot;fenix6SSport&amp;quot;&lt;/td&gt;
&lt;td&gt;fenix6S&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3288: &amp;quot;fenix6S&amp;quot;&lt;/td&gt;
&lt;td&gt;fenix6SPro&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3289: &amp;quot;fenix6Sport&amp;quot;&lt;/td&gt;
&lt;td&gt;fenix6&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3290: &amp;quot;fenix6&amp;quot;&lt;/td&gt;
&lt;td&gt;fenix6Pro&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3291: &amp;quot;fenix6x&amp;quot;&lt;/td&gt;
&lt;td&gt;fenix6XPro&lt;/td&gt;
&lt;td&gt;Based on naming convention of &amp;quot;S&amp;quot; in fenix6S,&amp;nbsp; &amp;quot;x&amp;quot; should be uppercase &amp;quot;X&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Same most likely applies for the Asia versions too:&lt;br /&gt;&lt;a href="https://github.com/garmin/fit-javascript-sdk/blob/main/src/profile.js#L24955-L24959"&gt;https://github.com/garmin/fit-javascript-sdk/blob/main/src/profile.js#L24955-L24959&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Accidental duplicate post. Please delete this Discussion copy and retain the Question version.</title><link>https://forums.garmin.com/thread/440360?ContentTypeID=0</link><pubDate>Wed, 22 Jul 2026 12:37:27 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:d1b59ffa-2c41-4ee7-a595-ed299d22f434</guid><dc:creator>Wilson</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/440360?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/440360/accidental-duplicate-post-please-delete-this-discussion-copy-and-retain-the-question-version/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;【Duplicate submission created accidentally. Please delete this Discussion thread. The Question version is the intended thread:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://forums.garmin.com/developer/fit-sdk/f/discussion/440359/how-should-more-than-five-rr-intervals-from-one-ble-notification-be-serialized-into-fit-hrv-messages"&gt;How should more than five RR intervals from one BLE notification be serialized into FIT hrv messages?&lt;/a&gt;&amp;nbsp; 】&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I would like to distinguish between the capacity of one FIT &lt;code&gt;hrv&lt;/code&gt; message and the number of RR intervals delivered by a sensor in one BLE notification.&lt;/p&gt;
&lt;p&gt;In a previous FIT SDK discussion, Ben FIT explained that the &lt;code&gt;hrv.time&lt;/code&gt; array contains between one and five valid RR intervals, with five physical slots provided because the maximum heart rate representable in a FIT Record message is 254 bpm:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://forums.garmin.com/developer/fit-sdk/f/discussion/255690/fit-file-hrv-data-array-interpretation/1220787"&gt;https://forums.garmin.com/developer/fit-sdk/f/discussion/255690/fit-file-hrv-data-array-interpretation/1220787&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However, an incoming BLE Heart Rate Measurement notification does not necessarily represent one second of measurements and does not necessarily correspond one-to-one with a FIT &lt;code&gt;hrv&lt;/code&gt; message.&lt;/p&gt;
&lt;p&gt;The Bluetooth Heart Rate Service specification states that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;the RR-Interval Present flag may change during a connection;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a Heart Rate Measurement may contain no RR intervals or multiple RR intervals;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;with the default 23-byte ATT MTU, one notification may contain up to eight or nine RR-Interval fields, depending on the other fields present;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the notification interval is determined by the sensor and may vary.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Specification:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/HRS_v1.0/out/en/index-en.html"&gt;https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/HRS_v1.0/out/en/index-en.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A valid sensor implementation may therefore send several heart-rate-only notifications and then include the accumulated RR intervals in a later notification. If it batches approximately two seconds of data, a single notification can contain more than five RR intervals when heart rate exceeds approximately 150 bpm.&lt;/p&gt;
&lt;p&gt;My FIT-format questions are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Is the five-value capacity only a limit of each individual FIT &lt;code&gt;hrv&lt;/code&gt; message?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If a recording device receives six to nine RR intervals in one BLE &lt;code&gt;0x2A37&lt;/code&gt; notification, is the expected FIT representation to write the first five values in one &lt;code&gt;hrv&lt;/code&gt; message and the remaining values in one or more immediately following &lt;code&gt;hrv&lt;/code&gt; messages?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is it valid for multiple consecutive FIT &lt;code&gt;hrv&lt;/code&gt; messages to originate from the same incoming BLE notification?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Since &lt;code&gt;hrv&lt;/code&gt; messages have no independent timestamps, are the values in these consecutive messages simply interpreted as one continuous RR-interval sequence in file order?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This question was prompted by an actual Forerunner 955 activity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Approximately 2,004 seconds / one-second Record messages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;1,018 FIT &lt;code&gt;hrv&lt;/code&gt; messages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Average spacing of approximately 1.968 seconds per &lt;code&gt;hrv&lt;/code&gt; message&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Physical capacity: 1,018 &amp;times; 5 = 5,090 RR-interval slots&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Valid RR intervals in the FIT file: 5,012&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RR intervals in the aligned sensor-local sequence: 5,294&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Difference: 282 RR intervals&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If only one five-slot &lt;code&gt;hrv&lt;/code&gt; message is written every 1.968 seconds, the maximum storage rate is:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;5 &amp;times; 60 / 1.968 &amp;asymp; 152.4 RR intervals per minute&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is very close to the heart-rate range above which the discrepancy becomes apparent.&lt;/p&gt;
&lt;p&gt;In a separate low-heart-rate test, an nRF Connect log showed that the sensor sent a Heart Rate Measurement notification approximately every 700 ms but included accumulated RR intervals only about once every two seconds. All 136 RR intervals covered by that capture were present in the BLE payloads, in the correct order.&lt;/p&gt;
&lt;p&gt;I have not yet captured the BLE payloads during the high-heart-rate portion, so I am not claiming that the FR955 has definitively discarded the missing values. I am first trying to establish the intended FIT serialization behavior.&lt;/p&gt;
&lt;p&gt;Could the FIT team confirm whether more than five RR intervals received together should be preserved by writing multiple &lt;code&gt;hrv&lt;/code&gt; messages, and whether that representation is supported by Garmin activity files?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How should more than five RR intervals from one BLE notification be serialized into FIT hrv messages?</title><link>https://forums.garmin.com/thread/440359?ContentTypeID=0</link><pubDate>Wed, 22 Jul 2026 12:33:35 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:485eae30-809b-4318-b1fa-9f6831359aad</guid><dc:creator>Wilson</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/440359?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/440359/how-should-more-than-five-rr-intervals-from-one-ble-notification-be-serialized-into-fit-hrv-messages/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I would like to distinguish between the capacity of one FIT &lt;code&gt;hrv&lt;/code&gt; message and the number of RR intervals delivered by a sensor in one BLE notification.&lt;/p&gt;
&lt;p&gt;In a previous FIT SDK discussion, Ben FIT explained that the &lt;code&gt;hrv.time&lt;/code&gt; array contains between one and five valid RR intervals, with five physical slots provided because the maximum heart rate representable in a FIT Record message is 254 bpm:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://forums.garmin.com/developer/fit-sdk/f/discussion/255690/fit-file-hrv-data-array-interpretation/1220787"&gt;https://forums.garmin.com/developer/fit-sdk/f/discussion/255690/fit-file-hrv-data-array-interpretation/1220787&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However, an incoming BLE Heart Rate Measurement notification does not necessarily represent one second of measurements and does not necessarily correspond one-to-one with a FIT &lt;code&gt;hrv&lt;/code&gt; message.&lt;/p&gt;
&lt;p&gt;The Bluetooth Heart Rate Service specification states that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;the RR-Interval Present flag may change during a connection;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;a Heart Rate Measurement may contain no RR intervals or multiple RR intervals;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;with the default 23-byte ATT MTU, one notification may contain up to eight or nine RR-Interval fields, depending on the other fields present;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the notification interval is determined by the sensor and may vary.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Specification:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/HRS_v1.0/out/en/index-en.html"&gt;https://www.bluetooth.com/wp-content/uploads/Files/Specification/HTML/HRS_v1.0/out/en/index-en.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A valid sensor implementation may therefore send several heart-rate-only notifications and then include the accumulated RR intervals in a later notification. If it batches approximately two seconds of data, a single notification can contain more than five RR intervals when heart rate exceeds approximately 150 bpm.&lt;/p&gt;
&lt;p&gt;My FIT-format questions are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Is the five-value capacity only a limit of each individual FIT &lt;code&gt;hrv&lt;/code&gt; message?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If a recording device receives six to nine RR intervals in one BLE &lt;code&gt;0x2A37&lt;/code&gt; notification, is the expected FIT representation to write the first five values in one &lt;code&gt;hrv&lt;/code&gt; message and the remaining values in one or more immediately following &lt;code&gt;hrv&lt;/code&gt; messages?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is it valid for multiple consecutive FIT &lt;code&gt;hrv&lt;/code&gt; messages to originate from the same incoming BLE notification?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Since &lt;code&gt;hrv&lt;/code&gt; messages have no independent timestamps, are the values in these consecutive messages simply interpreted as one continuous RR-interval sequence in file order?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This question was prompted by an actual Forerunner 955 activity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Approximately 2,004 seconds / one-second Record messages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;1,018 FIT &lt;code&gt;hrv&lt;/code&gt; messages&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Average spacing of approximately 1.968 seconds per &lt;code&gt;hrv&lt;/code&gt; message&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Physical capacity: 1,018 &amp;times; 5 = 5,090 RR-interval slots&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Valid RR intervals in the FIT file: 5,012&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;RR intervals in the aligned sensor-local sequence: 5,294&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Difference: 282 RR intervals&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If only one five-slot &lt;code&gt;hrv&lt;/code&gt; message is written every 1.968 seconds, the maximum storage rate is:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;5 &amp;times; 60 / 1.968 &amp;asymp; 152.4 RR intervals per minute&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is very close to the heart-rate range above which the discrepancy becomes apparent.&lt;/p&gt;
&lt;p&gt;In a separate low-heart-rate test, an nRF Connect log showed that the sensor sent a Heart Rate Measurement notification approximately every 700 ms but included accumulated RR intervals only about once every two seconds. All 136 RR intervals covered by that capture were present in the BLE payloads, in the correct order.&lt;/p&gt;
&lt;p&gt;I have not yet captured the BLE payloads during the high-heart-rate portion, so I am not claiming that the FR955 has definitively discarded the missing values. I am first trying to establish the intended FIT serialization behavior.&lt;/p&gt;
&lt;p&gt;Could the FIT team confirm whether more than five RR intervals received together should be preserved by writing multiple &lt;code&gt;hrv&lt;/code&gt; messages, and whether that representation is supported by Garmin activity files?&lt;/p&gt;
&lt;p&gt;Related FR955 implementation question:&lt;/p&gt;
&lt;p&gt;I have posted a separate question in the Forerunner 955 forum about the other half of this data path: whether the FR955 parses all six to nine RR-Interval fields from a single BLE notification and passes the complete sequence to its internal physiological processing before FIT serialization:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://forums.garmin.com/sports-fitness/running-multisport/f/forerunner-955-series/440362/does-the-fr955-parse-and-process-all-6-9-rr-intervals-in-a-single-ble-heart-rate-notification"&gt;Does the FR955 parse and process all 6–9 RR intervals in a single BLE heart-rate notification?&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;That thread concerns the device&amp;rsquo;s BLE parsing and internal processing, while this thread is specifically about the correct FIT representation. Clarification on both would help determine whether any loss occurs during BLE parsing or internal buffering, or only during FIT-file serialization.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Sending HR Data from Samsung GW5 to Edge 530</title><link>https://forums.garmin.com/thread/440009?ContentTypeID=0</link><pubDate>Thu, 16 Jul 2026 16:52:15 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:50ad5746-c540-4153-be0f-8181ee2ca32d</guid><dc:creator>Former Member</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/440009?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/440009/sending-hr-data-from-samsung-gw5-to-edge-530/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey All,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve wrote an app for my Samsung Galaxy Watch 5 Pro and trying to connect it to Garmin Edge 530. I can see watch is showing up as HR Sensor on the list but I couldn&amp;#39;t get it to actually send data to my Edge 530. Interesting thing is, I tried other devices and code seems to be fine, I can connect and transmit HR data. But when it comes to establishing connection to my Edge 530, it doesn&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Could anyone help me debug/resolve this issue ?&lt;br /&gt;&lt;br /&gt;Thank you.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Redistribution of the Garmin FIT Java Library</title><link>https://forums.garmin.com/thread/439800?ContentTypeID=0</link><pubDate>Mon, 13 Jul 2026 05:23:06 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:d95a17a2-31c4-4a8b-b2ca-a8225cf84a48</guid><dc:creator>3861945</dc:creator><slash:comments>2</slash:comments><comments>https://forums.garmin.com/thread/439800?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/439800/redistribution-of-the-garmin-fit-java-library/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello Garmin FIT SDK Team,&lt;/p&gt;
&lt;p&gt;I have a question regarding the redistribution of the official Garmin FIT Java SDK.&lt;/p&gt;
&lt;p&gt;The SDK is available as the Maven artifact com.garmin:fit, which makes it straightforward to include as a dependency in Java applications.&lt;/p&gt;
&lt;p&gt;Suppose a commercial Java application uses the FIT Java SDK to read and write FIT files and distributes the corresponding fit.jar together with the application installation package. The JAR would only be used internally by the application to provide FIT file interoperability and would not be exposed as a separate product, SDK, or development tool.&lt;/p&gt;
&lt;p&gt;Could you please clarify whether this use case is permitted under the FIT SDK license?&lt;/p&gt;
&lt;p&gt;More specifically:&lt;br /&gt;- Is it permitted to redistribute the official com.garmin:fit JAR file as part of a commercial software product?&lt;br /&gt;- Does the license restriction on distributing the FIT SDK apply only to the SDK itself as a developer package, or does it also apply to the runtime JAR when bundled with an end-user application?&lt;br /&gt;- If redistribution of the JAR is not permitted, what is the recommended way to provide FIT file support in a commercial Java application?&lt;/p&gt;
&lt;p&gt;Thank you for your clarification.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Recommended integration architecture for a web-based cycling coaching platform</title><link>https://forums.garmin.com/thread/439649?ContentTypeID=0</link><pubDate>Fri, 10 Jul 2026 13:45:41 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:a28b80ad-8890-41a9-92cc-0408c353ffe6</guid><dc:creator>7349784</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/439649?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/439649/recommended-integration-architecture-for-a-web-based-cycling-coaching-platform/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello Garmin Developers,&lt;/p&gt;
&lt;p&gt;I am developing a web-based cycling coaching platform that analyzes completed cycling activities to generate personalized ride recommendations.&lt;/p&gt;
&lt;p&gt;Unlike applications that only use activity summaries, our recommendation engine depends on the original FIT activity files because we derive additional physiological and performance metrics from second-by-second telemetry such as power, cadence, heart rate, GPS, elevation and speed.&lt;/p&gt;
&lt;p&gt;Before implementing the platform, I would like to understand Garmin&amp;#39;s recommended integration architecture.&lt;/p&gt;
&lt;p&gt;For a web-based coaching platform where users authorize access to their Garmin Connect accounts, is the Garmin Connect Activity API the recommended approach for automatically receiving completed FIT activity files?&lt;/p&gt;
&lt;p&gt;Or is there another supported integration that Garmin recommends for platforms performing post-ride analytics and coaching?&lt;/p&gt;
&lt;p&gt;The platform is currently under development and will initially be evaluated with a small community of cyclists before a broader public release.&lt;/p&gt;
&lt;p&gt;Any guidance would be greatly appreciated.&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Requesting Manufacturer ID</title><link>https://forums.garmin.com/thread/439242?ContentTypeID=0</link><pubDate>Fri, 03 Jul 2026 23:24:16 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:f20700d6-7054-4a61-b86a-bfe0dbf6fd85</guid><dc:creator>4380222</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/439242?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/439242/requesting-manufacturer-id/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, I work for a company that manufactures a device that produces FIT files. I&amp;#39;d like to request a Manufacturer ID to use instead of the developer value 255.&lt;/p&gt;
&lt;p&gt;I gather this used to be done via thisisant.com. There is a form linked from&amp;nbsp;&lt;a id="" href="https://www.thisisant.com/developer/resources/tech-support/"&gt;https://www.thisisant.com/developer/resources/tech-support/&lt;/a&gt;&amp;nbsp;but I can&amp;#39;t access that even when logged in as the highest level of membership currently available (ANT+ Adopter).&lt;/p&gt;
&lt;p&gt;What is the process now that ANT+ Membership has closed?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Swim Interval Summary screen during programmed workouts.</title><link>https://forums.garmin.com/thread/439240?ContentTypeID=0</link><pubDate>Fri, 03 Jul 2026 22:03:38 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:e075c256-e003-4bf2-a7ee-1a66d6956ba8</guid><dc:creator>edwardsms</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/439240?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/439240/swim-interval-summary-screen-during-programmed-workouts/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;When programming a Swim workout via the SDK is there any way to get a Garmin Forerunner 970 to show the interval summary screen during the rest periods. The screen I want is the same screen the watch shows when doing a free workout. I swim some laps, press the lap button and a screen with a summary of the last set appears with a countdown timer for the rest period.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>attrezzatura</title><link>https://forums.garmin.com/thread/438278?ContentTypeID=0</link><pubDate>Thu, 18 Jun 2026 09:53:39 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0a991d5d-ef91-466d-b890-b7cc00dd76b5</guid><dc:creator>2025128</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/438278?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/438278/attrezzatura/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;come faccio ad azzerrare i km dell&amp;#39;attrezzatura? Ho appena impostato catena e copertoni, ma uun copertone ha 2.000 km come faccio a cambiare i km e non farlo partire da 0? grazie&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Create workout with steps using the SDK</title><link>https://forums.garmin.com/thread/437845?ContentTypeID=0</link><pubDate>Wed, 10 Jun 2026 17:04:19 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:aff0d127-5cf5-4cfe-ab45-7b5e1bf51df6</guid><dc:creator>RePeter</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/437845?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437845/create-workout-with-steps-using-the-sdk/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am currently developing a strength training application for my Garmin watch. The application is able to record an activity using the&amp;nbsp;Toybox.ActivityRecording.Session.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://forums.garmin.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/502/Bildschirmfoto-2026_2D00_06_2D00_10-um-18.51.58.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When I create an activity with my self made application, I cannot&amp;nbsp;add any sets to the strength training. The method &amp;#39;createFIeld(...) is not creating the correct data field in the FIT file.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;[
	{...},
	{
		&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
		}
	},
	{...}
]&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Does anybody know, how to add the sets to my application, so I can view the sets inside the Garmin Connect app?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>does Garmin/Firstbeat silently track Aerobic Threshold in FIT?</title><link>https://forums.garmin.com/thread/437346?ContentTypeID=0</link><pubDate>Tue, 02 Jun 2026 13:22:27 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:79bfca8c-001b-48ef-a152-95d8b74c6492</guid><dc:creator>RinseRepeat</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/437346?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437346/does-garmin-firstbeat-silently-track-aerobic-threshold-in-fit/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Is it plausible on the newest Garmin watches they silently track Aerobic Threshold in the Firstbeat ecosystem?&lt;/p&gt;
&lt;p&gt;The advanced historical projected LTHR is new since Fenix7/Fenix8 since the Fenix6 Firstbeat doesn&amp;#39;t do that&lt;/p&gt;
&lt;p&gt;Which makes me wonder if buried particularly in Run activities they are silently tracking Aerobic Threshold&lt;/p&gt;
&lt;p&gt;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&lt;/p&gt;
&lt;p&gt;Just to clarify, LTHR is actually anaerobic threshold (aka Ventilatory Threshold 2)&lt;/p&gt;
&lt;p&gt;Aerobic Threshold is sometimes rarely called &amp;quot;fatmax&amp;quot; or&amp;nbsp;&lt;span&gt;Ventilatory Threshold 1 aka AeT&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;AeT is typically half of vo2max but not always depending on training/genetics&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;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&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But it basically MUST silently do it since you are given an Aerobic+Anaerobic score for each Run&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>python SDK weight_scale, weight - potential bug</title><link>https://forums.garmin.com/thread/437310?ContentTypeID=0</link><pubDate>Mon, 01 Jun 2026 17:58:28 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:477e7794-958a-46ca-8bcd-a660429fc3ba</guid><dc:creator>8294519</dc:creator><slash:comments>3</slash:comments><comments>https://forums.garmin.com/thread/437310?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437310/python-sdk-weight_scale-weight---potential-bug/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;
&lt;div&gt;&lt;span&gt;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:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre class="ui-code" data-mode="python"&gt;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&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;span&gt;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?&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;Thanks!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;PS Hopefully I&amp;#39;m writing this in the correct place, apologies if not. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Rust #![no_std] library for decoding and encoding FIT files</title><link>https://forums.garmin.com/thread/436873?ContentTypeID=0</link><pubDate>Mon, 25 May 2026 06:27:06 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9b10cda5-58b2-46a4-82bb-d5b3b049d63c</guid><dc:creator>muktihari</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/436873?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436873/rust-no_std-library-for-decoding-and-encoding-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Repository: &lt;a href="https://github.com/muktihari/rustyfit" rel="noopener noreferrer" target="_blank"&gt;https://github.com/muktihari/rustyfit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 (&lt;a href="https://github.com/muktihari/fit"&gt;https://github.com/muktihari/fit&lt;/a&gt;), 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.&lt;br /&gt;&lt;br /&gt;The project is open source and still evolving, so feedback, bug reports, and contributions are very welcome.&lt;br /&gt;&lt;br /&gt;If companies or teams using Garmin FIT technologies need assistance integrating or extending it, I&amp;rsquo;d also be happy to collaborate professionally.&lt;br /&gt;&lt;br /&gt;And of course, if Garmin is ever interested in making this capability official or collaborating on maintenance, I&amp;rsquo;d be excited to discuss that as well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>v21.205 of the JavaScript SDK added type definitions.</title><link>https://forums.garmin.com/thread/436584?ContentTypeID=0</link><pubDate>Tue, 19 May 2026 21:46:23 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0ea4e4cf-a6dc-4669-a930-d614a6b7804e</guid><dc:creator>Ben FIT</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/436584?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436584/v21-205-of-the-javascript-sdk-added-type-definitions/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;v21.205 of the JavaScript SDK added type definitions.&amp;nbsp;&lt;br /&gt;&lt;a id="" href="https://github.com/garmin/fit-javascript-sdk/tree/main/src/types"&gt;https://github.com/garmin/fit-javascript-sdk/tree/main/src/types&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Along with the types definitions, the decoder now adheres to the profile for array fields.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Array fields will always be returned as arrays, even when there is only one element&lt;/li&gt;
&lt;li&gt;Non-array fields will always return a single value, even when there are multuple values&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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. &lt;br /&gt;&lt;br /&gt;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&amp;nbsp;array. &lt;br /&gt;&lt;br /&gt;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.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;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&amp;nbsp;with a name that starts with &amp;quot;enhanced&amp;quot;, and everyone&amp;nbsp;should have checks in their code to handle this. If so, then that&amp;nbsp;defensive&amp;nbsp;code can be removed.&lt;br /&gt;&lt;br /&gt;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&amp;nbsp;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&amp;nbsp;&lt;span&gt;legacyArrayMode option is marked as deprecated since we&amp;nbsp;plan&amp;nbsp;to remove&amp;nbsp;it by EOY26.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Even if you do not use TypeScript, the type definitions should provide better auto-complete and context sensitive help when using the JavaScript SDK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>como faz para ser um desenvolvedor</title><link>https://forums.garmin.com/thread/436278?ContentTypeID=0</link><pubDate>Thu, 14 May 2026 18:22:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:6575475a-7ed0-4482-bf47-fefcceaab9ca</guid><dc:creator>2190895</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/436278?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436278/como-faz-para-ser-um-desenvolvedor/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;eu trabalho com programa&amp;ccedil;&amp;atilde;o e recentemente fiz um programa de corrida e preciso ser um desenvolvedor para pega algunhas informa&amp;ccedil;&amp;otilde;es&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>