Acknowledged
CIQQA-3459

bug: no way to set elevation unit on vivoactive 5

This probably should also be reported in the vivoactive 5 forum, but since that's not monitored by Garmin employees, I'll try here.

A user of one of my apps reported that they can't change the elevation unit from feet to meters. I told them to do it in the system settings (my app uses DeviceSettings.elevationUnits). But it turns out that Garmin left that possibility out from vivoactive 5.

The only settings (both on-watch and via Garmin Connect) are:
distance, weight, height, temperature, pressure.

Note, it's not a mistake, it's height, with cm or inches, and not elevation or altitude that's supposed to be meters or feet.

This is vivoactive 5 with FW version 14.15

Yes, there's no barometer in va5, but it doesn't matter, because the watch displays the correct elevation based on GPS, just in feet.

See also: https://forums.garmin.com/sports-fitness/healthandwellness/f/vivoactive-5-series/418980/bug-no-way-to-set-elevation-unit-on-vivoactive-5

Parents
  • TL;DR I don't think this is a bug at all, it think it's an intentional design decision by Garmin which - unless I'm mistaken - matches the reality that there is no built-in user-visible elevation data for VA5 at all on the device itself (e.g. no elevation, total ascent or total descent fields). If anything, the real bug is that DeviceSettings.elevationUnits is still available / non-null for devices without a baro (and without the elevation units setting).

    If it was me I would just use Activity.Info has ambientPressure to detect the presence of a baro. If no baro is present, then provide an elevation units setting. Ofc if you support "off-device" setting in Connect, you would have to evaluate this at build-time by checking *.api.debug.xml in the devices folder

    ---

    Yes, there's no barometer in va5, but it doesn't matter, because the watch displays the correct elevation based on GPS, just in feet.

    Could you please clarify what you mean by "the watch displays...elevation"? 

    In my experience, watches without a baro don't expose elevation-related data fields for native activities, such as elevation, total ascent, total descent, etc.

    Yes, GPS elevation is still recorded by the device and made available via the Connect IQ API. But typically these non-baro watches will hide elevation-related data during an activity, presumably to avoid user complaints of bad data.

    For example, I have Total Ascent and Elevation Change data fields in the store which simply display total ascent (from the API) and total ascent - total descent (both from the API). Even though I tried to make it clear that the data comes from Garmin's API and it's not to be trusted because it's based on GPS elevation, I still get complaints that the data is bad. These are literally my worst-rated apps. So it isn't surprising to me that Garmin chooses to hide all elevation-related data on the device itself, and only shows elevation data in Connect, because Connect is able to correct this data after the fact.

    So if you meant that the watch displays elevation in your app because the API provides it, that wasn't 100% obvious from what you said. Just because your app is able to retrieve the GPS elevation from the API (just like all devices which don't have a baro), doesn't mean the watch normally displays elevation.

    If you mean that VA5 shows elevation in some other context (data field, glance), then I would be surprised, and I would also say that the manual needs some updating. 

    Compare the data field appendix in the manuals for various devices:

    FR955 - has baro (whole section for elevation-related fields): https://www8.garmin.com/manuals/webhelp/GUID-9D99A9D4-467A-4F1A-A0EA-023184FEA3DD/EN-US/GUID-73BCE454-042E-420D-96A4-9DBA46626CD4.html 

    VA5 - no baro (no elevation fields): https://www8.garmin.com/manuals/webhelp/GUID-5D183A14-BB43-4A9B-B441-5F824214CE40/EN-US/GUID-252F74B6-C24B-495B-8E73-4BD595CA7FE3.html

    VA4 - has baro (has elevation, total ascent and total descent fields): https://www8.garmin.com/manuals/webhelp/vivoactive4_4S/EN-US/GUID-252F74B6-C24B-495B-8E73-4BD595CA7FE3.html 

    In fact the word "elevation" only appears in the VA5 manual once, in reference to unit settings (ironically). But it's just some generic text that they copied from manual to manual:

    www8.garmin.com/.../GUID-1C27C7A0-27EE-41C0-8B50-ED8F6D6DB2DE.html

    "You can customize units of measure for distance, pace and speed, elevation, and more."

    The only reference to "altitude" is in a description of the pulse oximeter.

    Yes, there's no barometer in va5, but it doesn't matter, because the watch displays the correct elevation based on GPS, just in feet.

    Going back to this statement, what I think you really meant to say is:

    "Yes, there's no barometer in va5, but it doesn't matter, because my app displays the correct elevation based on GPS, just in feet, because my app uses DeviceSettings.elevationUnits."

    When you say "the watch" without qualification, it implies that you mean built-in Garmin software that runs on the watch. When you say "just in feet" without qualification, this implies that it's completely unavoidable and out of your control - but it isn't, you would just have to provide your own elevation units setting.

    And let's revisit the title: "bug: no way to set elevation unit on vivoactive 5"

    Let me state the obvious here:

    - Garmin obviously removed elevation units on purpose for VA5 (just like they did for every device without a baro)

    - Unless I'm mistaken, VA5 users have no way of looking at any elevation-related data from built-in apps on the device

    - From Garmin's POV this isn't a bug

    - Before you protest that Garmin makes this data available to CIQ apps therefore it should expose the related setting:

    - Garmin has a long track record of not caring about CIQ apps (and/or not coordinating decisions between the device team and the CIQ team)

    - What would users say if they saw an elevation units setting in the UI, but 0 built-in elevation related data fields or glances? They would think that either the presence of the setting is a bug, or the lack of the built-in elevation fields is a bug

    Perhaps the real bug is the fact that the CIQ API lacks the ability to remove DeviceSettings.elevationUnits for devices which do not support this setting. If it did, you could just use a has check to determine whether you need to provide this setting in your own app or not.

    What you could do:

    - Provide an elevation units setting regardless of watch type: I guess it would have to have the following options: feet, metres, auto (use system settings)

    - Provide an elevation units setting only for devices without a baro. One way to detect a baro would be to check if Activity.Info has ambientPressure. Note that the supported devices list for ambientPressure lacks VA5.:

    developer.garmin.com/.../Info.html

Comment
  • TL;DR I don't think this is a bug at all, it think it's an intentional design decision by Garmin which - unless I'm mistaken - matches the reality that there is no built-in user-visible elevation data for VA5 at all on the device itself (e.g. no elevation, total ascent or total descent fields). If anything, the real bug is that DeviceSettings.elevationUnits is still available / non-null for devices without a baro (and without the elevation units setting).

    If it was me I would just use Activity.Info has ambientPressure to detect the presence of a baro. If no baro is present, then provide an elevation units setting. Ofc if you support "off-device" setting in Connect, you would have to evaluate this at build-time by checking *.api.debug.xml in the devices folder

    ---

    Yes, there's no barometer in va5, but it doesn't matter, because the watch displays the correct elevation based on GPS, just in feet.

    Could you please clarify what you mean by "the watch displays...elevation"? 

    In my experience, watches without a baro don't expose elevation-related data fields for native activities, such as elevation, total ascent, total descent, etc.

    Yes, GPS elevation is still recorded by the device and made available via the Connect IQ API. But typically these non-baro watches will hide elevation-related data during an activity, presumably to avoid user complaints of bad data.

    For example, I have Total Ascent and Elevation Change data fields in the store which simply display total ascent (from the API) and total ascent - total descent (both from the API). Even though I tried to make it clear that the data comes from Garmin's API and it's not to be trusted because it's based on GPS elevation, I still get complaints that the data is bad. These are literally my worst-rated apps. So it isn't surprising to me that Garmin chooses to hide all elevation-related data on the device itself, and only shows elevation data in Connect, because Connect is able to correct this data after the fact.

    So if you meant that the watch displays elevation in your app because the API provides it, that wasn't 100% obvious from what you said. Just because your app is able to retrieve the GPS elevation from the API (just like all devices which don't have a baro), doesn't mean the watch normally displays elevation.

    If you mean that VA5 shows elevation in some other context (data field, glance), then I would be surprised, and I would also say that the manual needs some updating. 

    Compare the data field appendix in the manuals for various devices:

    FR955 - has baro (whole section for elevation-related fields): https://www8.garmin.com/manuals/webhelp/GUID-9D99A9D4-467A-4F1A-A0EA-023184FEA3DD/EN-US/GUID-73BCE454-042E-420D-96A4-9DBA46626CD4.html 

    VA5 - no baro (no elevation fields): https://www8.garmin.com/manuals/webhelp/GUID-5D183A14-BB43-4A9B-B441-5F824214CE40/EN-US/GUID-252F74B6-C24B-495B-8E73-4BD595CA7FE3.html

    VA4 - has baro (has elevation, total ascent and total descent fields): https://www8.garmin.com/manuals/webhelp/vivoactive4_4S/EN-US/GUID-252F74B6-C24B-495B-8E73-4BD595CA7FE3.html 

    In fact the word "elevation" only appears in the VA5 manual once, in reference to unit settings (ironically). But it's just some generic text that they copied from manual to manual:

    www8.garmin.com/.../GUID-1C27C7A0-27EE-41C0-8B50-ED8F6D6DB2DE.html

    "You can customize units of measure for distance, pace and speed, elevation, and more."

    The only reference to "altitude" is in a description of the pulse oximeter.

    Yes, there's no barometer in va5, but it doesn't matter, because the watch displays the correct elevation based on GPS, just in feet.

    Going back to this statement, what I think you really meant to say is:

    "Yes, there's no barometer in va5, but it doesn't matter, because my app displays the correct elevation based on GPS, just in feet, because my app uses DeviceSettings.elevationUnits."

    When you say "the watch" without qualification, it implies that you mean built-in Garmin software that runs on the watch. When you say "just in feet" without qualification, this implies that it's completely unavoidable and out of your control - but it isn't, you would just have to provide your own elevation units setting.

    And let's revisit the title: "bug: no way to set elevation unit on vivoactive 5"

    Let me state the obvious here:

    - Garmin obviously removed elevation units on purpose for VA5 (just like they did for every device without a baro)

    - Unless I'm mistaken, VA5 users have no way of looking at any elevation-related data from built-in apps on the device

    - From Garmin's POV this isn't a bug

    - Before you protest that Garmin makes this data available to CIQ apps therefore it should expose the related setting:

    - Garmin has a long track record of not caring about CIQ apps (and/or not coordinating decisions between the device team and the CIQ team)

    - What would users say if they saw an elevation units setting in the UI, but 0 built-in elevation related data fields or glances? They would think that either the presence of the setting is a bug, or the lack of the built-in elevation fields is a bug

    Perhaps the real bug is the fact that the CIQ API lacks the ability to remove DeviceSettings.elevationUnits for devices which do not support this setting. If it did, you could just use a has check to determine whether you need to provide this setting in your own app or not.

    What you could do:

    - Provide an elevation units setting regardless of watch type: I guess it would have to have the following options: feet, metres, auto (use system settings)

    - Provide an elevation units setting only for devices without a baro. One way to detect a baro would be to check if Activity.Info has ambientPressure. Note that the supported devices list for ambientPressure lacks VA5.:

    developer.garmin.com/.../Info.html

Children
  • Another simple test for a baro is to see if ActivityMonitor has floors.  No baro, no floors as a baro is required for that.

    If you have an app where elevation shown on the garmin is important, you probably want to have a device without a baro to test on,  I imagine something like a fr23x can be found really cheap if you don't want to buy a va5