Code looks plausible. I notice in BreathHoldView.mc `function onTimer()` missing return in other states? It's okay. But there is subtle issue: when finishSession from recovery sets state = STATE_DONE and stops timer, then onStartButton in STATE_DONE calls resetRunState which resets state idle. Fine. Also when discardSession sets state idle and request update by delegate after, but resetRunState also sets state idle. Fine.

One issue: In discardSession, we call session.discard(); but in API 1.4, does ActivityRecording.Session have discard? Need verify. `ActivityRecording` since API 1.3. `Session` methods `start`, `stop`, `save`, `discard`? I think yes. But let's verify by checking docs maybe. Could search memory. The monkey C API for ActivityRecording.Session includes `function save(); function discard();`. yes.

Also `Fit.MESG_TYPE_SESSION` available in API 1.4? I believe FitContributor introduced API 1.3 and Fit.MESG_TYPE_SESSION exists. Good.

Potential issue: `FitContributor.DATA_TYPE_UINT16` / UINT8 exist? yes.

`Graphics.FONT_NUMBER_MEDIUM` exists on fēnix 3? I think yes. `Graphics.FONT_SMALL`, `Graphics.FONT_TINY`. ok.

`System.exit()` in delegate used but no import System in delegate; It imports only WatchUi. Monkey C allows using System without import? Actually you need `using Toybox.System;` or refer `Toybox.System.exit()`. The code uses `System.exit()` without import. In Monkey C, using statements provide symbol names. Since delegate doesn't import System, this would be compile error. Should add `using Toybox.System;`. Also `InputDelegate` in API 1.4? Yes. `KEY_ENTER`? In API 1.4, WatchUi has KEY_ENTER? I think `WatchUi.KEY_ENTER` exists? Actually maybe `KEY_ENTER` might not exist in older API. Common keys: KEY_START, KEY_STOP, KEY_UP, KEY_DOWN, KEY_LEFT? KEY_RIGHT? KEY_ENTER? Let's check. In Monkey C WatchUi, key constants: `KEY_START`, `KEY_STOP`, `KEY_UP`, `KEY_DOWN`, `KEY_LEFT`, `KEY_RIGHT`, `KEY_ENTER`, `KEY_ESC`, `KEY_LAP`, `KEY_MENU`, `KEY_LIGHT`. I think KEY_ENTER exists. But on fēnix 3 physical buttons, KEY_START is start button. Fine.

Also `System.exit()` maybe allowed in watch apps? It may terminate app. Good.

Need fix import. Also maybe in BreathHoldApp, `Application.AppBase` requires import? It has `using Toybox.Application;` good.

Also `WatchUi.InputDelegate` in API 1.4 - yes.

Also `dc.clear()` with black background; fine.

But there is a more important issue: Timer.start method signature in API 1.4: `timer.start(method(:onTimer), 1000, true);` I think yes.

Potential issue: `formatTime` uses `seconds / 60` integer division; seconds int. Good. m.format("%02d") works for Number in Monkey C.

Potential issue: `session.createField` with `:developerId`? In older API maybe `createField` signature: `createField(fieldName, fieldId, dataType, options)`. It might require `{:mesgType=>Fit.MESG_TYPE_SESSION, :units=>"s", :nativeNum=>...}` but not require. Fine.

But missing import System is a real compile error. Let's fix it. Also we might want to check if `System.exit()` is the intended way to close app. In Monkey C, `System.exit()` exists? Actually I recall `System.exit()` is available. Or `WatchUi.popView`? But for exiting app from delegate, `System.exit()` is common. Need import.

Also `KEY_ENTER` might not be needed. Could keep.

Let's edit delegate to add `using Toybox.System;`.

Also consider `WatchUi.InputDelegate` vs `BehaviorDelegate` in API 1.4? InputDelegate is valid. But InputDelegate's onKey takes keyEvent. `keyEvent.getKey()` exists. Good.

Another potential issue: In `discardSession`, after stop and discard, `session = null` but hold/hr fields remain set to old objects. Next `startSession` reassigns. Fine.

Another issue: On `finishSession` called from recovery, `maxHoldTime` may not be set if state not hold (if timer tick triggered finish when currentTime>=recoveryTime, state recovery, but maxHoldTime already set when left hold). Good.

Let's also ensure README note about fēnix 5 includes HRM-Tri compatibility. Maybe mention fēnix 5 supports ANT+. Good.

Now fix delegate import.

Could also consider building with a mock? But no SDK.

Need maybe verify that manifest minApiLevel=1.4.0 and products fēnix3/fenix3_hr okay. Good.

Let's fix import and maybe remove KEY_ENTER? It won't harm if defined. But if not defined compile error. To be safe, we can check Connect IQ API key constants. Let's search docs? No internet. I can recall. In older Connect IQ, keyEvent has constants: `WatchUi.KEY_START`, `WatchUi.KEY_STOP`, `WatchUi.KEY_UP`, `WatchUi.KEY_DOWN`, `WatchUi.KEY_LEFT`, `WatchUi.KEY_RIGHT`, `WatchUi.KEY_ENTER`, `WatchUi.KEY_ESC`, `WatchUi.KEY_LAP`, `WatchUi.KEY_MENU`, `WatchUi.KEY_LIGHT`, `WatchUi.KEY_BACK`? I think KEY_ENTER exists. But maybe `KEY_ENTER` is not on fēnix 3; but compile constant exists. Safe.

Potential issue: `System.exit()` may not be allowed in AppBase? But it's fine.

Let's fix import and re-read.

edit

using Toybox.WatchUi;
using Toybox.System;

class BreathHoldDelegate extends WatchUi.InputDelegate {

using Toybox.WatchUi;

class BreathHoldDelegate extends WatchUi.InputDelegate {


Successfully replaced 1 block(s) in ~/code/garmin-freedive-app/source/BreathHoldDelegate.mc.

  1 using Toybox.WatchUi;
+ 2 using Toybox.System;
  2
  3 class BreathHoldDelegate extends WatchUi.InputDelegate {
  4
  5     var view;
    ...

--- ~/code/garmin-freedive-app/source/BreathHoldDelegate.mc
+++ ~/code/garmin-freedive-app/source/BreathHoldDelegate.mc
@@ -1,5 +1,6 @@
 using Toybox.WatchUi;
+using Toybox.System;

 class BreathHoldDelegate extends WatchUi.InputDelegate {

     var view;


We should also consider if `System.exit()` is imported as `Toybox.System`. `using Toybox.System;` brings `System` symbol. Good.

Now, final answer. Need answer user's direct question: which fēnix watch model supports a freediving app that measures depth via raw ambient pressure. Also mention updates done. Keep concise but thorough.

Need include caveats: fēnix 5 / 5S / 5X / 5 Plus / 5S Plus / 5X Plus. They run CIQ API 3.1/3.3, support rawAmbientPressure, 10 ATM, ANT+ HRM-Tri. Newer fēnix 6/7/8/Tactix support API but cap underwater ~3m. fēnix 3 cannot. Also note not dive-rated; use at own risk. Mention docs updated.

Should also mention Descent as purpose-built. User asked fēnix, but helpful.

Maybe include a short note that if they already have fēnix 3, current app remains breath-hold/surface HR only. If they want depth on a fēnix, get fēnix 5 family.

Need format final response. Also mention modified files. Perhaps note build not run because SDK not installed; but we fixed a missing import.

Let's produce final answer.

**Short answer:** For a fēnix that can measure freediving depth via raw ambient pressure, you need the **fēnix 5 / 5S / 5X / 5 Plus / 5S Plus / 5X Plus** family.

I just updated the project docs to reflect that:

- `code/garmin-freedive-app/IMPLEMENTATION_PLAN.md`
- `code/garmin-freedive-app/README.md`
- `code/garmin-freedive-app/source/BreathHoldDelegate.mc` (fixed a missing `System` import)

### Why the fēnix 5 family

| Watch family | CIQ API | `rawAmbientPressure` | Good for depth? |
|---|---|---|---|
| **fēnix 5 / 5S / 5X / 5 Plus / 5S Plus / 5X Plus** | 3.1.x / 3.2.x / 3.3.x | Yes | **Yes** — forum reports say no artificial underwater cap, usable to ~40 m |
| fēnix 6 / 6S / 6X / 7 / 7S / 7X / 8 / Tactix | 3.2.x+ | Yes (API present) | **No** — reports say Garmin caps pressure readings underwater around 3 m |
| fēnix 3 / fēnix 3 HR | 1.4.0 | No | **No** — only sea-level-calibrated `Sensor.Info.pressure` |

The fēnix 5 models check all the boxes:

- Support `Activity.Info.rawAmbientPressure` (introduced in CIQ API Level 2.4.0+).
- Rated **10 ATM** pressure equivalent (same as the fēnix 3).
- Support ANT+ chest straps like your **HRM‑Tri**.
- Reportedly do **not** have the artificial ~3 m underwater pressure cap that newer fēnix/Tactix models have.

### What stays on your fēnix 3

The current `Freedive Breath` app stays **breath-hold / surface heart-rate logging only** on the fēnix 3. The hardware *does* measure ambient pressure and the native watch UI can show “Ambient Press.”, but the Connect IQ API on fēnix 3 only exposes sea-level-calibrated pressure, so a CIQ app cannot compute depth.

### If you want depth later

If you pick up a fēnix 5-series watch (or a Garmin Descent), the depth logic can be ported by using:

```monkey-c
var info = Activity.getActivityInfo();
if (info has :rawAmbientPressure && info.rawAmbientPressure != null) {
    var depth = (info.rawAmbientPressure - surfacePressure) / (rho * 9.80665);
}
```

**Caveat:** Even the fēnix 5 is not *dive-rated* by Garmin — it’s rated for surface swimming. Using it for repeated 30 m freediving is outside Garmin’s stated use case and may void the warranty or risk damage. The purpose-built alternative is a **Garmin Descent**.

I did not build the `.PRG` because the Connect IQ SDK is not installed in this environment (`monkeyc` not found). Once you install the SDK and the fēnix 3 device files, the `build.sh` script should produce the sideloadable `.PRG`.


the fenix 5 is rather cheap at the moment so i might go for that one. can you check again if the api from that watch would be able to meassure the underwater distance of the dive?


The user is asking to confirm, with the Fenix 5 in mind, whether the API on that watch can measure underwater dive distance. We should research the exact APIs available for the Fenix 5 and confirm rawAmbientPressure, plus perhaps other sensors like accelerometer and GPS underwater. Also check if Connect IQ can compute underwater distance—probably not via GPS underwater; distance would have to be pressure-derived depth. The user said "underwater distance of the dive"—this could mean depth profile (vertical distance) or horizontal distance. We should clarify.

We have context-mode active and instructions to use ctx_execute_file, ctx_batch_execute, ctx_fetch_and_index, ctx_search. We should probably do web research to verify Fenix 5 CIQ API support and whether rawAmbientPressure works underwater for depth. Also look for any mention of Fenix 5 pressure API, underwater cap, distance APIs. Use web_explore or ctx_fetch_and_index? The tool set: web_explore, ollama_web_search/fetch, ctx_fetch_and_index. Let's think.

We need to answer confidently. We already have summaries. But user wants re-check. We should search the web for fresh evidence about Fenix 5 CIQ raw ambient pressure, API level, and maybe underwater depth accuracy. Use web_explore for "Garmin Fenix 5 Connect IQ rawAmbientPressure depth freediving API level". This will search, fetch pages, rank. Since context-mode active and web research, web_explore handles search/fetch passes internally. Then maybe use ctx_fetch_and_index for specific pages and ctx_search.

However the user asks: "can you check again if the api from that watch would be able to measure the underwater distance of the dive?" Need to confirm Fenix 5 API can measure depth via pressure, and discuss that horizontal underwater distance isn't measurable (GPS doesn't work underwater). We can read the implementation plan to align details. But likely need to update docs if new findings. The user is not necessarily asking to edit code, just check again. We can provide a concise answer with sources. Maybe update IMPLEMENTATION_PLAN if new specifics.

Let's use web_explore.

Question: Garmin fenix 5 Connect IQ API rawAmbientPressure underwater depth freediving no cap

Question: Garmin fenix 5 Connect IQ API level raw ambient pressure developer documentation


Reviewed 4 sources · synthesized answer with 5 findings

Home | Garmin Developers

- [web_fetch] Community/practical context: Freediver (Connect IQ) A personal freediving logger for Garmin watches that samples barometric pressure, converts it to depth (m), detects dives, and records a depth timeline plus
- [web_fetch] Community/practical context: This is a data field for Garmin watches (Fenix, Epix, Tactix) displaying the current water depth. See https://developer.garmin.com/connect-iq/connect-iq-basics/ for some informatio
- [web_fetch] Community/practical context: A collection of Connect IQ apps and libraries Purpose This repo is officially maintained by the Garmin Connect IQ team, containing a small set of reference examples and monkey barr
- [web_fetch] Community/practical context: Garmin DevelopersBuild Something with Us Connect IQ™ SDKDevelop watch faces, data fields, widgets and apps for our wearable devices.Garmin Connect Developer ProgramDevelop custom a
- [web_explore] Community/practical context: Skip to content Navigation Menu Pricing Provide feedback Saved searches Use saved searches to filter your results more quickly Sign up Appearance settings 249 followers http://deve

Internal research: web_search ×4, web_fetch ×13, web_fetch_headless ×1

Findings
- [web_fetch] Community/practical context: Freediver (Connect IQ) A personal freediving logger for Garmin watches that samples barometric pressure, converts it to depth (m), detects dives, and records a depth timeline plus
- [web_fetch] Community/practical context: This is a data field for Garmin watches (Fenix, Epix, Tactix) displaying the current water depth. See https://developer.garmin.com/connect-iq/connect-iq-basics/ for some informatio
- [web_fetch] Community/practical context: A collection of Connect IQ apps and libraries Purpose This repo is officially maintained by the Garmin Connect IQ team, containing a small set of reference examples and monkey barr
- [web_fetch] Community/practical context: Garmin DevelopersBuild Something with Us Connect IQ™ SDKDevelop watch faces, data fields, widgets and apps for our wearable devices.Garmin Connect Developer ProgramDevelop custom a
- [web_explore] Community/practical context: Skip to content Navigation Menu Pricing Provide feedback Saved searches Use saved searches to filter your results more quickly Sign up Appearance settings 249 followers http://deve

Sources
- [web_fetch] GitHub - BertilBraun/Freediver: Simple Garmin Watch App to track Freediving: https://github.com/BertilBraun/Freediver
- [web_fetch] GitHub - finfinack/depth: Data field for Garmin watches (Tactix, Fenix, Epix) to display water depth.: https://github.com/finfinack/depth
- [web_fetch] GitHub - garmin/connectiq-apps: A collection of Connect IQ apps.: https://github.com/garmin/connectiq-apps
- [web_fetch] Home | Garmin Developers: https://developer.garmin.com/

Internal tools
Internal research: web_search ×4, web_fetch ×13, web_fetch_headless ×1

Caveat
Evidence is partial: the strongest readable sources were mostly community/practical context.

Home | Garmin Developers


Reviewed 4 sources · synthesized answer with 4 findings

Garmin International

Connect IQ SDK | Garmin Developers

Home | Garmin Developers

- [web_fetch] Community/practical context: A collection of Connect IQ apps and libraries Purpose This repo is officially maintained by the Garmin Connect IQ team, containing a small set of reference examples and monkey barr
- [web_fetch] Community/practical context: Skip to content Navigation Menu Pricing Provide feedback Saved searches Use saved searches to filter your results more quickly Sign up Appearance settings 249 followers http://deve
- [web_fetch] Community/practical context: Make Your MarkBuilding unique wearable experiences leveraging Garmin device sensors and features is easy with Connect IQ. Using available APIs and ANT+ profiles, the apps you build
- [web_fetch] Community/practical context: Garmin DevelopersBuild Something with Us Connect IQ™ SDKDevelop watch faces, data fields, widgets and apps for our wearable devices.Garmin Connect Developer ProgramDevelop custom a

Internal research: web_search ×4, web_fetch ×13, web_fetch_headless ×1

Findings
- [web_fetch] Community/practical context: A collection of Connect IQ apps and libraries Purpose This repo is officially maintained by the Garmin Connect IQ team, containing a small set of reference examples and monkey barr
- [web_fetch] Community/practical context: Skip to content Navigation Menu Pricing Provide feedback Saved searches Use saved searches to filter your results more quickly Sign up Appearance settings 249 followers http://deve
- [web_fetch] Community/practical context: Make Your MarkBuilding unique wearable experiences leveraging Garmin device sensors and features is easy with Connect IQ. Using available APIs and ANT+ profiles, the apps you build
- [web_fetch] Community/practical context: Garmin DevelopersBuild Something with Us Connect IQ™ SDKDevelop watch faces, data fields, widgets and apps for our wearable devices.Garmin Connect Developer ProgramDevelop custom a

Sources
- [web_fetch] GitHub - garmin/connectiq-apps: A collection of Connect IQ apps.: https://github.com/garmin/connectiq-apps
- [web_fetch] Garmin International: https://github.com/garmin
- [web_fetch] Connect IQ SDK | Garmin Developers: https://developer.garmin.com/connect-iq/overview/
- [web_fetch] Home | Garmin Developers: https://developer.garmin.com/

Internal tools
Internal research: web_search ×4, web_fetch ×13, web_fetch_headless ×1

Caveat
Evidence is partial: the strongest readable sources were mostly community/practical context.

Garmin International

Connect IQ SDK | Garmin Developers

Home | Garmin Developers


Both web_explore returned small summaries? The output is just "Reviewed 4 sources..." no actual content? It seems the tool didn't return the findings content, maybe hidden because of context-mode? Actually web_explore returns synthesized answer in result. The response above is truncated? It only says "Reviewed 4 sources · synthesized answer with 5 findings". Maybe the actual findings are not visible. We should call web_explore with narrower or ask it to output details? Maybe the tool result is captured in context but not shown? Let's see. We should use ctx_search for web content? No. Could use ollama_web_search. But web_explore is designed to give answer. It seems not visible here. Maybe need to check if actual info hidden by summary? Let's fetch specific pages.

Potential pages:
- Garmin Connect IQ API reference for Activity.Info rawAmbientPressure: https://developer.garmin.com/connect-iq/api-docs/Toybox/Activity/Info.html
- Garmin Fenix 5 device specs and API level.
- Forum posts: "fenix 5 freediving app depth raw ambient pressure", perhaps on Garmin forums or DeeperBlue.
- Connect IQ device compatibility matrix.

Let's search via ollama_web_search maybe it returns titles/snippets. Use it.

Question: Garmin fenix 5 Connect IQ rawAmbientPressure depth freediving no cap

Question: Garmin Connect IQ Activity.Info rawAmbientPressure introduced API level 2.4.0


1. Freediving Depth Data Field - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/4028/freediving-depth-data-field
   Freediving Depth Data Field - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Replies 12 replies
- Subscribers 19 subscribers
- Views 5216 views
- Users 0 members are here

Options

Related

# Freediving Depth Data Field

Recently I noticed that the very useful freediving data field called "Depth" has disappeared from the Connect IQ Store. I have no Idea why and I also don't remember the author of this data field. Because I need this data field and because I want to be able to record the data, I now try to code it myself. Only problem is that I currently run into some difficulties: -There seems to be no way to get the pressure reading from the barometer into a data field, because it would use the Sensor module which is not allowed to be used for a data field, only for an app (Gives error when put in manifest file). -And taken that it could be done anyhow, it most likely could not be done with Info.pressure because according to the API documentation this would return a pressure value corrected with the current altitude, whereas I would need the raw value to calculate the diving depth. So, my big question is: How did the author of this freediving depth data field achieve this?? Can anybody give me a hint with this? PS: Yes, I know that there exists a diving computer app at www.diveiq.com. But it’s quite expensive and not ideal for freediving. What I really want is just a data field to show me the current depth, which creates a FIT-File to show the depth as a graph in Garmin Connect.

- Sign in to reply
- Cancel

## Top Replies

- Don't confuse the water rating (how deep you can take the watch) with what pressures you can read with the watch. If I recall, some devices max out pressure readings at a depth that would work for…

## All Replies

You may want to check this sticky thread, as this is why the DF is now gone. https://forums.garmin.com/showthread.php?362498-Diving-related-Apps

> You may want to check this sticky thread, as this is why the DF is now gone. https://forums.garmin.com/showthread.php?362498-Diving-related-Apps

First thanks a lot for the quick answer. I was already expecting something like this. Honestly I think that’s a really bad decision made by Garmin here. Isn’t it each user’s own responsibility whether he wants to risk damaging his watch or not? I mean he bought it didn’t he? Ok. I see the point, that Garmin does not want to get sued, by users who “accidentally” destroyed their watch while using a diving app, but is banning all the diving apps really the way to go? Wouldn’t it be enough to make it mandatory to display a big fat red warning message when installing diving apps, which the user has to confirm? Then it would be 100% his own fault, if he broke his watch. This being said, could anybody help me with my coding related questions?

You might be able to use the altitude value provided inside the Activity.Info. If you go to 5m below the surface, the altimeter will show A. At 10m, it might show B... If you take measurements at various depths, you can establish a function that takes the altitude returned by the device and converts it to a depth. It would take a lot of testing to verify the correctness, but it seems that it might be a reasonable approach.Of course you could always try go contact the author of that original data field, and find out how he did it. Given that his data field was removed from the app store, he's probably going to be willing to share the source code with those that are interested.Travis

Depends on which watch you're developing for. For fenix 5 you can read raw pressure. I built exactly this data field today. Pop me a pm if you're interested. Cheers

Hi Niall,

I'm interested in this data field.

Can you help me, please? Thanks

Hi, have you had any luck?

Hi Marphy43

I know that it is now 5 years since you asked this question.

But I accidently saw your question just now. I were the author of the Depth gauge and the Max Depth gauge datafields that were on Connect IQ for a while.

The data fields were intended for use for fun when freediving etc.

I originally made it for Fenix3 and it were compatible with a few more devices. As I recall it, they were active for about a year and there were more than 3000 downloads and a lot of great reviews and no complaints.

I were working on other datafields for freediving like eg. surface time, time of last dive etc.

But, then one day I received a email from Garmin, stating that the Fenix3 and other compatible devices were never supposed to be used as a watch for diving and that the datafields were now removed from connect IQ.

It even stopped working on my own watch :-)

So yeah I spend time and effort on something that were loved and used by a lot of users, but it ended up being banned.

I used data from the altimeter to measure the depth. I wrote in an old thread how I did it here: https://forums.garmin.com/developer/connect-iq/f/app-ideas/974/freediving-depth-meter-surf-time

That's really sad, to hear.I was Hopping to Cross load this feature to the Instinct 2.0...It shows just how much Garmin tries too squeeze every Cent of its End User which Software Upgradeable Features that could and should be Free on a +400€ Watch...Want a Diving Feature? Nah, just buy another Watch for 800€...Want VO2Max? We could Software add it but nah, New Model for additional 400€while Dropping the Worth of your 2-Year-Old Watch by 60% without warning...I would say its about Time to Create an Open Source Rugged Smartwatch alternative that's Freely Configurable to your Needs.Will be Interesting to see, how long till this comment gets Taken down...Sorry for the Rant

You want to check out the App Approval Exceptions: https://forums.garmin.com/developer/connect-iq/w/wiki/10/app-approval-exceptions

Extreme Sports

Apps designed for scuba diving, free diving, skydiving, base-jumping, and extreme flight sports will not be listed on the app store for the following reasons:

- The diving features available on the Descent Mk1 are the only Garmin features intended for underwater diving use.
- The altimeter/barometer feature available in some Garmin devices is intended to be used for general altitude reference only, and is not intended to be used for extreme sports such as skydiving, base-jumping or other activities that require the use of equipment that is designed and intended for such use. The Jumpmaster feature on the Garmin tactix Bravo watch is intended to be used for skydiving activities by experienced skydivers. This is the only Garmin feature that is intended for use while skydiving.

Thanks for your Answer,About "[...] or other activities that require the use of equipment that is designed and intended for such use."the Instinct Tactic Series has also an Base Jumping Activity.And I doubt that the Barometric Sensor differs across the Series.The Instinct is Rated for 10 Bar, so technically a depth of 100m.Normal Scuba Diving goes to ~30m, 50-60m at max. so the Specification would suffice.For Apnoe it's Technically Possible, but i doubt that even a dwindling Minority can surpass a depth of 50 m.I know that for Scuba Diving Watches of 20 Bar are recommended as minimum Requirement.So technically this is right. But you could Inform the User about that and let him Accept an Agreement, like with the aviation-specific apps if thats a Problem.Like "Not Intended for Usage as Reference, only for Data Recording additionally the Watch is not Intended to be Used for this Use Case" Your Answer got my Hope up, that it might be Possible to get that App from other Sources, if you know what you are doing?Because it Technically says "will not be listed" not that its not allowed...Assumed Cross Loading is Possible.Could you Point me in such Direction?Or could you @Miguel_Hermann post it even on a Github Repo, so not everyone has to Recode it himself?

2. Barometer "Watch Mode" settings on Fenix 5 Series - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/5052/barometer-watch-mode-settings-on-fenix-5-series
   Barometer "Watch Mode" settings on Fenix 5 Series - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Replies 7 replies
- Subscribers 17 subscribers
- Views 4124 views
- Users 0 members are here

Options

Related

# Barometer "Watch Mode" settings on Fenix 5 Series

Can someone please explain what the Barometer's "Watch Mode" setting does?There are three options to this setting: "Altimeter", "Barometer", and "Auto".ThanksJesus

- Sign in to reply
- Cancel

I figured out by performing some testing on a pressure chamber: The "Barometer" option means that when the device is in watch mode, changes in pressure will be interpreted as changes in weather/temperature. Altitude readings will therefore not be affected. The "Altimeter" option means that when the device is in watch mode, changes in pressure will be interpreted as changes in altitude. The "Auto" option means that watch will try to figure it out on its own. Try figuring that one by reading the manual !! Jesus

Hey Jesus,That sounds right to me, but I'm checking with the device team just to make sure.Thanks,-Coleman

> Hey Jesus, That sounds right to me, but I'm checking with the device team just to make sure. Thanks, -Coleman

Thanks Coleman, does the latest SDK now have a way to read the ambient pressure? (as opposed to sea-level pressure, which is what Sensor info returned last time I checked.) I ask because I recall recently spotting an app or watch face that displays ambient pressure. Thanks Jesus

Jesus,Thanks for the question. I don't recall any specific additions to this SDK for ambient pressure. There are three possibilities. First, the developer could be using a custom calculation (I'm not totally sure how that would work). Second, it could be a misnomer due to an assumption by the dev. Third, it could be that we have something amiss in the docs. I'll be checking this out with the CIQ and Sensor teams to verify. As of right now, I believe that you are correct.Thanks,-ColemanUPDATE: See the post at the end of the thread by jim_m_58 for updated info.

Has this "watch mode" setting really influence in watch mode only? What about during activity, do it use the auto mode always?In FAQ https://support.garmin.com/en-US/?fa...Type=noProduct("Manually Selecting a Mode" section) it refers to "your activity"...it is not clear...Today MTB activity with barometer watch mode set to "Barometer" gave me half ascent meters than reality. Past activities with barometer mode set to "Auto" gave reliable ascent values.

Sounds strange. If the device was really in barometer mode during the activity, you should per definition have had 0 ascent meter.

> Thanks Coleman, does the latest SDK now have a way to read the ambient pressure? (as opposed to sea-level pressure, which is what Sensor info returned last time I checked.) I ask because I recall recently spotting an app or watch face that displays ambient pressure.ThanksJesus

Starting with CIQ 2.4.x, ambient, raw ambient and MSL pressure are all available in CIQ by way of Activity.Info.I doubt that the setting for watch mode (baro/alt) impacts elevation that's used in an activity - Probably just what's displayed on native WFs or the native pressure widget.There are options to show the ambient and baro pressure in native data fields on some watches though...

3. Freediving Depth Data Field - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/4028/freediving-depth-data-field/1391311
   Freediving Depth Data Field - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Cancel
- More
- German Forum
- Beta Program
- Developer
- Pilots
- Sports & Fitness
- Outdoor Recreation
- Apps & Software

- Users 0 members are here
- Views 4883 views
- Subscribers 19 subscribers
- Replies 12 replies

Options

- Cancel
- More
- Share

Related

# Freediving Depth Data Field

Recently I noticed that the very useful freediving data field called "Depth" has disappeared from the Connect IQ Store. I have no Idea why and I also don't remember the author of this data field. Because I need this data field and because I want to be able to record the data, I now try to code it myself. Only problem is that I currently run into some difficulties: -There seems to be no way to get the pressure reading from the barometer into a data field, because it would use the Sensor module which is not allowed to be used for a data field, only for an app (Gives error when put in manifest file). -And taken that it could be done anyhow, it most likely could not be done with Info.pressure because according to the API documentation this would return a pressure value corrected with the current altitude, whereas I would need the raw value to calculate the diving depth. So, my big question is: How did the author of this freediving depth data field achieve this?? Can anybody give me a hint with this? PS: Yes, I know that there exists a diving computer app at www.diveiq.com. But it’s quite expensive and not ideal for freediving. What I really want is just a data field to show me the current depth, which creates a FIT-File to show the depth as a graph in Garmin Connect.

- Cancel
- Sign in to reply

## Top Replies

- Don't confuse the water rating (how deep you can take the watch) with what pressures you can read with the watch. If I recall, some devices max out pressure readings at a depth that would work for…

## All Replies

Don't confuse the water rating (how deep you can take the watch) with what pressures you can read with the watch. If I recall, some devices max out pressure readings at a depth that would work for swimming - it's so non-diving watches aren't used to record diving. If you want an Instinct for diving, there is the Descent G1: https://forums.garmin.com/developer/connect-iq/b/news-announcements/posts/garmin-introduces-the-descent-g1-series

No way...You sir just made my Day.Didn't know this existed.Price is okayisch but still on the Very Expensive side...The Max Rating is an Important Point you made here, I found https://www.apnea.me/ but their FAQ Mentions the Problem you described.Thank you, Sir.

4. Negative Depth? - Fenix 5X - fēnix 5 Series - Outdoor Recreation Archive - Garmin Forums
   URL: https://forums.garmin.com/outdoor-recreation/outdoor-recreation-archive/f/fenix-5-series/140399/negative-depth---fenix-5x
   Negative Depth? - Fenix 5X - fēnix 5 Series - Outdoor Recreation Archive - Garmin Forums

- State Not Answered
- Replies 11 replies
- Subscribers 0 subscribers
- Views 6113 views
- Users 0 members are here

Options

Related

# Negative Depth? - Fenix 5X

I’m curious if anyone around the forums here have experience with this. Can the 5X give you a negative depth reading? Specifically I’m wanting to know if the device can show depth while snorkeling or free diving.I realize it’s not a dive watch, but since it has the altimeter it sparked my curiousity.

- Sign in to reply
- Cancel

Every second day I am walking at about 5m below sea level. The altitude on this watch is another of the many bugged and never fixed aspects. So from this experience pretty sure it should give you negative depth readings as I went for a ride at -28m about 2 weeks ago. I am damn talented....

I noticed yesterday when heading to pick up the kids from school that my altimeter was showing -11meters.. I normally have it set to Baramoter if I'm home as my elevation doesn't change much through the day. I had left it on Auto following a bike ride and we had a storm coming in which I guess might have confused it. Wish you could set it to auto update altitude by GPS every hour or so..

Pitz and Kilt, the OP is asking about the watch's ability to record water depths.Your replies are about an entirely different issue: Altitudes (in air) below sea level.To Pitz, I further recommend that you read some of the many threads on altitude measurements. If you think that the watch is malfunctioning because it shows a negative altitude, you simply don't understand how a barometric altimeter works.

C1rclez, there was once an CIQ data field (or app?) for diving that someone had written but I believe it was pulled by Garmin as the watch is not considered a dive watch and is not supposed to be used as one. Possible the app/data field is available "off-line" - not sure. You could probably do up your own with one of the apps that allow you to customize calculations such as AppBuilder. This is needed as you must convert the water pressure to a distance (not the same as in the air obviously).AllanOlesen67 +1. Not to take anything away from those that are having real problems with the altimeter/barometer/temp combo, many have no idea how it works and the complexity involved (especially staying accurate over a given period of time without calibration). I'm not saying Garmin does it the best, just that any abc watch will need to be calibrated on a regular basis as they drift. Even counting on GPS is not great given the lack of vertical accuracy (generally 1.5 to 2 x less than horizontal) - easy to be off by many meters even with a good fix.

Razmichael, I will look into the CIQ face or app. I have technical background and could probably write my own in the future. I was just curious about the stock ABC widget mostly. The reason I asked is because Suunto’s Core series can do negative depth (it’s a non gps enabled ABC watch). I was hoping my Fenix has similar ability.

> Pitz and Kilt, the OP is asking about the watch's ability to record water depths.Your replies are about an entirely different issue: Altitudes (in air) below sea level.To Pitz, I further recommend that you read some of the many threads on altitude measurements. If you think that the watch is malfunctioning because it shows a negative altitude, you simply don't understand how a barometric altimeter works.

I know as a baro/gps altimeter works. I'm also curious about depth readings! DESCENT MK1 is is probably equipped with the same hardware of F5X! What do you think about?

I wonder if there is cut-off for the ambient pressure reading. If there is no cut-off, a workaround could be using the built-in ambient pressure data field and do some simple math in the head while diving.Each 100 millibar is equal to one meter, and the surface pressure will be around 1000 millibar (at least when diving in the ocean), so 1100 millibar = 1 meter, 1200 millibar = 2 meter, 1300 millibar = 3 meter, etc.

> Pitz and Kilt, the OP is asking about the watch's ability to record water depths.Your replies are about an entirely different issue: Altitudes (in air) below sea level.To Pitz, I further recommend that you read some of the many threads on altitude measurements. If you think that the watch is malfunctioning because it shows a negative altitude, you simply don't understand how a barometric altimeter works.

Thanks for the obvious... I can read and am aware it's in relation to diving/ snorkeling. The title of the thread is "Negative Depth?" and so I was pointing out that the watch does record Negative Depth IE I was answering the question asked!... It matters not a jot if your above water or below water- it's a pressure sensor! trust me, I used to work in a Hyperbaric Chamber treating divers!If your diving at high altitude (lakes etc) You need to calibrate your dive computers to that altitude before use.. so the two are intrinsically related.. as I said, the sensor cannot tell if its air, water or concrete pushing on it

> Thanks for the obvious... I can read and am aware it's in relation to diving/ snorkeling. The title of the thread is "Negative Depth?" and so I was pointing out that the watch does record Negative Depth IE I was answering the question asked!... It matters not a jot if your above water or below water- it's a pressure sensor! trust me, I used to work in a Hyperbaric Chamber treating divers!

If you trained divers, I certainly hope that you know that the relation between pressure and altitude depth is entirely different in air and in water.In air, 1 millibar of pressure change is equal to approx. 8 meter of altitude change (when you are near sea level).In water, 1 millibar of pressure change is equal to approx. 1 cm of depth change.That is a difference by a factor of 800.In short: The fact that a watch can show negative altitude in air is absolutely no indication that it will be able to show true negative depth in water. If the watch just continues its air altitude calculation when it gets submerged to a depth of 1 meter, it will show an altitude of approx. -800 meter, not -1 meter.

AllanOlesen67Apologies for the tone of my post. Happy to admit my errors and you are indeed correct, I knew it wasn't exactly the same although I had not appreciated quite the difference between the 2- I only nursed divers with decompression illness, not trained them or manage the chamber operations. Always happy to be corrected and learn from others. I should in my "post-night shift state"- have mentioned the relationship was not the same and for obvious reasons, the 5X should not be used in place of a dedicated dive computer- It was instead a rather clumsy way of highlighting the watch did display a negative value.Apologies!KP

5. Device status, activity info, scuba divind specific data etc vs Garmin Descent MK1 - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/7886/device-status-activity-info-scuba-divind-specific-data-etc-vs-garmin-descent-mk1
   Device status, activity info, scuba divind specific data etc vs Garmin Descent MK1 - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Cancel
- More
- German Forum
- Beta Program
- Developer
- Pilots
- Sports & Fitness
- Outdoor Recreation
- Apps & Software

- Users 0 members are here
- Views 720 views
- Subscribers 15 subscribers
- Replies 3 replies

- descent scubadiving

Options

- Cancel
- More
- Share

Related

# Device status, activity info, scuba divind specific data etc vs Garmin Descent MK1

Hi,is there any possibility to find more detailed information about data which is specific for this scuba diving computer.I would like to know how to find for example surface time, and other scuba diving specific data.Plus, is there any way how to simulate diving data for Watch Face/widget testing purposes?Thanks

- Cancel
- Sign in to reply

The best you can do is derive this data from ambientPressure / meanSeaLevelPressure / elevation / altitude / pressurehistory / elevationhistory so it will require a lot of testing (eg with a pressure chamber) to get this right, plus also note if you intend to release your app to the public that Garmin won't approve it to be listed in the app store (even if you would only target the mk1) (see https://forums.garmin.com/forum/developers/connect-iq/connect-iq-news-announcements/148653-app-approval-exceptions-updated-09-19-2018)

> The best you can do is derive this data from ambientPressure / meanSeaLevelPressure / elevation / altitude / pressurehistory / elevationhistory so it will require a lot of testing (eg with a pressure chamber) to get this right, plus also note if you intend to release your app to the public that Garmin won't approve it to be listed in the app store (even if you would only target the mk1) (see https://forums.garmin.com/forum/developers/connect-iq/connect-iq-news-announcements/148653-app-approval-exceptions-updated-09-19-2018)

Nice to know :-( Thanks for the answer...There is such an official widget ("Surface Interval"), and also default descent watchface which reads information i'm looking for from somewhere, but I accept decision of Garmin not to release the documentation. Although my suggestion would be to allow at least limited set of data available for the "public" development.

diveiq.com implemented all the features for the divers. It is not in appstore since the changed policy and EULA restrictions.

6. Ambient pressure and pressure history don't match - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/244746/ambient-pressure-and-pressure-history-don-t-match
   Ambient pressure and pressure history don't match - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Replies 24 replies
- Subscribers 18 subscribers
- Views 5648 views
- Users 0 members are here

Options

Related

# Ambient pressure and pressure history don't match

Hey all, does anyone know what pressure the pressure history is storing? I have tested with putting both on screen and my ambient pressure is always higher than my max pressure history (over last 30 mins) so what is this doing?

If I look at my watch now it shows PH getMax to be 101833 and my AP now to be 102996. The PH never been above 101... if I put it in water (20cm) the AP goes up to 104888 which shows AP sensor is moving but PH never changes or goes near it.

Any insights would be great as I am trying to see historical pressure history to make a "guess" on no fly time for diving.

Many thanks,

Ben

- Sign in to reply
- Cancel

I'm not sure how SH.getPressureHistory deals with being under water. If I recall it's MSL pressure. Also, how often it's saved likely varies by device, where you can find the interval by comparing "when" in two adjacent samples.

And getting Sensor.Info.pressure can vary from what you see in Activity.Info.ambientPressure/Activity.Info.rawAmbientPressure

Ahh fiddle sticks... MSL pressure is of no use to me and that explains why it doesn't seem to change in the history even when submerged in water for 10 minutes. Must also be adjusting for depth of water (as this is the MK2 so has a depth sensor but cannot access it through CIQ I don't think?)

Basically, doesn't look like I can do what I want so will have to use the standard Garmin faces when diving and custom one when not :(

Thanks for the info Jim, appreciate it!

Actually stupid question, could I not just get raw and store date and time in a variable and do it that way..? The code doesn't reset each refresh does it? That would work I think :)

Actually that won't work as the WF has to be active to measure anything which it won't during a dive.

Also, Jim, does the memory/variables reset when you navigate away from the WF and back to it do you know? Thanks again.

Yes, you can build your own list of data and time. You might be able to do it in the main app, but you can also use a background service to take a reading every X minutes. In either case, you'll want to store the data using Application.Storage. You have to handle missing data.

I just saw your new post, but with a background process you can probably run the background while doing a dive.

Interesting, will look into that. Don't want to lag or run battery down for this so will see what performance is like on it :)

Thanks again for the info! :)

Here's a widget I did that does a graph of temperature using a background process. In general, the way it works is I save up to 96 samples with a time stamp. For a 4hr graph, the background runs every 4 minutes, but for a 48hr graph, every 30 minutes. Try it on your next dive. For missing readings, you'll see a pink mark under the graph.

The background in this is actually pretty minor, with the heavy lifting done in the widget itself.

Great, thanks. Will have a look at running background processes and see if that can work. Out of curiosity, why wouldn't you use temperature history for this or was it more of an experiment to see if it worked? (also this is a default widget isn't it or did you make it before that became standard?)

Thanks again Jim, you seem to be the fountain of knowledge on these forums because the Garmin library docs are terrible! :) hehe

SH.getTemperatureHistory only provides about 4hrs of data, and I wanted to allow for a couple days of data, so I did my own caching. And this doesn't require the widget itself to be run on a regular basis.

Ah of course, mine does say last 4 hours to be fair. Cool, will give this a go :)

Found a blog post you referenced 3 years ago but it is broken :( I cannot find any examples but is it a case of using a registerForTemporalEvent and setting it every say 10 minutes and then adding data to the Application.Storage? That how this would work? Sorry for all the Q's but I work better off examples and cannot find any I understand and this monkey C is pretty new to me

Thanks again

7. Apps or Software from new Garmin Decent Mk1? - fēnix 5 Series - Outdoor Recreation Archive - Garmin Forums
   URL: https://forums.garmin.com/outdoor-recreation/outdoor-recreation-archive/f/fenix-5-series/136475/apps-or-software-from-new-garmin-decent-mk1
   Apps or Software from new Garmin Decent Mk1? - fēnix 5 Series - Outdoor Recreation Archive - Garmin Forums

- Cancel
- More
- German Forum
- Beta Program
- Developer
- Pilots
- Sports & Fitness
- Outdoor Recreation
- Apps & Software

- Users 0 members are here
- Views 2885 views
- Subscribers 0 subscribers
- Replies 9 replies
- State Not Answered

Options

- Cancel
- More
- Share

Related

# Apps or Software from new Garmin Decent Mk1?

I see that Garmin has a new dive watch version of the Fenix. Since our 5X is good to 100 meters, I wonder if we'll be able to install any of the dive apps? I do a lot of snorkeling and shallow water diving and it would be handy to have some of those features!

- Cancel
- Sign in to reply

From the details in Ray's hands on https://www.dcrainmaker.com/2017/10/...iving-gps.html I doubt it. The dive features seem hard coded (not CIQ) and rely on additional hardware (the depth gauge).

Yeah, the depth gauge is sort-of like the barometer but with a MUCH greater pressure rating (one atmosphere for every 33 feet of depth, to be precise.)This is a rather cool addition to the Fenix line; I'm more than a bit disappointed that it uses ZHL as the algo however, as while it's quite conservative it's also a very old algorithm -- there is much better available nowdays with better proved performance (in not bending you), especially for technical diving (and since the watch will do multiple gases, this would otherwise be quite useful.)I don't do much diving these days but it used to be quite a passion, and while the $999 price tag looks expensive for a fitness watch it is definitely NOT for a decent dive computer, ESPECIALLY one that does mixed gas. In fact, if you like the dive computer capabilities of this device you're basically getting a Fenix 5x for free with its purchase (in comparison to the other products on the market.)This in turn means Garmin potentially has a market-devastating device here that could literally put a number of competitors out of business. Just about the only thing it doesn't appear to do is fixed-pO2 (for those with rebreathers)

While I was using my F3 in 2016, there was a very interesting CIQ data field developed by a guy called Miguel, proposing a depth gauge, based on pressure recorded by barometer while diving.this was working quite well, at least for my usage (snorkeling).Garmin decided to kick out this kind of development for safety reasons ( and probably legal reasons also).

https://www.youtube.com/watch?v=X5n1CqozMiI&t=65s https://www.diveiq.com/

Really interesting !1) I did not know at all this app, which is provided thru a payment (2 versions from 15 to 20 USD)2) I did not know that it was possible to install an app directly with copy/paste3) it seems to do the job very wellbefore paying for this app, as I know Garmin terms & conditions does not permit such feature for safety & legal reasons (from an official statement in CIQ forum), how can we make sure Garmin will not disable software capabilities used by such SW ?

valentin.d Here is our official stance on diving-related apps: https://forums.garmin.com/forum/deve...ements/148653- With the release of the Descent Mk1, this position may change in the future, but as of today, Connect IQ has no API that provides access to any dive specific functionality available on the Descent (in fact, Connect IQ apps will not operate while in a diving activity). Since apps like Dive IQ use the barometer, it falls under the "not designed for this purpose" category. As stated in the linked thread, we don't prevent developers from using sensors in ways for which they were not designed, but we won't host these types of apps on our app store for safety reasons.

Thanks for this clarification and official message.I did not remember the last sentence about hability for devs to continue on their own out of Garmin store.So finally very good news as Dive IQ seems really efficient, at least for what I’m looking for (mainly snorkeling)

Note that according to Garmin's docs the Fenix 5X and other Fenix watches except the new MK1 aren't designed for diving in terms of water resistance. 100M means it's good for swimming, maybe a bit snorekeling but anything beyond that could damage the watch, so I understand why they keep diving apps, which could lead to damaging the watch, out of the store

I honestly don't think I would trust the (5X) watch for diving! Record me walking 182mph, skip a section on a ride, etc, annoying and sometimes amusing but it doesn't risk my life!

8. Retrieve ambient pressure in foreground - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/288741/retrieve-ambient-pressure-in-foreground
   Retrieve ambient pressure in foreground - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Replies 11 replies
- Subscribers 18 subscribers
- Views 1953 views
- Users 0 members are here

Options

Related

# Retrieve ambient pressure in foreground

Toybox.Sensor.getInfo().ambientPressure needs the permission Toybox.Sensor - I don't have added this permission yet because until now I used the pressure history.

I realised that ambientPressure is the value I want to display and not the one from the history and want to change this now.

1) it seems like ambientPressure value can't be retrieved from history, correct?

2) I realised that Toybox.Sensor also needs the background permission, does this mean I can only read the ambientPressure in the background?

Actually I don't want to add 2 permissions for this single data value to my watchface, is there no alternative way to get the current pressure (or last in one from history)?

- Sign in to reply
- Cancel

With a watch face, you can only access Sensor data in a background service.

Try Activity.getActivityInfo().ambientPressure in the foreground

Be sure to handle devices without a baro altimeter

In the sim I can access ambientPressure without an exception but it returns null (without adding the necessary permissions though)... But you say, the foreground access won't work on a real device anyway, that's the important information for me. Btw, adding background + sensor permission approx. halves the available memory for a watchface (ERROR: PRG generated exceeds the memory limit of 'background' applications for device id 'fenix6xpro': 63883 bytes) - is this something I have to accept or can I circumvent this side effect?

Can't I alternatively convert pressure to ambientPressure with the history data?

In the sim, are you simulating data? Try Activity.Info on a real device with a baro if you have doubts.

Once you add background permission, you want to make sure you use the (:background) annotation where needed, otherwise it will try to load the entire WF when the background runs, inclusing when onAppInstall() or onAppUpdate() are called.

Now that I simulate data it shows a value - thanks. Even without adding additional permissions.

Oh, now I remember that in need to add :background annotations where needed to avoid my whole WF is running in the background - thanks.

So actually you say something different than I though - that real devices with baro allow to access Activity.getActivityInfo().ambientPressure in the foreground? So I just have to add the permissions, make sure my WF is running in foreground and it will work on a real device? Or will it work without the additional permissions in the foreground on a real device (as this is what I see in the sim)?

hi, no permission is need for Activity.getActivityInfo().ambientPressure

when Jim said "Be sure to handle devices without a baro altimeter" I think he means to check if the device has a Baro with

if(Activity.getActivityInfo() has :ambientPressure){...}

if you use this method, you don't need :Background annotation or permission.

Thanks, that answers all open questions. The unsure phrase for me was "you can only access Sensor data in a background service"

yes the module Sensor. but Activity is available from foreground.

Don't forget to check null statment

thanks for clarifying that. Btw, isn't the null check enough for class variables? I actually though the :has must only be used for functions...

hi, no it is not enough, if you try for exemple Activity.getActivityInfo().ambientPressure on a F45, it will crash since FR45 does not have ABC sensor.

see the API doc, you have lots of exemple of :has

You want to do the has check too. Devices like the fr45, fr55, fr245 and venu sq don't have a baro altimeter.

9. Device Reference
   URL: https://developer.garmin.com/connect-iq/device-reference/fenix5s/
   Device Reference

MenuDevice Reference

Device Reference
[Garmin Developers](https://developer.garmin.com/)
#
* [Overview](https://developer.garmin.com/connect-iq/overview/)
*
* [Compatible Devices](https://developer.garmin.com/connect-iq/compatible-devices/)
*
* [API Docs](https://developer.garmin.com/connect-iq/api-docs/)
*
* [Get the SDK](https://developer.garmin.com/connect-iq/sdk/)
*
* [Submit an App](https://developer.garmin.com/connect-iq/submit-an-app/)
*
* [Stay Informed](https://developer.garmin.com/connect-iq/stay-informed/)
*
* [Connect IQ Basics](https://developer.garmin.com/connect-iq/connect-iq-basics/)
*
* [Monkey C](https://developer.garmin.com/connect-iq/monkey-c/)
*
* [Core Topics](https://developer.garmin.com/connect-iq/core-topics/)
*
* [User Experience Guidelines](https://developer.garmin.com/connect-iq/user-experience-guidelines/)
*
* [Personality Library](https://developer.garmin.com/connect-iq/personality-library/)
*
* [Connect IQ FAQ](https://developer.garmin.com/connect-iq/connect-iq-faq/)
*
* [Reference Guides](https://developer.garmin.com/connect-iq/reference-guides/)
*
* [App Review Guidelines](https://developer.garmin.com/connect-iq/app-review-guidelines/)
*
* [Monetization](https://developer.garmin.com/connect-iq/monetization/)
*
* [Device Reference](https://developer.garmin.com/connect-iq/device-reference/)
*
* [Approach® S50](https://developer.garmin.com/connect-iq/device-reference/approachs50/)
* [Approach® S60](https://developer.garmin.com/connect-iq/device-reference/approachs60/)
* [Approach® S62](https://developer.garmin.com/connect-iq/device-reference/approachs62/)
* [Approach® S70 42mm](https://developer.garmin.com/connect-iq/device-reference/approachs7042mm/)
* [Approach® S70 47mm](https://developer.garmin.com/connect-iq/device-reference/approachs7047mm/)
* [D2™ Air](https://developer.garmin.com/connect-iq/device-reference/d2air/)
* [D2™ Air X10](https://developer.garmin.com/connect-iq/device-reference/d2airx10/)
* [D2™ Bravo](https://developer.garmin.com/connect-iq/device-reference/d2bravo/)
* [D2™ Bravo Titanium](https://developer.garmin.com/connect-iq/device-reference/d2bravo-titanium/)
* [D2™ Charlie](https://developer.garmin.com/connect-iq/device-reference/d2charlie/)
* [D2™ Delta](https://developer.garmin.com/connect-iq/device-reference/d2delta/)
* [D2™ Delta PX](https://developer.garmin.com/connect-iq/device-reference/d2deltapx/)
* [D2™ Delta S](https://developer.garmin.com/connect-iq/device-reference/d2deltas/)
* [D2™ Mach 1](https://developer.garmin.com/connect-iq/device-reference/d2mach1/)
* [D2™ Mach 2](https://developer.garmin.com/connect-iq/device-reference/d2mach2/)
* [D2™ Mach 2 Pro](https://developer.garmin.com/connect-iq/device-reference/d2mach2pro/)
* [Descent™ G1 / G1 Solar](https://developer.garmin.com/connect-iq/device-reference/descentg1/)
* [Descent™ G2](https://developer.garmin.com/connect-iq/device-reference/descentg2/)
* [Descent™ Mk1](https://developer.garmin.com/connect-iq/device-reference/descentmk1/)
* [Descent™ Mk2 / Mk2i](https://developer.garmin.com/connect-iq/device-reference/descentmk2/)
* [Descent™ Mk2 S](https://developer.garmin.com/connect-iq/device-reference/descentmk2s/)
* [Descent™ Mk3 43mm / Mk3i 43mm](https://developer.garmin.com/connect-iq/device-reference/descentmk343mm/)
* [Descent™ Mk3i 51mm](https://developer.garmin.com/connect-iq/device-reference/descentmk351mm/)
* [Edge® 1030](https://developer.garmin.com/connect-iq/device-reference/edge1030/)
* [Edge® 1030 / Bontrager](https://developer.garmin.com/connect-iq/device-reference/edge1030bontrager/)
* [Edge® 1030 Plus](https://developer.garmin.com/connect-iq/device-reference/edge1030plus/)
* [Edge® 1040 / 1040 Solar](https://developer.garmin.com/connect-iq/device-reference/edge1040/)
* [Edge® 1050](https://developer.garmin.com/connect-iq/device-reference/edge1050/)
* [Edge® 130](https://developer.garmin.com/connect-iq/device-reference/edge130/)
* [Edge® 130 Plus](https://developer.garmin.com/connect-iq/device-reference/edge130plus/)
* [Edge® 520 Plus](https://developer.garmin.com/connect-iq/device-reference/edge520plus/)
* [Edge® 530](https://developer.garmin.com/connect-iq/device-reference/edge530/)
* [Edge® 540 / 540 Solar](https://developer.garmin.com/connect-iq/device-reference/edge540/)
* [Edge® 550](https://developer.garmin.com/connect-iq/device-reference/edge550/)
* [Edge® 820 / Explore](https://developer.garmin.com/connect-iq/device-reference/edge820/)
* [Edge® 830](https://developer.garmin.com/connect-iq/device-reference/edge830/)
* [Edge® 840 / 840 Solar](https://developer.garmin.com/connect-iq/device-reference/edge840/)
* [Edge® 850](https://developer.garmin.com/connect-iq/device-reference/edge850/)
* [Edge® 1000 / Explore](https://developer.garmin.com/connect-iq/device-reference/edge-1000/)
* [Edge® 520](https://developer.garmin.com/connect-iq/device-reference/edge-520/)
* [Edge® Explore](https://developer.garmin.com/connect-iq/device-reference/edgeexplore/)
* [Edge® Explore 2](https://developer.garmin.com/connect-iq/device-reference/edgeexplore2/)
* [Edge® MTB](https://developer.garmin.com/connect-iq/device-reference/edgemtb/)
* [Enduro™](https://developer.garmin.com/connect-iq/device-reference/enduro/)
* [Enduro™ 3](https://developer.garmin.com/connect-iq/device-reference/enduro3/)
* [epix™](https://developer.garmin.com/connect-iq/device-reference/epix/)
* [epix™ (Gen 2) / quatix® 7 Sapphire](https://developer.garmin.com/connect-iq/device-reference/epix2/)
* [epix™ Pro (Gen 2) 42mm](https://developer.garmin.com/connect-iq/device-reference/epix2pro42mm/)
* [epix™ Pro (Gen 2) 47mm / quatix® 7 Pro](https://developer.garmin.com/connect-iq/device-reference/epix2pro47mm/)
* [epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition](https://developer.garmin.com/connect-iq/device-reference/epix2pro51mm/)
* [eTrex® Touch](https://developer.garmin.com/connect-iq/device-reference/etrextouch/)
* [fēnix® 3 / tactix® Bravo / quatix® 3](https://developer.garmin.com/connect-iq/device-reference/fenix3/)
* [fēnix® 3 HR](https://developer.garmin.com/connect-iq/device-reference/fenix3-hr/)
* [fēnix® 5 / quatix® 5](https://developer.garmin.com/connect-iq/device-reference/fenix5/)
* [fēnix® 5 Plus](https://developer.garmin.com/connect-iq/device-reference/fenix5plus/)
* [fēnix® 5S](https://developer.garmin.com/connect-iq/device-reference/fenix5s/)
* [fēnix® 5S Plus](https://developer.garmin.com/connect-iq/device-reference/fenix5splus/)
* [fēnix® 5X / tactix® Charlie](https://developer.garmin.com/connect-iq/device-reference/fenix5x/)
* [fēnix® 5X Plus](https://developer.garmin.com/connect-iq/device-reference/fenix5xplus/)
* [fēnix® 6 / 6 Solar / 6 Dual Power](https://developer.garmin.com/connect-iq/device-reference/fenix6/)
* [fēnix® 6 Pro / 6 Sapphire / 6 Pro Solar / 6 Pro Dual Power / quatix® 6](https://developer.garmin.com/connect-iq/device-reference/fenix6pro/)
* [fēnix® 6S / 6S Solar / 6S Dual Power](https://developer.garmin.com/connect-iq/device-reference/fenix6s/)
* [fēnix® 6S Pro / 6S Sapphire / 6S Pro Solar / 6S Pro Dual Power](https://developer.garmin.com/connect-iq/device-reference/fenix6spro/)
* [fēnix® 6X Pro / 6X Sapphire / 6X Pro Solar / tactix® Delta Sapphire / Delta Solar / Delta Solar - Ballistics Edition / quatix® 6X / 6X Solar / 6X Dual Power](https://developer.garmin.com/connect-iq/device-reference/fenix6xpro/)
* [fēnix® 7 / quatix® 7](https://developer.garmin.com/connect-iq/device-reference/fenix7/)
* [fēnix® 7 Pro](https://developer.garmin.com/connect-iq/device-reference/fenix7pro/)
* [fēnix® 7 Pro - Solar Edition (no Wi-Fi)](https://developer.garmin.com/connect-iq/device-reference/fenix7pronowifi/)
* [fēnix® 7S](https://developer.garmin.com/connect-iq/device-reference/fenix7s/)
* [fēnix® 7S Pro](https://developer.garmin.com/connect-iq/device-reference/fenix7spro/)
* [fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2](https://developer.garmin.com/connect-iq/device-reference/fenix7x/)
* [fēnix® 7X Pro](https://developer.garmin.com/connect-iq/device-reference/fenix7xpro/)
* [fēnix® 7X Pro - Solar Edition (no Wi-Fi)](https://developer.garmin.com/connect-iq/device-reference/fenix7xpronowifi/)
* [fēnix® 8 43mm](https://developer.garmin.com/connect-iq/device-reference/fenix843mm/)
* [fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm](https://developer.garmin.com/connect-iq/device-reference/fenix847mm/)
* [fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm](https://developer.garmin.com/connect-iq/device-reference/fenix8pro47mm/)
* [fēnix® 8 Solar 47mm](https://developer.garmin.com/connect-iq/device-reference/fenix8solar47mm/)
* [fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm](https://developer.garmin.com/connect-iq/device-reference/fenix8solar51mm/)
* [fēnix® Chronos](https://developer.garmin.com/connect-iq/device-reference/fenixchronos/)
* [fēnix® E](https://developer.garmin.com/connect-iq/device-reference/fenixe/)
* [Forerunner® 165](https://developer.garmin.com/connect-iq/device-reference/fr165/)
* [Forerunner® 165 Music](https://developer.garmin.com/connect-iq/device-reference/fr165m/)
* [Forerunner® 170](https://developer.garmin.com/connect-iq/device-reference/fr170/)
* [Forerunner® 170 Music](https://developer.garmin.com/connect-iq/device-reference/fr170m/)
* [Forerunner® 230](https://developer.garmin.com/connect-iq/device-reference/fr230/)
* [Forerunner® 235](https://developer.garmin.com/connect-iq/device-reference/fr235/)
* [Forerunner® 245](https://developer.garmin.com/connect-iq/device-reference/fr245/)
* [Forerunner® 245 Music](https://developer.garmin.com/connect-iq/device-reference/fr245m/)
* [Forerunner® 255](https://developer.garmin.com/connect-iq/device-reference/fr255/)
* [Forerunner® 255 Music](https://developer.garmin.com/connect-iq/device-reference/fr255m/)
* [Forerunner® 255s](https://developer.garmin.com/connect-iq/device-reference/fr255s/)
* [Forerunner® 255s Music](https://developer.garmin.com/connect-iq/device-reference/fr255sm/)
* [Forerunner® 265](https://developer.garmin.com/connect-iq/device-reference/fr265/)
* [Forerunner® 265s](https://developer.garmin.com/connect-iq/device-reference/fr265s/)
* [Forerunner® 45](https://developer.garmin.com/connect-iq/device-reference/fr45/)
* [Forerunner® 55](https://developer.garmin.com/connect-iq/device-reference/fr55/)
* [Forerunner® 570 42mm](https://developer.garmin.com/connect-iq/device-reference/fr57042mm/)
* [Forerunner® 570 47mm](https://developer.garmin.com/connect-iq/device-reference/fr57047mm/)
* [Forerunner® 630](https://developer.garmin.com/connect-iq/device-reference/fr630/)
* [Forerunner® 645](https://developer.garmin.com/connect-iq/device-reference/fr645/)
* [Forerunner® 645 Music](https://developer.garmin.com/connect-iq/device-reference/fr645m/)
* [Forerunner® 70](https://developer.garmin.com/connect-iq/device-reference/fr70/)
* [Forerunner® 735xt](https://developer.garmin.com/connect-iq/device-reference/fr735xt/)
* [Forerunner® 745](https://developer.garmin.com/connect-iq/device-reference/fr745/)
* [Forerunner® 920XT](https://developer.garmin.com/connect-iq/device-reference/fr920xt/)
* [Forerunner® 935](https://developer.garmin.com/connect-iq/device-reference/fr935/)
* [Forerunner® 945](https://developer.garmin.com/connect-iq/device-reference/fr945/)
* [Forerunner® 945 LTE](https://developer.garmin.com/connect-iq/device-reference/fr945lte/)
* [Forerunner® 955 / Solar](https://developer.garmin.com/connect-iq/device-reference/fr955/)
* [Forerunner® 965](https://developer.garmin.com/connect-iq/device-reference/fr965/)
* [Forerunner® 970](https://developer.garmin.com/connect-iq/device-reference/fr970/)
* [Garmin Swim™ 2](https://developer.garmin.com/connect-iq/device-reference/garminswim2/)
* [GPSMAP® 66s / 66i / 66sr / 66st](https://developer.garmin.com/connect-iq/device-reference/gpsmap66/)
* [GPSMAP® 67 / 67i](https://developer.garmin.com/connect-iq/device-reference/gpsmap67/)
* [GPSMAP® 86s / 86sc / 86i / 86sci](https://developer.garmin.com/connect-iq/device-reference/gpsmap86/)
* [GPSMAP® H1 / H1i Plus](https://developer.garmin.com/connect-iq/device-reference/gpsmaph1/)
* [Instinct® 2 / Solar / Dual Power / dēzl Edition](https://developer.garmin.com/connect-iq/device-reference/instinct2/)
* [Instinct® 2S / Solar / Dual Power](https://developer.garmin.com/connect-iq/device-reference/instinct2s/)
* [Instinct® 2X Solar](https://developer.garmin.com/connect-iq/device-reference/instinct2x/)
* [Instinct® 3 AMOLED 45mm](https://developer.garmin.com/connect-iq/device-reference/instinct3amoled45mm/)
* [Instinct® 3 AMOLED 50mm](https://developer.garmin.com/connect-iq/device-reference/instinct3amoled50mm/)
* [Instinct® 3 Solar 45mm / 50mm](https://developer.garmin.com/connect-iq/device-reference/instinct3solar45mm/)
* [Instinct® Crossover](https://developer.garmin.com/connect-iq/device-reference/instinctcrossover/)
* [Instinct® Crossover AMOLED](https://developer.garmin.com/connect-iq/device-reference/instinctcrossoveramoled/)
* [Instinct® E 40mm](https://developer.garmin.com/connect-iq/device-reference/instincte40mm/)
* [Instinct® E 45mm](https://developer.garmin.com/connect-iq/device-reference/instincte45mm/)
* [Captain Marvel](https://developer.garmin.com/connect-iq/device-reference/legacyherocaptainmarvel/)
* [First Avenger](https://developer.garmin.com/connect-iq/device-reference/legacyherofirstavenger/)
* [Darth Vader™](https://developer.garmin.com/connect-iq/device-reference/legacysagadarthvader/)
* [Rey™](https://developer.garmin.com/connect-iq/device-reference/legacysagarey/)
* [MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition](https://developer.garmin.com/connect-iq/device-reference/marq2/)
* [MARQ® (Gen 2) Aviator](https://developer.garmin.com/connect-iq/device-reference/marq2aviator/)
* [MARQ® Adventurer](https://developer.garmin.com/connect-iq/device-reference/marqadventurer/)
* [MARQ® Athlete](https://developer.garmin.com/connect-iq/device-reference/marqathlete/)
* [MARQ® Aviator](https://developer.garmin.com/connect-iq/device-reference/marqaviator/)
* [MARQ® Captain / MARQ® Captain: American Magic Edition](https://developer.garmin.com/connect-iq/device-reference/marqcaptain/)
* [MARQ® Commander](https://developer.garmin.com/connect-iq/device-reference/marqcommander/)
* [MARQ® Driver](https://developer.garmin.com/connect-iq/device-reference/marqdriver/)
* [MARQ® Expedition](https://developer.garmin.com/connect-iq/device-reference/marqexpedition/)
* [MARQ® Golfer](https://developer.garmin.com/connect-iq/device-reference/marqgolfer/)
* [Montana® 7 Series](https://developer.garmin.com/connect-iq/device-reference/montana7xx/)
* [Oregon® 7 Series](https://developer.garmin.com/connect-iq/device-reference/oregon7xx/)
* [Rino® 7 Series](https://developer.garmin.com/connect-iq/device-reference/rino7xx/)
* [Venu®](https://developer.garmin.com/connect-iq/device-reference/venu/)
* [Venu® 2](https://developer.garmin.com/connect-iq/device-reference/venu2/)
* [Venu® 2 Plus](https://developer.garmin.com/connect-iq/device-reference/venu2plus/)
* [Venu® 2S](https://developer.garmin.com/connect-iq/device-reference/venu2s/)
* [Venu® 3](https://developer.garmin.com/connect-iq/device-reference/venu3/)
* [Venu® 3S](https://developer.garmin.com/connect-iq/device-reference/venu3s/)
* [Venu® 4 41mm](https://developer.garmin.com/connect-iq/device-reference/venu441mm/)
* [Venu® 4 45mm / D2™ Air X15](https://developer.garmin.com/connect-iq/device-reference/venu445mm/)
* [Venu® Mercedes-Benz® Collection](https://developer.garmin.com/connect-iq/device-reference/venud/)
* [Venu® Sq](https://developer.garmin.com/connect-iq/device-reference/venusq/)
* [Venu® Sq 2](https://developer.garmin.com/connect-iq/device-reference/venusq2/)
* [Venu® Sq 2 Music](https://developer.garmin.com/connect-iq/device-reference/venusq2m/)
* [Venu® Sq. Music Edition](https://developer.garmin.com/connect-iq/device-reference/venusqm/)
* [Venu® X1](https://developer.garmin.com/connect-iq/device-reference/venux1/)
* [vívoactive®](https://developer.garmin.com/connect-iq/device-reference/vivoactive/)
* [vívoactive® 3](https://developer.garmin.com/connect-iq/device-reference/vivoactive3/)
* [vívoactive® 3 Mercedes-Benz® Collection](https://developer.garmin.com/connect-iq/device-reference/vivoactive3d/)
* [vívoactive® 3 Music](https://developer.garmin.com/connect-iq/device-reference/vivoactive3m/)
* [vívoactive® 3 Music LTE](https://developer.garmin.com/connect-iq/device-reference/vivoactive3mlte/)
* [vívoactive® 4](https://developer.garmin.com/connect-iq/device-reference/vivoactive4/)
* [vívoactive® 4S](https://developer.garmin.com/connect-iq/device-reference/vivoactive4s/)
* [vívoactive® 5](https://developer.garmin.com/connect-iq/device-reference/vivoactive5/)
* [vívoactive® 6](https://developer.garmin.com/connect-iq/device-reference/vivoactive6/)
* [vívoactive® HR](https://developer.garmin.com/connect-iq/device-reference/vivoactive-hr/)
MenuDevice Reference

10. Raw pressure data - Connect IQ App Development Discussion - Connect IQ - Garmin Forums
   URL: https://forums.garmin.com/developer/connect-iq/f/discussion/1217/raw-pressure-data
   Raw pressure data - Connect IQ App Development Discussion - Connect IQ - Garmin Forums

- Replies 12 replies
- Subscribers 16 subscribers
- Views 4083 views
- Users 0 members are here

Options

Related

# Raw pressure data

I am trying to develop an app that uses the pressure information from Sensor.Info.pressure. When i test my app on the Fenix 3 i do not get the result i want. When i apply a sudden pressure change the readings do change but after a few seconds the value moves back the the value before i increased the pressure. It looks to me that this is not a raw sensor value but some auto calibrated one. Is there a way to use the raw sensor data?

- Sign in to reply
- Cancel

Is Garmin watching their forum? Anybody?

I would also like access to the raw pressure data as well. I suspect for the same reason - a depth gauge. At the very least a complete and accurate description of what the data we are getting out of GetSensorInfo is so we can manually deconstruct it back into what is needed. The raw info is available as a datafield, so why can we not access it in the API? (The same goes with GPS altitude) Right now the only workaround is to use altitude (from either SensorInfo or ActivityInfo), but since we don't know how exactly how that is derived, any depth calculations base off altitude can not be considered reliable. Thanks

I have plans to look into this further, but it'll have to go into my queue. I'll see what I can find out and try to get an answer by later this week or early next week.

This hasn't been forgotten! I'm talking to the device teams to get an answer on this. Connect IQ doesn't do anything to the data--we're basically just making a request to the OS for sensor data and piping through whatever it returns. If there is any auto-calibration or massaging of the data, it's happening at a lower level. Once I have an answer, I'll post it here. Thanks for your patience!

Thanks Brandon! I will wait patiently. I hope you will come back with good news ;)

> This hasn't been forgotten!

I think it now is forgotten?

Hey guys,This is how I do it in my app.Data available: sensor.altitude (from pressure using baro setting) and sensor.pressure (that really gives the barometer setting adjusted with changes in pressure since that setting was made by user - as far as I understand)Assumption: even a 100mb change in pressure (which is huge) will only impact the result by only 10cm under water, so it's quite negligible.1/ Take current pressure altitude2/ Convert it to ambient pressure (below, replacing p0 with baro setting would return the correct ambient pressure, but again sensor.pressure doesn't give exactly baro setting).3/ Convert that to depth`// Physics for ambient pressure calculation var p0 = 101325;// sea level standard atmospheric pressure Pa var L = 0.0065;// temperature lapse rate, = g/cp*for dry air K/m var T0 = 288.15;// sea level standard temperature 288,15 K var g = 9.80665;// Earth-surface gravitational acceleration 9,80665 m/s² var M = 0.0289644;// molar mass of dry air 0,0289644 kg/mol var R = 8.31447;// universal gas constant 8,31447 J/(mol*K) var exp = g*M/R/L; var fact = L/T0; var press = p0 * Math.pow((1-altitude*fact),exp)/100; var depth = 0.0; depth = (press/1000.0 - 1); if (unitElevMeters){ altStr = "-" + depth.format("%.2f") + "m"; } else {//feet altStr = "-" + (depth*3.28084).format("%1f") + "ft"; } ` Don't know if it helps but I hope so.

No not forgotten. :) Work is still ongoing, but it's going to take some time. I apologize that it's not being completed more quickly. It's not a simple matter of flipping a switch to make the data available--we're coordinating with a couple of other technology teams to come up with the best solution, and that will likely require us to also coordinate with device teams to integrate any necessary changes.

@julienvn: thanks for the formula this may be very helpful. But to be honest i have some troubles to use it. Technical it is not an issue but why should i make all strange calculation to recalculate the original data? I am an engineer that has the motivation to make an app for garmin to make their prduct better for free. It take a lot of my time to do this but how is the support to me in this case? I don't understand it is now 2 months later and still no response again. @brandon: please correct me if i see things the wrong way ��. I would be happy to admit that i am wrong in this case.

Hi there,I had the same issue as Fruitmans and posted the same question on another thread (https://forums.garmin.com/forum/developers/connect-iq/159801-) However, as it seems there is still no solution to that. Is there any chance that the ambient pressure sensor reading is going to be directly available? It seems kind of odd that only processed pressure data is available through the API even though there exists a datafield for this data.Maybe Brandon can give us an update on that after two years? Are there any plans to make this available through CIQ?Thanks for an update

Device Reference