is the auto-calibration event or just calibration factor in general for the FOOTPOD stored anywhere in the ACTIVITY fit file?

I cannot seem to find the calibration for the footpod in any activity FIT file, maybe I am looking badly and it is using a multiplier I cannot guess?

Or is it only stored in the watch itself for the ANT+ device and never copied to the activity?

Because that would be incredibly frustrating.

I've been watch the calibration factor for my Stryd and it goes up and down on every run, which should not happen, it's obviously GPS drift.

It typically ranges from 102.5 to 102.9  which doesn't sound like much but it adds up over long distance.

Garmin if an auto-calibration event does not exist in activity files, please consider adding one even undocumented.

https://support.garmin.com/en-US/?faq=IldN9X76LJ0N9MCG0CivpA

  • wait wait, I found it, not sure how I've missed it before the few times I looked

    there's no event when it auto-calibrates but the starting calibration is stored 

    it is before all the 1-second records so I have to assume it is the PREVIOUS auto-calibration?

    unless the entire FIT file and records are written after the activity with the newly detected calibration, it was 102.7 yesterday so the 102.6 today is new

    it's under the sensor, message 11, undocumented

    the 1026 / 10 = 102.6

    sensor (147, type: 11, length: 156 bytes):
    sensor_id (2-16-STRING): "strydANT"
    message_index (254-1-UINT16): selected=0,reserved=0,mask=1 (1)
    unknown11 (11-1-UINT16): 1026

    now would anyone know which of these undocumented messages indicates it is a footpod?

    unknown32 (32-1-UINT16): 4660
    unknown34 (34-1-UINT16): 10
    xxx73 (73-1-UINT16Z): 1
    xxx85 (85-1-UINT16): 10000
    unknown1 (1-1-UINT8): 0
    unknown3 (3-1-ENUM): 1
    xxx24 (24-1-ENUM): 1
    xxx45 (45-1-ENUM): 0
    xxx46 (46-1-ENUM): 2
    xxx51 (51-1-ENUM): 0
    xxx52 (52-1-ENUM): 2
    xxx86 (86-1-ENUM): 1

  • Great find . Works also with other footpods beside Stryd.

  • I bet is

    xxx52 (52-1-ENUM): 2

    Adidas Speed Cell FP

    = TYPE=11 NAME=sensor NUMBER=147
    --- sensor_id="SPEED_CELL"
    --- message_index=9=selected=0,reserved=0,mask=9
    --- unknown11=1000=1000
    --- xxx73=2=2
    --- unknown3=1=1
    --- xxx24=1=1
    --- xxx45=1=1
    --- xxx46=1=1
    --- xxx50=230=230,174,232,36,0,224
    --- xxx51=1=1
    --- xxx52=2=2
    --- xxx53=1=1

    ==

    Stryd 1Gen FP

    ==
    = TYPE=11 NAME=sensor NUMBER=147
    --- unknown0=92014083=92014083
    --- sensor_id="Stryd FP"
    --- message_index=3=selected=0,reserved=0,mask=3
    --- unknown11=1000=1000
    --- unknown32=4660=4660
    --- unknown34=100=100
    --- unknown1=0=0
    --- unknown3=1=1
    --- xxx24=1=1
    --- xxx45=2=2
    --- xxx46=2=2
    --- xxx51=0=0
    --- xxx52=2=2
    ==

    Stryd Air FP

    = TYPE=13 NAME=sensor NUMBER=147
    --- unknown0=92043839=92043839
    --- sensor_id="Stryd"
    --- message_index=0=selected=0,reserved=0,mask=0
    --- unknown11=1012=1012
    --- unknown32=4660=4660
    --- unknown34=10=10
    --- xxx73=1=1
    --- unknown1=0=0
    --- unknown3=1=1
    --- xxx24=0=0
    --- xxx45=2=2
    --- xxx46=2=2
    --- xxx51=0=0
    --- xxx52=2=2

  • xxx52=0=0 HR

    xxx52=1=1 Bike CAD

    xxx52=2=2 FP

    xxx52=3=3 Pwr

    xxx52=4=4 Bike SPD

    xxx52=6=6 temp

    xxx52=10=10 Edge Remote

    xxx52=12=12 Fec

    xxx52=13=13 Bike Light Main

    xxx52=14=14 Bike Radar

    xxx52=17=17 Muscle Oxygen

    xxx52=16=16 Bike Shifting

  • Very helpful list, thanks.

    I'll have to go through mine and look for the HRM-Pro-Plus where it can act like a footpod, I fiddled with that for awhile before I disabled it for being too inaccurate compared to Stryd pod.

    (I also have that same "speed cell pod" from a decade ago too, did you know it's made by dynastream which makes many sensors for Garmin)

    I'll just add to this thread something very vaguely related where Fellrnr has made a neat comparison/calibration tool that attempts to look at GPS distance vs footpod reported distance to estimate calibration factor. It is very old and the FIT import doesn't work but if you export TCX from garmin connect it can analyze that.

    I see some conceptual errors or improvements on what Fellrnr did so I might try to write a better modern one myself at some point.

    fellrnr.com/.../Garmin_Foot_Pod_Calibration

  • I see some conceptual errors or improvements on what Fellrnr did so I might try to write a better modern one myself at some poin
  • That would be awesome, and if you read  CFdirectly from fit file, better yet.

  • To get CF from fit file, if i am not wrong you have to:

    Search the active foot pod in device_info     (NAME=device_info NUMBER=23)
    --- device_index=4=speed
    --- antplus_device_type=124=stride_speed_distance
    Fetch de index (unknown24)
    --- unknown24=92043839=92043839
    Search paired sensors    (NAME=sensor NUMBER=147) using  92043839=92043839
    Fetch CF -- unknown11=1012=1012

    = TYPE=7 NAME=device_info NUMBER=23
    --- timestamp=1094452144=2024-09-05T06:29:04Z
    --- serial_number=2574285375=2574285375
    --- cum_operating_time=0=0 s
    --- unknown15=1=1
    --- unknown24=92043839=92043839
    --- manufacturer=95=stryd
    --- product=4660=4660
    --- software_version=10=0.10
    --- battery_voltage=0=0.00 V
    --- device_index=4=speed
    --- antplus_device_type=124=stride_speed_distance
    --- hardware_version=1=1
    --- ant_network=1=antplus
    --- source_type=1=antplus

    = TYPE=13 NAME=sensor NUMBER=147
    --- unknown0=92043839=92043839
    --- sensor_id="Stryd"
    --- message_index=0=selected=0,reserved=0,mask=0
    --- unknown11=1012=1012
    --- unknown32=4660=4660
    --- unknown34=10=10
    --- xxx73=1=1
    --- unknown1=0=0
    --- unknown3=1=1
    --- xxx24=0=0
    --- xxx45=2=2
    --- xxx46=2=2
    --- xxx51=0=0
    --- xxx52=2=2