Temperature precision

I've found that the temperature precision of one decimal place is not transfered to Garmin Connect. It displays on the watch (Instinct models) but the number after the point gets zeroed. So 9.9C would become 9.0, which reduces the accuracy of the data by almost a degree.

I spoke to a programmer who looked at the raw data from an activity and confirmed that there was provision for a floating point. However, Garmin say that the FIT protocol doesn't allow for this.

This is out of my area of expertise but it does seem that there's a bug which not only prevents the temperature precision of the Garmin Tempe being fully utalised, but it's actually truncating the reading, resulting in a reduced accuracy.

I'd have thought this might be a simple firmward update but, as I say, I'm not an expert.

Top Replies

All Replies

  • It looks like temperature is stored in the FIT as only a signed 8-bit integer which leaves no room for precision

    I have no idea how it is sent in the ANT+ protocol though, there may be more to it than that, in theory it is possible to intercept that broadcast and examine it directly but that would require a CIQ datafield which defeats the purpose of the tempe

    You are saying you see the decimal on your watch in celcius, if that is real you could make a CIQ datafield (or app) to record it.

    apparently that exists: https://apps.garmin.com/en-US/apps/bedd1447-4816-40a9-83e1-0ed22c5bbcc3

    Tempe has a lot of problems/limitations, it is an ancient "dumb" device without the possibility of firmware updates and it displaces the native temperature field from the watch instead of adding a developer field with supplemental data

    It is very wasteful that it doesn't do more like pressure and relative humidity would be a huge bonus because then you could calculate oxygen content

    Only high end garmin devices that cost a small fortune like the Virb have more data/precision.

    Devices like the Stryd Pod have a temperature sensor but they do not broadcast/record that data which is a shame and a waste.

  • Thanks for your helpful insight. I had hoped that I could record the Tempe's high precision but it looks unlikely.

  • The ANT+ Environment profile supports transmission of air temperature in the range of -327.67°C to 327.67°C in 0.01°C increments. That very large range is because the data is transmitted as a SINT16 and then a scaled by 100.0f. I am not sure what the sensitivity of the tempe is, but it is at least to a tenth of a degree, which is what you see displayed on the device. That is the ANT+ side of the equation. In the FIT SDK the temperature fields are all SINT8, so -127°C to 127°C in 1°C increments. It is up to the device to either round or floor the value, and I am not sure how each device/manufacturer implements that.

    If you can find a copy of "Wearable Programming For The Active Lifestyle, Using Garmin Connect IQ" ebook by Brian Jepson it has an example CIQ data field project for connecting to an ANT+ Environment sensor, which is what the tempe is, and storing the values as developer fields in the FIT File.

  • I found a source code for the FIT protocol here, in particular the RecordMesg.java file that contains all the temperature recording settings: https://github.com/dgaff/fitsdk/blob/master/java/com/garmin/fit/RecordMesg.java

    Is it possible to modify this code to record temperature to 0.1 degree and load the modified code directly into my watch using Android File Transfer (without going through Garmin Express or Garmin Connect)?

  • On the watch, you can see the temperature with the precision of one tenth of degree without the need to upload any code to the watch. Simply enable an activity data field with the temperature - it is displayed in the format NN.N

  • Yes I know, and that's what I have been doing, but what I was asking was how to modify the FIT protocol so it records the data into the FIT file? Because I don't want to be manually checking the watch and manually writing down data every five minutes for 12 hours in order to monitor the air temperature fluctuations in the room.

  • Yes I know, and that's what I have been doing, but what I was asking was how to modify the FIT protocol so it records the data into the FIT file?

    You cannot change the protocol, but you can use a Connect IQ Simple Data Field recording the temperature with the full precision.