Difference between revisions of "Garmin Foot Pod Calibration"

From Fellrnr.com, Running tips
Jump to: navigation, search
User:Fellrnr (User talk:Fellrnr | contribs)
User:Fellrnr (User talk:Fellrnr | contribs)
Line 1: Line 1:
This is a pair of small Windows utilities that analyzes a run and calculates the appropriate recalibration for your [[Best Running Watch|Garmin]] [[Footpod]]. The software is available as a GUI and a Command Line Interface. Note, this is open source and released under [http://www.gnu.org/licenses/gpl.html GPL].  
+
This is a small Windows utility that analyzes a run and calculates the appropriate recalibration for your [[Best Running Watch|Garmin]] [[Footpod]]. Important note: The Garmin Connect web site is no longer exporting the needed footpod data in the TCX file. I've released a beta version of the utility that will read the raw FIT files.  
==Device Support==
+
=Device Support=
 +
The following devices have been tested.
 
{| class="wikitable"
 
{| class="wikitable"
|+The following devices have been tested.
+
! Device
 +
! Status
 +
! Notes
 
|-
 
|-
!
+
| Garmin 310XT
'''Device'''
+
| Supported
!
+
| Using TCX File
'''Status'''
 
!
 
'''Notes'''
 
 
|-
 
|-
|'''Garmin 310XT'''
+
| Garmin 910XT
|Supported
+
| Supported  
|
+
| Using TCX File
 
|-
 
|-
|'''Garmin 910XT'''
+
| iPhone with iSmoothRun
|Supported
+
| Supported  
|
+
| Using TCX File
 
|-
 
|-
|'''iPhone with iSmoothRun'''
+
| Garmin Fenix 2
|Supported
+
| Supported  
|
+
| Requires Beta for FIT file support.
 
|-
 
|-
|'''Garmin Fenix 2'''
+
| Garmin 620
|Supported  
+
| Supported  
|To convert the FIT file to TCX, upload to Garmin Connect, then export as a TCX file.  
+
| Requires Beta for FIT file support.
 
|-
 
|-
|'''Garmin 620'''
+
| Garmin 610
|Supported  
+
| Supported  
|To convert the FIT file to TCX, upload to Garmin Connect, then export as a TCX file.  
+
| For the calibration run the speed source must be set to [[Footpod]], not GPS. Requires Beta for FIT file support.
 
|-
 
|-
|'''Garmin 610'''
+
| Garmin 210
|Supported  
+
| Supported  
|For the calibration run the speed source must be set to [[Footpod]], not GPS
+
| Requires Beta for FIT file support.
 
|-
 
|-
|'''Garmin 210'''
+
| Garmin 405
|Supported
+
| TCX Unsupported (FIT untested)
|The watch saves a .fit file but you can use the website garmin Connect to export as .tcx.
+
| Does not write any speed or distance information from the [[Footpod]] to the TCX file.  
 
|-
 
|-
|'''Garmin 405'''
+
| Garmin 410
|Unsupported
+
| TCX Unsupported (FIT untested)
|Does not write any speed or distance information from the [[Footpod]] to the TCX file.
+
| Does not write any speed or distance information from the [[Footpod]] to the TCX file.  
 
|-
 
|-
|'''Garmin 410'''
+
| Garmin 305
|Unsupported
+
| TCX Unsupported (FIT untested)
|Does not write any speed or distance information from the [[Footpod]] to the TCX file.
+
| TCX Exports from [[Garmin Connect]] contain what looks like speed data from the [[Footpod]], but it matches the GPS signal perfectly.  
|-
 
|'''Garmin 305'''
 
|Unsupported
 
|Exports from [[Garmin Connect]] contain what looks like speed data from the [[Footpod]], but it matches the GPS signal perfectly.
 
 
|}
 
|}
 
+
=How does it work?=
==How does it work?==
 
 
The Garmin devices record your position along with other data such as [[Heart Rate]] every few seconds. If the [[Footpod]] is active, then the speed according to the [[Footpod]] is also recorded. By looking at each position that is recorded, you can work out how far you've traveled and how long it took. That should be the same as the foodpod speed if the GPS is accurate and [[Footpod]] is calibrated.  
 
The Garmin devices record your position along with other data such as [[Heart Rate]] every few seconds. If the [[Footpod]] is active, then the speed according to the [[Footpod]] is also recorded. By looking at each position that is recorded, you can work out how far you've traveled and how long it took. That should be the same as the foodpod speed if the GPS is accurate and [[Footpod]] is calibrated.  
 
+
==Is this different to a Garmin calibration run?==
===Is this different to a Garmin calibration run?===
 
 
This is using the same principle as the Garmin calibration run, where you tell the Garmin to calibrate and then run about 1 Kilometer. The calibration run is comparing the GPS distance covered with the [[Footpod]] reported speed. The advantage of this utility is that you can use any run to check the calibration and you can run much further.
 
This is using the same principle as the Garmin calibration run, where you tell the Garmin to calibrate and then run about 1 Kilometer. The calibration run is comparing the GPS distance covered with the [[Footpod]] reported speed. The advantage of this utility is that you can use any run to check the calibration and you can run much further.
 
+
==Flaws in the approach==
===Flaws in the approach===
 
 
The biggest flaw in the approach is that it relies on the GPS signal, and GPS is not that accurate itself. If you do not have a GPS signal, such as a [[Treadmill|treadmill]] run, then there is no calibration possible and this utility will show that no calibration can be automatically performed. That is because the Garmin recorded data is based on the [[Footpod]], so it's calibrating the [[Footpod]] against itself.  
 
The biggest flaw in the approach is that it relies on the GPS signal, and GPS is not that accurate itself. If you do not have a GPS signal, such as a [[Treadmill|treadmill]] run, then there is no calibration possible and this utility will show that no calibration can be automatically performed. That is because the Garmin recorded data is based on the [[Footpod]], so it's calibrating the [[Footpod]] against itself.  
 
+
==Getting the best data==
===Getting the best data===
 
 
The best run to use for calibration is a run that has the most accurate GPS data. That will be a run that is reasonably straight, as twists and turns tend to reduce the [[GPS Accuracy|GPS accuracy]]. A good view of a clear sky can also help a little.  
 
The best run to use for calibration is a run that has the most accurate GPS data. That will be a run that is reasonably straight, as twists and turns tend to reduce the [[GPS Accuracy|GPS accuracy]]. A good view of a clear sky can also help a little.  
===Is there a better way?===
+
==Is there a better way?==
 
A better approach would be to run a known distance, either on a track or using a known course and calibrate against that known value. The GUI version allows this type of adjustment.   
 
A better approach would be to run a known distance, either on a track or using a known course and calibrate against that known value. The GUI version allows this type of adjustment.   
 
+
=Frequently Asked Questions=
==Frequently Asked Questions==
+
* Why do I see [[Footpod]] data when I'm not wearing the [[Footpod]]?
* Why do I see [[Footpod]] data when I'm not wearing the [[Footpod]]?  
+
** The Garmin will record [[Footpod]] data if you have the watch set so that the [[Footpod]] is active, even if you're not wearing the [[Footpod]] at the time. This is a bit odd, but there's no way of detecting if the [[Footpod]] data is real or fake, though the calibration value is normally very close (within a fraction of a percent), with just rounding error discrepancies.
** The Garmin will record [[Footpod]] data if you have the watch set so that the [[Footpod]] is active, even if you're not wearing the [[Footpod]] at the time. This is a bit odd, but there's no way of detecting if the [[Footpod]] data is real or fake, though the calibration value is normally very close (within a fraction of a percent), with just rounding error discrepancies.  
 
 
* Why is the 'actual distance' different from what I ran?
 
* Why is the 'actual distance' different from what I ran?
 
** The 'actual distance' field is updated based on 'good data', and ignores data where the [[Footpod]] and the GPS are wildly different.
 
** The 'actual distance' field is updated based on 'good data', and ignores data where the [[Footpod]] and the GPS are wildly different.
==Installation==
+
=Installation=
* Download the GUI executable from http://fellrnr.com//Utilities/CalibrateFootPod/GarminFootpodCalibration.exe
+
* Download the GUI executable from [http://fellrnr.com//Utilities/CalibrateFootPod/GarminFootpodCalibration.exe http://fellrnr.com//Utilities/CalibrateFootPod/GarminFootpodCalibration.exe]
** You can also download the command line executable from http://fellrnr.com//Utilities/CalibrateFootPod/GarminFootpodCalibrationCLI.exe
+
* Download the Beta, which supports FIT files from [http://fellrnr.com//Utilities/CalibrateFootPod/GarminFootpodCalibration_beta.exe http://fellrnr.com//Utilities/CalibrateFootPod/GarminFootpodCalibration_beta.exe]
 
* Check the executable for viruses ([[Trust No One]]!)
 
* Check the executable for viruses ([[Trust No One]]!)
 
 
There is no further installation ;}
 
There is no further installation ;}
 
+
=Gathering the data=
== Gathering the data==
 
 
This utility does not require a special calibration run to gather data. Any run with your Garmin 310XT and Foot Pod enabled will provide the data needed. Running at a steady pace will provide good data. If you take [[Walking Breaks]], this will tend to produce a lot of variability.  
 
This utility does not require a special calibration run to gather data. Any run with your Garmin 310XT and Foot Pod enabled will provide the data needed. Running at a steady pace will provide good data. If you take [[Walking Breaks]], this will tend to produce a lot of variability.  
 
+
=Online Version=
==Online Version==
 
 
My code has been ported to an online version at http://dashr.net:4000. However, this version is not always available.  
 
My code has been ported to an online version at http://dashr.net:4000. However, this version is not always available.  
 
+
=User Guide=
==GUI Version==
 
 
* Run the executable (GarminFootpodCalibration.exe).
 
* Run the executable (GarminFootpodCalibration.exe).
* On startup it will look for the history files transferred for the Garmin Ant Agent.
+
* If you click on the "Open History Files…" it will look for the history files transferred for the Garmin Ant Agent and you will see a screen similar to the one below.
===Easy Mode===
 
* On startup, you should see a screen similar to the one below
 
 
[[File:EasyMode.jpg]]
 
[[File:EasyMode.jpg]]
* Use the tree view on the left to select the file you are interested in. You can expand a file with laps to view each lap seperately.
+
* If you have the TCX or FIT file, you can open them directly.
 +
* Use the tree view on the left to select the file you are interested in. You can expand a file with laps to view each lap separately.
 
* Entering your current calibration factor will show a new calibration factor you can enter based on the selected exercise or lap.
 
* Entering your current calibration factor will show a new calibration factor you can enter based on the selected exercise or lap.
 
* If you know the distance you ran, such as a marked course or a treadmill, you can enter that value for a more accurate calibration.
 
* If you know the distance you ran, such as a marked course or a treadmill, you can enter that value for a more accurate calibration.
 
* Hovering the mouse will produce extra help.
 
* Hovering the mouse will produce extra help.
 
* You can load a file that has been exported from [[Garmin Training Center]] (see below) using the File, Open menu.
 
* You can load a file that has been exported from [[Garmin Training Center]] (see below) using the File, Open menu.
* The graphs give a visual representation of the calibration data.  
+
* The graphs give a visual representation of the calibration data.
 
** The top graph is the distance recorded by GPS and the [[Footpod]]. The values vary, as the Garmin does not record at even intervals,
 
** The top graph is the distance recorded by GPS and the [[Footpod]]. The values vary, as the Garmin does not record at even intervals,
** The bottom graph is the scaling factor. The horizontal lines show the average and the standard deviations.  
+
** The bottom graph is the scaling factor. The horizontal lines show the average and the standard deviations.
===Expert Mode===
+
==Expert Mode==
* Clicking on the 'Expert Mode' check box gives more detail and more options.  
+
* Clicking on the 'Expert Mode' check box gives more detail and more options.
 
[[File:ExpertMode.jpg]]
 
[[File:ExpertMode.jpg]]
 
+
=Support=
==Command Line Version==
 
===Garmin Training Center===
 
* Transfer the record of the run to [[Garmin Training Center]].
 
* Export the record of the run from [[Garmin Training Center]] as a 'TCX' file.
 
* Run the executable ParseTCX.exe passing the full path to the TCX file as a parameter.
 
** Open a windows explorer window and navigate to the folder with the TCX file.
 
** Right click on the TCX file and select "Open With..." then "Choose Program..."
 
** Click on "Browse..." and navigate to where you downloaded ParseTCX.exe from.
 
** I would recommend checking the box "Always use the selected program to open this kind of file" so that you can just double click on the TCX file in the future.
 
** Click OK
 
* A command window should open and print out a lot of data. At the end you should have a line that says "Multiply your current calibration factor by N" where N is the scaling factor.
 
* On your Garmin, multiply your current calibration factor by this new scale. So if your scale is currently 990 and the calibration factor is 0.94255403, the new scale will be 933.
 
===Garmin Ant Agent===
 
* Transfer the record of the run using the Ant Agent.
 
* Run the executable ParseTCX.exe with no parameters. The utility will try to find the store of TCX files that the Ant Agent uses.
 
** On XP this is under C:\Documents and Settings\<username>\Application Data\GARMIN\Devices\<device number>\History".
 
** On Windows 7 this is under C:\Documents and Settings\<username>\AppData\Roaming\GARMIN\Devices\<device number>\History"
 
* A command window should open and print out a scaling factor for each file it finds. 
 
* On your Garmin, multiply your current calibration factor by one of the new scaling factors. So if your scale is currently 990 and the calibration factor is 0.94255403, the new scale will be 933.
 
===Example Output===
 
====All Ant Agent Files====
 
<pre>
 
Version 2.0
 
2011-02-03-063813.TCX Looks like data from cycling not running
 
2011-02-04-071012.TCX filtered calibration factor adjustment 0.9807 (stddev 0.0964)
 
2011-02-04-071012.TCX raw calibration factor adjustment 0.8722 (stddev 0.2023)
 
2011-02-05-075131.TCX filtered calibration factor adjustment 0.9856 (stddev 0.0945)
 
2011-02-05-075131.TCX raw calibration factor adjustment 0.9811 (stddev 0.1393)
 
2011-02-06-115537.TCX Looks like data from cycling not running
 
2011-02-07-065800.TCX filtered calibration factor adjustment 0.9855 (stddev 0.067)
 
2011-02-07-065800.TCX raw calibration factor adjustment 0.983 (stddev 0.0907)
 
Press return to continePress return to contine
 
</pre>
 
====Single File====
 
<pre>
 
Version 2.0
 
Per Lap Scaling
 
===============
 
lap average scale 0.9755
 
lap average scale 0.9924
 
lap average scale 0.9866
 
lap average scale 0.9797
 
lap average scale 0.9755
 
lap average scale 0.9976
 
lap average scale 0.9974
 
lap average scale 0.9877
 
lap average scale 1.0025
 
lap average scale 0.99
 
lap average scale 0.9705
 
lap average scale 0.983
 
lap average scale 0.9553
 
lap average scale 0.9778
 
lap average scale 0.9967
 
lap average scale 1.002
 
lap average scale 0.9606
 
lap average scale 0.9907
 
lap average scale 0.9837
 
lap average scale 0.9929
 
lap average scale 0.9972
 
lap average scale 0.9843
 
 
 
Details
 
=======
 
Filtered Average scale    0.9855, 98.5455%
 
  Standard Deviation scale 0.067, 6.6979%
 
  Scale+stddev            1.0524, 105.24%
 
  Scale-stddev            0.9185, 91.85%
 
Raw Average scale          0.983, 98.3044%
 
  Standard Deviation scale 0.0907, 9.0679%
 
  Scale+stddev            1.0737, 107.37%
 
  Scale-stddev            0.8924, 89.24%
 
 
 
Calibration Instructions
 
========================
 
 
 
Multiply your current calibration factor by 0.983
 
 
 
Press return to continue
 
</pre>
 
==Support==
 
 
As always [[Contact Me]] if you have a problem and I will try to help. Emailing me the TCX file helps debug any issues.   
 
As always [[Contact Me]] if you have a problem and I will try to help. Emailing me the TCX file helps debug any issues.   
 
You can also download the source code from http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX.zip
 
You can also download the source code from http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX.zip
 
+
==The Application Failed to Initialize Properly (0cx0000135)==
===The Application Failed to Initialize Properly (0cx0000135)===
 
 
If you get this message, it is probable that you don't have the .NET framework version 2.0 installed. Version 2.0 has been around a long time, and most users should have it available; I've only had this error reported once by a someone using an XP partition on a Mac.  
 
If you get this message, it is probable that you don't have the .NET framework version 2.0 installed. Version 2.0 has been around a long time, and most users should have it available; I've only had this error reported once by a someone using an XP partition on a Mac.  
 
+
The first thing to check is that you're running a version of XP with at least service pack 2 installed, preferably 3. If you go to control panel, then system, the general tab should have "service pack X" shown. If you don't have SP2 or SP3, windows update should handle the upgrade for you.  
The first thing to check is that you’re running a version of XP with at least service pack 2 installed, preferably 3. If you go to control panel, then system, the general tab should have "service pack X" shown. If you don’t have SP2 or SP3, windows update should handle the upgrade for you.  
 
 
 
If you have SP2 or SP3, you can download .NET 2.0 and the updates for .NET 2.0 SP2 from http://msdn.microsoft.com/en-us/netframework/aa731542
 
If you have SP2 or SP3, you can download .NET 2.0 and the updates for .NET 2.0 SP2 from http://msdn.microsoft.com/en-us/netframework/aa731542
 
+
=Change log=
==Change log==
+
* V3.0 Beta
 +
** Support FIT Files.
 
* V2.7
 
* V2.7
** Get iRunSmooth support right this time.  
+
** Get iRunSmooth support right this time.
 
* V2.6
 
* V2.6
 
** Fix build bug in 2.5.
 
** Fix build bug in 2.5.
Line 226: Line 130:
 
** Initial release
 
** Initial release
 
** Available as http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX_1.0.exe and http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX_1.0.zip
 
** Available as http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX_1.0.exe and http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX_1.0.zip
 +
[[Category:Software]]

Revision as of 09:42, 31 March 2015

This is a small Windows utility that analyzes a run and calculates the appropriate recalibration for your Garmin Footpod. Important note: The Garmin Connect web site is no longer exporting the needed footpod data in the TCX file. I've released a beta version of the utility that will read the raw FIT files.

1 Device Support

The following devices have been tested.

Device Status Notes
Garmin 310XT Supported Using TCX File
Garmin 910XT Supported Using TCX File
iPhone with iSmoothRun Supported Using TCX File
Garmin Fenix 2 Supported Requires Beta for FIT file support.
Garmin 620 Supported Requires Beta for FIT file support.
Garmin 610 Supported For the calibration run the speed source must be set to Footpod, not GPS. Requires Beta for FIT file support.
Garmin 210 Supported Requires Beta for FIT file support.
Garmin 405 TCX Unsupported (FIT untested) Does not write any speed or distance information from the Footpod to the TCX file.
Garmin 410 TCX Unsupported (FIT untested) Does not write any speed or distance information from the Footpod to the TCX file.
Garmin 305 TCX Unsupported (FIT untested) TCX Exports from Garmin Connect contain what looks like speed data from the Footpod, but it matches the GPS signal perfectly.

2 How does it work?

The Garmin devices record your position along with other data such as Heart Rate every few seconds. If the Footpod is active, then the speed according to the Footpod is also recorded. By looking at each position that is recorded, you can work out how far you've traveled and how long it took. That should be the same as the foodpod speed if the GPS is accurate and Footpod is calibrated.

2.1 Is this different to a Garmin calibration run?

This is using the same principle as the Garmin calibration run, where you tell the Garmin to calibrate and then run about 1 Kilometer. The calibration run is comparing the GPS distance covered with the Footpod reported speed. The advantage of this utility is that you can use any run to check the calibration and you can run much further.

2.2 Flaws in the approach

The biggest flaw in the approach is that it relies on the GPS signal, and GPS is not that accurate itself. If you do not have a GPS signal, such as a treadmill run, then there is no calibration possible and this utility will show that no calibration can be automatically performed. That is because the Garmin recorded data is based on the Footpod, so it's calibrating the Footpod against itself.

2.3 Getting the best data

The best run to use for calibration is a run that has the most accurate GPS data. That will be a run that is reasonably straight, as twists and turns tend to reduce the GPS accuracy. A good view of a clear sky can also help a little.

2.4 Is there a better way?

A better approach would be to run a known distance, either on a track or using a known course and calibrate against that known value. The GUI version allows this type of adjustment.

3 Frequently Asked Questions

  • Why do I see Footpod data when I'm not wearing the Footpod?
    • The Garmin will record Footpod data if you have the watch set so that the Footpod is active, even if you're not wearing the Footpod at the time. This is a bit odd, but there's no way of detecting if the Footpod data is real or fake, though the calibration value is normally very close (within a fraction of a percent), with just rounding error discrepancies.
  • Why is the 'actual distance' different from what I ran?
    • The 'actual distance' field is updated based on 'good data', and ignores data where the Footpod and the GPS are wildly different.

4 Installation

There is no further installation ;}

5 Gathering the data

This utility does not require a special calibration run to gather data. Any run with your Garmin 310XT and Foot Pod enabled will provide the data needed. Running at a steady pace will provide good data. If you take Walking Breaks, this will tend to produce a lot of variability.

6 Online Version

My code has been ported to an online version at http://dashr.net:4000. However, this version is not always available.

7 User Guide

  • Run the executable (GarminFootpodCalibration.exe).
  • If you click on the "Open History Files…" it will look for the history files transferred for the Garmin Ant Agent and you will see a screen similar to the one below.

EasyMode.jpg

  • If you have the TCX or FIT file, you can open them directly.
  • Use the tree view on the left to select the file you are interested in. You can expand a file with laps to view each lap separately.
  • Entering your current calibration factor will show a new calibration factor you can enter based on the selected exercise or lap.
  • If you know the distance you ran, such as a marked course or a treadmill, you can enter that value for a more accurate calibration.
  • Hovering the mouse will produce extra help.
  • You can load a file that has been exported from Garmin Training Center (see below) using the File, Open menu.
  • The graphs give a visual representation of the calibration data.
    • The top graph is the distance recorded by GPS and the Footpod. The values vary, as the Garmin does not record at even intervals,
    • The bottom graph is the scaling factor. The horizontal lines show the average and the standard deviations.

7.1 Expert Mode

  • Clicking on the 'Expert Mode' check box gives more detail and more options.

ExpertMode.jpg

8 Support

As always Contact Me if you have a problem and I will try to help. Emailing me the TCX file helps debug any issues. You can also download the source code from http://fellrnr.com//Utilities/CalibrateFootPod/ParseTCX.zip

8.1 The Application Failed to Initialize Properly (0cx0000135)

If you get this message, it is probable that you don't have the .NET framework version 2.0 installed. Version 2.0 has been around a long time, and most users should have it available; I've only had this error reported once by a someone using an XP partition on a Mac. The first thing to check is that you're running a version of XP with at least service pack 2 installed, preferably 3. If you go to control panel, then system, the general tab should have "service pack X" shown. If you don't have SP2 or SP3, windows update should handle the upgrade for you. If you have SP2 or SP3, you can download .NET 2.0 and the updates for .NET 2.0 SP2 from http://msdn.microsoft.com/en-us/netframework/aa731542

9 Change log