Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

   

Are other messages allowed between data records?

Rank

Total Posts: 3

Joined 2017-01-13

PM

I am having a problem with my Garmin Fenix 3 working properly with a non-Garmin HRM. Long story short, the non-Garmin HRM hooks up just fine with the Fenix 3 and is able to send accurate data to the device. The problem is that Garmin calculates this "Training Effect" based on the HRM data and with non-Garmin HRMs, it seems to be unable to calculate this accurately. Reaching out to Garmin was a waste and so I decided to look into it.

What I need to know is if the FIT file is allowed to have any non-record messages mixed in with record messages. That's the only discrepancy I can find between the working FIT file (the Garmin HRM) and the non-working FIT file (the MyZone HRM). My hope is if I can prove that both FIT files are valid, I can possibly get Garmin to fix their software. And if the MyZone FIT file is not valid, I can possibly get MyZone to fix their HRM.

Below is the FIT file structures for each activities my Garmin Fenix 3 recorded. (Each activity was as close to the same as possible, basically me on a spin bike for 10 minutes trying to hover around 75% max HR) I have also attached both FIT files provided by Garmin Connect to help if you have time.

Garmin HRM FIT Structure
1 File size4444 bytesprotocol ver1.00profile ver20.13
      1 File header CRC
0x5B54
      1 file_id 
(0type0length20 bytes):
      
1 file_creator (49type1length4 bytes):
      
1 event (21type2length12 bytes):
      
4 device_info (23type3length44 bytes):
      
1 source (22type4length13 bytes):
      
1 unknown (141type5length26 bytes):
      
1 unknown (79type6length27 bytes):
      
1 sport (12type7length35 bytes):
    
145 record (20type8length17 bytes):
      
1 unknown (140type9length45 bytes):
      
1 event (21type2length12 bytes):
      
1 record (20type8length17 bytes):
      
1 event (21type2length12 bytes):
      
4 device_info (23type3length44 bytes):
      
1 lap (19type10length232 bytes):
      
1 session (18type11length254 bytes):
      
1 activity (34type12length19 bytes):
      
1 CRC0xC168 


MyZone HRM FIT Structure

1 File size4284 bytesprotocol ver1.00profile ver20.13
      1 File header CRC
0xD34A
      1 file_id 
(0type0length20 bytes):
      
1 file_creator (49type1length4 bytes):
      
1 event (21type2length12 bytes):
      
4 device_info (23type3length44 bytes):
      
1 source (22type4length13 bytes):
      
1 unknown (141type5length26 bytes):
      
1 unknown (79type6length27 bytes):
      
1 sport (12type7length35 bytes):
     
87 record (20type8length17 bytes):
      
1 device_info (23type3length44 bytes):
     
46 record (20type8length17 bytes):
      
1 unknown (140type9length45 bytes):
      
1 event (21type2length12 bytes):
      
1 record (20type8length17 bytes):
      
1 event (21type2length12 bytes):
      
4 device_info (23type3length44 bytes):
      
1 lap (19type10length232 bytes):
      
1 session (18type11length254 bytes):
      
1 activity (34type12length19 bytes):
      
1 CRC0xE5E4 


Within reason, the structures and the data within them are identical other than the Garmin HRM has one continuous grouping of 145 "record" entries while the MyZone HRM has two groupings of 87 and 46 "record" groupings respectively.      

File Attachments

Rank

Total Posts: 3

Joined 2017-01-13

PM

I may have found something in the FIT File specification that answers this:

It is permitted that the quantity and position of message definitions be different than the recommended sequence presented in this document so long as they still conform to the FIT Protocol.

I'd love a definitive answer either way, thanks for your time.      
Rank

Total Posts: 3

Joined 2017-01-13

PM

I've looked further into the data and other than the session summary, which I assume the Fenix 3 is annotating itself as the HRM will not calculate calories or training effect, the data is identical. There are some "unknown*" messages that have different values between the Garmin and non-Garmin HRM but without someone from Garmin telling me what these values are, I can't go to MyZone and tell them to fix their stuff.      
RankRankRank

Total Posts: 68

Joined 0

PM

What I need to know is if the FIT file is allowed to have any non-record messages mixed in with record messages.

Yes. A FIT file is allowed to have non-record messages mixed in with record messages.

Training effect is calculated by the device and stored in the file (in the session message) as total_training_effect.

The device appears to have logged 1.0 as the training effect for the MyZone and 2.4 for the Garmin HRM. Which test did you perform first? Training effect is based on a lot of variables and this can change based on more than just HR over for the same period of time.

Checkout this Firstbeat white paper on training effect if you're interested.