Difference between revisions of "Garmin Foot Pod Calibration"

From Fellrnr.com, Running tips
Jump to: navigation, search
User:Fellrnr (User talk:Fellrnr | contribs)
(Change log)
User:Fellrnr (User talk:Fellrnr | contribs)
(Change log)
Line 189: Line 189:
  
 
==Change log==
 
==Change log==
 +
* V2.7
 +
** Get iRunSmooth support right this time.
 
* V2.6
 
* V2.6
 
** Fix build bug in 2.5.
 
** Fix build bug in 2.5.

Revision as of 17:13, 3 May 2014

This is a pair of small Windows utilities that analyzes a run and calculates the appropriate recalibration for your Garmin Footpod. The software is available as a GUI and a Command Line Interface. Note, this is open source and released under GPL.

1 Device Support

The following devices have been tested.

Device

Status

Notes

Garmin 310XT Supported
Garmin 910XT Supported
iPhone with iSmoothRun Supported
Garmin Fenix 2 Supported To convert the FIT file to TCX, upload to Garmin Connect, then export as a TCX file.
Garmin 620 Supported To convert the FIT file to TCX, upload to Garmin Connect, then export as a TCX file.
Garmin 610 Supported For the calibration run the speed source must be set to Footpod, not GPS
Garmin 405 Unsupported Does not write any speed or distance information from the Footpod to the TCX file.
Garmin 410 Unsupported Does not write any speed or distance information from the Footpod to the TCX file.
Garmin 305 Unsupported 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 GUI Version

  • Run the executable (GarminFootpodCalibration.exe).
  • On startup it will look for the history files transferred for the Garmin Ant Agent.

7.1 Easy Mode

  • On startup, you should see a screen similar to the one below

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.
  • 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.2 Expert Mode

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

ExpertMode.jpg

8 Command Line Version

8.1 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.

8.2 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.

8.3 Example Output

8.3.1 All Ant Agent Files

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

8.3.2 Single File

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

9 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

9.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

10 Change log