fresh public FIT files for decoder testing/benchmark from DC Rainmaker Enduro review

Always appreciate DC Rainmaker making his FIT files public, he's posted a really fresh set today attached to his Enduro review

(if anyone knows of other public FIT sources let me know, particularly interested in any elite ultra/triathlon races)

Various devices and accessories in each set:

https://dcranalyzer-qxyvqnghga-uc.a.run.app/api/v1/set/09792304-fe78-4014-4fb1-76fb9ebe0680/files/set.zip

https://dcranalyzer-qxyvqnghga-uc.a.run.app/api/v1/set/73860443-57d2-457a-5375-4a782cb727ff/files/set.zip

https://dcranalyzer-qxyvqnghga-uc.a.run.app/api/v1/set/11e73e26-f1cf-45c9-5b80-1d3ebb05f86a/files/set.zip

https://dcranalyzer-qxyvqnghga-uc.a.run.app/api/v1/set/43062fa7-d0f8-4b98-69cd-c318e94993dc/files/set.zip

https://dcranalyzer-qxyvqnghga-uc.a.run.app/api/v1/set/d807bb6a-ee1c-41b4-676d-7192ed9edfc0/files/set.zip (older fenix 6x/pro/solar review from 2019)

his analyzer is pretty good too, this one has the Enduro+HRMPRO

https://analyze.dcrainmaker.com/#/public/73860443-57d2-457a-5375-4a782cb727ff

this one has the Enduro on a "forest run" compared to the 945 with HRMPRO

https://analyze.dcrainmaker.com/#/public/09792304-fe78-4014-4fb1-76fb9ebe0680

looks like the Enduro optical is spot on with just a couple of spikes compare to the HRM strap

Bring on the 955 and Fenix7, can't wait to see what's in CIQ4 and the newest FIT files.

  • I shall play with geoelan  later.

    Meanwhile I checked your dropbox *.fit file by this resource https://www.fitfileviewer.com/

    There are 3D accelerometer messages in csv format, which probably you need, while they are absent  in  the js parseρ I am using. Will try to get them

  • I'm reading your https://forums.garmin.com/developer/fit-sdk/f/discussion/245469/tool-idea-calculate-inject-respiration-rate-into-fit-when-using-hrv-on-older-watches with interest and am wondering how you got the respiration rate data? Which FIT file was it that you were referring to? If I based it on the OURA picture you linked, this is basically the HRV data which is already being stored in FIT files? Is that what you are referring to? [ also can you point out which FIT file you have so That I can also take a look at _that_ specific FIT file itself?] 

    Thanks a bunch

  • Sorry for delay in reply as I've been too busy for the forums past week

    We should probably use that thread for further discussion of that but yes I am (attempting) calculating respiration rate from HRV data, which is only present when using HRM strap and HRV logging is turned on in the watch

    That is how Garmin calculates it and unless I am mistaken, they don't bother to save the respiration rate itself in the FIT files even on supported watches but rather calculate it in realtime on garmin-connect

    So they could activate that feature for any watch like Fenix5 but refuse to, probably to make people buy new watches every year but it's silly that lowest cost newer models have features the Fenix5 does not when it was the flagship until a couple years ago

    Yes I am using the method OURA shared which basically made it far easier to figure out

    The HRV data is found as developer fields appended to the type 20 records as message id 78, looks like this

    hrv (78, type: 0, length: 11 bytes):
      time (0-5-UINT16): {0.434 s (434), 0.438 s (438), 0.432 s (432), 65535, 65535}

    You have to gather all of them and them you have the sequence of timing between heartbeats for the entire activity, I believe that's called RR intervals or interbeat intervals  https://en.wikipedia.org/wiki/Interbeat_interval

    Then you can do a lot of interesting calculations based on what we know about how the heart works during certain body behaviors. Respiration rate is just the start, there is a new exciting paper with open source code on how to identify the Lactate Threshold and aerobic threshold (LT1 LT2) from HRV data which I am investigating how to code myself but might take awhile:

    https://colab.research.google.com/drive/1GUZVjZGhc2_JqV-J5m1mgbvbiTBV9WzZ

    Oh there is another place you can get the HRV data if you have a HRM-TRI or HRM-PRO, if you use the "download heart rate data" after the activity on the watch, it then will directly append (chain) to the FIT file the HRV data directly from the strap so any lost ANT+ communications (dropouts) are bypassed which is nice. Then there is a special FIT file called HRDATA.FIT found in 

    \GARMIN\TEMPFIT\SAF_HR\HRDATA.FIT

    however that HRV is different than the main activity file (and that file is overwritten every time you download it, so make a different copy if it's important)

    that data looks like

    hr (132, type: 11, length: 21 bytes):
      filtered_bpm (6-8-UINT8): {57 bpm (57), 56 bpm (56), 57 bpm (57), 57 bpm (57), 57 bpm (57), 57 bpm (57), 57 bpm (57), 56 bpm (56)}
      event_timestamp_12 (10-12-BYTE): {0.219 s (224), 0.146 s (150), 0.174 s (178), 0.083 s (85), 0.140 s (143), 0.053 s (54), 0.164 s (168), 0.226 s (231), 0.186 s (190), 0.061 s (62), 0.016 s (16), 0.072 s (74)}

    what's weird is it's not a direct integer if you look carefully, there's some kind of scaler I haven't calculated yet, ie "74" = "0.72" or "224" = "0.219" which is odd

  • If you are still interested, I have just implemented the respiratory rate in fitplotter

    https://karaul.github.io/fitplotter/

    https://github.com/karaul/fitplotter

    Download your FIT file with HRV data into fitplotter. Then set x-axis "time_breath" and play with y-axis drop list. It is interecting, that with the instanteonous calculations, there are 4 always breathing modes, which corresponds to the own characteristc shape of the RR range extracted from HRV data. By averging, these modes give reasnable 30-45 breaths per minute, as expected. I have testet with Garmin FR 935