Apple Watch Ultra — what dive software is in the works?

Please register or login

Welcome to ScubaBoard, the world's largest scuba diving community. Registration is not required to read the forums, but we encourage you to join. Joining has its benefits and enables you to participate in the discussions.

Benefits of registering include

  • Ability to post and comment on topics and discussions.
  • A Free photo gallery to share your dive photos with the world.
  • You can make this box go away

Joining is quick and easy. Log in or Register now!

Wibble

Contributor
Messages
5,520
Reaction score
5,912
Location
UK
# of dives
500 - 999
We know that the Apple Watch Ultra is restricted to 40m/132ft as he operating system won’t record anything below that depth. Ultra v2 might fix this — in the lap of the Apple gods.

The Apple Watch Ultra comes with a bottom timer appp for free. Ratio deco to the rescue— knew it would come in handy one day :cool:

You can rent that expensive Huish appp for a recreational dive computer which hopefully would handle basic deco calculations, albeit with one gas.


What other applications are in the works? Are there any open source dive appps coming down the pike? What about other dive related applications such as dive planners? Underwater compass?

Just curious as I’ve a need for a backup computer for a trusty Shearwater Perdix when OC diving. A Shearwater Teric would be great but that’s way more than an Apple Ultra which would work OK for a backup computer.
 
Apple Watch Ultra is restricted to 40m/132ft as he operating system won’t record anything below that depth. Ultra v2 might fix this…

The limit is currently software, not hardware. Looking forward to seeing what happens.
 
I don't know much about apple watch stuff but I did a quick browse into their documentation and they do not expose depth sensor data publicly in their APIs. SRSensor | Apple Developer Documentation. There is some property called ambient pressure but I suspect this is for atmospheric pressure, altimeter etc.
If my above finding is correct, and feel free to correct me, there will not be any open source or independent provider until their api's support it.
 
I don't know much about apple watch stuff but I did a quick browse into their documentation and they do not expose depth sensor data publicly in their APIs. SRSensor | Apple Developer Documentation. There is some property called ambient pressure but I suspect this is for atmospheric pressure, altimeter etc.
If my above finding is correct, and feel free to correct me, there will not be any open source or independent provider until their api's support it.
This link is for support to read various sensors at quite a low level. That API is intended to be used by proper health data capture apps, probably as part of proper academic studies. Apple want to review the use of those APIs always due to privacy concerns.

There is a completely different set of APIs to do with water and depth. To use those you also need permission from Apple and some justifications regarding scuba diving apps. I have asked for those but not heard back.

”Open Source”, in the sense of being able to build and run code, doesn’t quite apply in the Apple App Store ecosystem generally, due to code signing and limited dev distribution. For things that need these team or product based entitlements it looks like the best anyone might expect is to be able to read the code.
 
This link is for support to read various sensors at quite a low level. That API is intended to be used by proper health data capture apps, probably as part of proper academic studies. Apple want to review the use of those APIs always due to privacy concerns.

There is a completely different set of APIs to do with water and depth. To use those you also need permission from Apple and some justifications regarding scuba diving apps. I have asked for those but not heard back.

”Open Source”, in the sense of being able to build and run code, doesn’t quite apply in the Apple App Store ecosystem generally, due to code signing and limited dev distribution. For things that need these team or product based entitlements it looks like the best anyone might expect is to be able to read the code.
I think we are roughly at the same page, if, oceanic or any other company built an app, they used those apis, they exist, just not public. Unless someone has special access to them, there will not be another app and once they are publc, you can write your own app and make it open source. I doubt it is hard to write a dive app by using health apis, you just need water pressure sensor data on top of already available. But again, if we want to answer @Wibble 's questions, we should be asking how do you get access to them, who already did, are they going to be public?
 
A couple of points that I learned in my foray into building an open source app to export dive data (depth and water temperature) from the Apple Watch Ultra.

1) After-the-fact depth and temp data is available through the Apple HealthKit framework (and viewable in the Health App on the paired iPhone). This I believe this data is stored by WatchOS no matter what dive computer (or bottom timer) application is running. It may even be stored if there is no application running -- I will try that on my next dive.
2) To write a new dive computer or bottom timer application, you need access to the real-time submersion data that is part of the CoreMotion framework (the same framework that has access to accelerometers, etc.) In order to access the CMWaterSubmersionManager class, you need an entitlement added to your project that you have to obtain from Apple. My understanding is that this entitlement has only been provided to Huish/Oceanic at this point, but is expected to be more available in the future.

Here is the link to the docs on the submersion data access:


Here is a link to the thread about my exporter app:


”Open Source”, in the sense of being able to build and run code, doesn’t quite apply in the Apple App Store ecosystem generally, due to code signing and limited dev distribution. For things that need these team or product based entitlements it looks like the best anyone might expect is to be able to read the code.
It is possible to pair open source projects with the App Store distribution. My app, is licensed under the GPLv2 open source license and the source code is available on GitHub. Anyone who wants to take the code and modify it for their own use can do that themselves in Xcode and run it on their own device without going through the App Store. If they want to contribute the code back to the project, I would incorporate it (if deemed appropriate) and then do another release through the App Store. There are limitations to how the releases are done through the App Store, but those are not insurmountable.

-Doug
 
The limit is currently software, not hardware. Looking forward to seeing what happens.
How are you so certain? I don't believe there's been a definitive answer to this.
 
How are you so certain? I don't believe there's been a definitive answer to this.
It is definitely a "belief" that it is a software limit rather than a "certainty", but it is a pretty good bet that it is in software because of how steady and consistent the 44m data points are when the watch is below 44m. That being said, there are various places in the system that could be considered "software", all with various likelihoods of being addressed in the future.

- Microcode on the pressure sensor itself. This would be hard-coded into the sensor chip and it is unlikely that any update (other than a new model of the watch would address it.)
- Firmware on the watch -- this is the low-level code on the watch that abstracts all of the hardware varieties (Apple Watch Ultra vs. Apple Watch 7, etc.) Apple would have to update this code and I'm not sure if there is a way to update it after the watch ships from the factory like there is in most computers.
- WatchOS -- this is the operating system for the watch and would interface with the firmware and provide the HealthKit and CoreMotion APIs for accessing the data. Again, Apple would have to update this code, but at least there are clear ways to do OS upgrades on the watch.
- Application -- this is the software provided by Huish/Oceanic that operates as a dive computer. This is the least likely place that the limit is occurring since we know the HealthKit data is being written independent of the Application software and the limit appears in the HealthKit data in addition to the Application.

I have no inside knowledge on any of this -- it's just what I've been able to learn from looking at the developer documentation and listening to what other people I trust have to say. So I could be wrong...

-Doug
 
https://www.shearwater.com/products/swift/

Back
Top Bottom