{Activity,Position,Sensor}.Info :altitude change ?

Hello,

I just updated my D2 Charlie to firmware 5.00 (CIQ 3.0.1).
Has anything changed in regards with the :altitude field when accessed through Activity, Position or Sensor.Info ?
PS: Maybe the issue at hand was already present in firmware 4.20 (given the known elevation issues raised in the forums), although I pinpoint it only now

When I use the Garmin Altimeter Widget, I read a (Calibrated) altitude of, say, 400m.
When I use the Garmin FLY App, configured for Pressure Altimeter, I read an altitude identical to the Garmin Altimeter Widget
When I use the ConnectIQ GPS Metrics Widget, I read an altitude matching the two former (I don't know what Toyboy source it's using though)
When I use my GliderSK App, I read an altitude of 445m, taken from Position.Info :altitude.

No going back-and-forth from the aforementioned widgets/apps changes anything.

Has anyone experienced the same discrepancy ?
Are all three Activity, Position or Sensor.Info :altitude source still supposed to give the same reading, namely "Elevation is derived from the most accurate source: Barometer or GPS in order of descending accuracy. If no GPS is present, then barometer readings will be used" ?

Also, when reading about Activity.Info :ambientPressure, I see a mention of "The data is smoothed by a two-stage filter to reduce noise and instantaneous variation".
This sounds strangely close to the numerous reports, in the Wrist-Worn section, about Altitude readings being delayed and smoothed.
This is obvious in one of my activity: https://connect.garmin.com/modern/activity/2900207608 ; enlarging the elevation graph and looking closely at time 1:35:30, one can see the altitude reading obviously switched from one "mode" to another.
Do you ConnectIQ guys would see some explanation to that change ?

Regards
  • Took the time to add some debug statements (in Sensor.enableSensorEvents and Position.enableLocationEvents callbacks); app compiled with SDK 2.4.9:

    [app start; waiting for GPS]
    DEBUG: (Sensor.Info) altitude = 417.529785
    DEBUG: (Sensor.Info) altitude = 417.529785
    DEBUG: (Sensor.Info) altitude = 417.567108
    DEBUG: (Sensor.Info) altitude = 417.679077
    DEBUG: (Sensor.Info) altitude = 417.800385
    DEBUG: (Sensor.Info) altitude = 417.856384
    DEBUG: (Sensor.Info) altitude = 417.921692
    DEBUG: (Sensor.Info) altitude = 417.949677
    DEBUG: (Sensor.Info) altitude = 417.996338
    DEBUG: (Sensor.Info) altitude = 418.108307
    DEBUG: (Sensor.Info) altitude = 418.238922
    DEBUG: (Sensor.Info) altitude = 418.192261
    DEBUG: (Sensor.Info) altitude = 418.126953
    [GPS signal acquired]
    DEBUG: (Position.Info) altitude = 491.736786
    DEBUG: (Sensor.Info) altitude = 417.931030
    DEBUG: (Position.Info) altitude = 477.134277
    DEBUG: (Sensor.Info) altitude = 417.940338
    DEBUG: (Position.Info) altitude = 471.339905
    DEBUG: (Sensor.Info) altitude = 417.959015
    [about 1 min. later]
    DEBUG: (Sensor.Info) altitude = 419.004059
    DEBUG: (Position.Info) altitude = 479.737518
    DEBUG: (Position.Info) altitude = 479.933472
    DEBUG: (Sensor.Info) altitude = 419.022705
    DEBUG: (Sensor.Info) altitude = 419.125336
    DEBUG: (Position.Info) altitude = 479.933472


    The results speak for themselves.
    PS: Sensor.Info returns the Altimeter Widget altitude (Calibrated, based on known correct altitude). I don't know what Position.Info returns, but it's way off. Even weirder, when one "Use GPS" to Calibrate the Altimeter Widget, altitude is not that of Position.Info (which one could expect to be the GPS altitude, given it's clearly not the barometric elevation)

    Having this cleared out and the documentation updated would help.
  • For those interested, attached the plotted data resulting from Position, Sensor and Activity altitude and pressure data, captured using my RawLogger application ( https://github.com/cedric-dufour/connectiq-app-rawlogger ; hopefully soon to be published in the Garmin Store) and extracted from the FIT file using the FIT SDK. The "EnhancedAltitude" field is the altitude as recorded by default by Garmin into any FIT file (independently for any additional "FitContributed" fields).
    Again, this is taken from my D2 Charlie running FW 5.0.0, CIQ 3.0.1. There was no difference between Position and Sensor/Activity data when running FW 4.2.0 / CIQ 2.4.x.
    This can also witnessed in the simulator, using SDK 3.0.1 or SDK 2.4.9.community.garmin.com/.../1396982.png
  • Hypothesis 1: Position.Info.altitude now is GPS height (WGS84 ellipsoid model), *non* corrected for the actual geoid undulation (which is about ~50m at my location, according to EGM96).