Software Suggestions

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!

Actually someone did a comparison of various implementations of ZHL16 on CCRx a few years ago, same depth and BT. Several apps were pretty buggy and did not generate a correct schedule.
Different Software - Different Plans

As I said in a previous (defunct) thread I think it is a good piece of software.
The problem is the attitude of the programmer that went down in a landslide and casts doubts on where the limit is ...
As better qualified people said I lost trust. And since you need to trust the results ... to dive with peace of mind I will run the software for planning purposes and then use two independently implemented ZHL-16GF.
One in my vision reb and one in my OSTC computer (German and British ?)

Kind of hate the outcome ... but lost trust is never really regained.

MultiDeco appears to perform just fine. Let's not throw the baby out with the programmer.
 
MultiDeco appears to perform just fine. Let's not throw the baby out with the programmer.
Just because a product "works" is not the only consideration. Who makes it, where its made, how its made, customer service etc are all valid criteria for purchase or use too.
 
Just because a product "works" is not the only consideration. Who makes it, where its made, how its made, customer service etc are all valid criteria for purchase or use too.

Be more specific. It works well, in my experience, customer service has been excellent, upgrades timely and seamless. Is it that you just don't like the programmer/owner? Certainly your prerogative, you could probably apply these same criteria to many products, you just don't have the information to do so. I don't like the owners or management teams of many companies, but it doesn't necessarily prevent me from buying their very good products.
 
I use the Buhlmann part of Decoplanner (when I can coax it to work on OSX), the Buhlmann part of Baltic on iOS, and a Buhlmann/GF ratio deco planner I wrote myself.

I've written a few Buhlmann implementations over the years, writing one yourself is the only way you can be entirely sure what assumptions are being used. The actual algorithm is not that complicated, the hardest part is the research to be sure you have the correct constants.
 
Seems there's a lot of dive planning software around, but none open source. With an open source dive planning software one could actually check the algorithms and continue development in a community. There's subsurface, but it focuses on logging dives, not planning.

Aside from bubble models, there's no complicated math or algorithms with calculating decompression profiles and gas plans. Shouldn't be too hard coming up with an open source project here.
 
@boulderjohn , I've been struggling with the same thing. My problem is I want something on Android and Mac, as those are my platforms of choice.
My iOS friends love Baltic. My Winders friends love Decoplanner. Neither run on my hardware.
I've heard rumors that there may be a new version of a dive planning tool that will run on Winders, OS-X, iOS and Android. My fingers are crossed.

Is offline use critical for you, or could you live with a website that allows you to plan on a server and download the plan? Platform-independence is so much easier online ... no apps, no downloads, no updates, no compilation, ...
 
Seems there's a lot of dive planning software around, but none open source. With an open source dive planning software one could actually check the algorithms and continue development in a community. There's subsurface, but it focuses on logging dives, not planning.

Aside from bubble models, there's no complicated math or algorithms with calculating decompression profiles and gas plans. Shouldn't be too hard coming up with an open source project here.

Here is a contribution (in Python) towards a Buhlmann/GF project:

Note: This is NOT a full implementation (My planner doesn't implement GF stops in a conventional way, so someone else will have to come up with a way of allocating stops), but some key variables and formulas towards an implementation. Please don't take my word for it, check it...

Code:
### initialise variables:

WaterVapour = 0.049300
DescentRate = 1.5

Compartments = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

TissueN2 = [0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053,0.751053]
TissueHe = [0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000]

HalftimesN2 = [4.000000,8.000000,12.500000,18.500000,27.000000,38.300000,54.300000,77.000000,109.000000,146.000000,187.000000,239.000000,305.000000,390.000000,498.000000,635.000000]
HalftimesHe = [1.510000,3.020000,4.720000,6.990000,10.210000,14.480000,20.530000,29.110000,41.200000,55.190000,70.690000,90.340000,115.290000,147.420000,188.240000,240.030000]

AValN2 = [1.259921,1.000000,0.861773,0.756204,0.666666,0.560000,0.494700,0.450000,0.418685,0.379821,0.349743,0.322278,0.297118,0.273742,0.252321,0.232686]
BValN2 = [0.505000,0.651446,0.722157,0.772504,0.812549,0.843415,0.869293,0.891039,0.909217,0.922239,0.931872,0.940315,0.947740,0.954363,0.960188,0.965316]

AValHe = [1.742400,1.383000,1.191900,1.045800,0.922000,0.820500,0.730500,0.650200,0.595000,0.554500,0.533300,0.518900,0.518100,0.517600,0.517200,0.511900]
BValHe = [0.424500,0.574700,0.652700,0.722300,0.758200,0.795700,0.827900,0.855300,0.875700,0.890300,0.899700,0.907300,0.912200,0.917100,0.921700,0.926700]

ACombined = []
BCombined = []
Ceiling = []
GFs = []

for cntr in Compartments:
    ACombined.append(((AValHe[cntr]*TissueHe[cntr])+(AValN2[cntr]*TissueN2[cntr]))/(TissueHe[cntr]+TissueN2[cntr]))
    BCombined.append(((BValN2[cntr]*TissueN2[cntr])+(BValHe[cntr]*TissueHe[cntr]))/(TissueHe[cntr]+TissueN2[cntr]))
    Ceiling.append((((TissueN2[cntr]+TissueHe[cntr]-ACombined[cntr])/(1/BCombined[cntr]))-1)*10)
    GFs.append((BCombined[cntr]*(TissueN2[cntr]+TissueHe[cntr])-(BCombined[cntr]*CurrentPressure))/(CurrentPressure-(BCombined[cntr]*CurrentPressure)+(BCombined[cntr]*ACombined[cntr])))

Code:
### Schreiner equations for ascent/descent phases:

PN2 = FN2*(CurrentPressure-WaterVapour)
PHe = FHe*(CurrentPressure-WaterVapour)

for cntr in Compartments:
    GFs[cntr] = (BCombined[cntr]*(TissueN2[cntr]+TissueHe[cntr])-(BCombined[cntr]*CurrentPressure))/(CurrentPressure-(BCombined[cntr]*CurrentPressure)+(BCombined[cntr]*ACombined[cntr]))
    TissueN2[cntr] = (FN2*(CurrentPressure-WaterVapour))+(DescentRate*FN2)*(DescentTime-(1/(math.log(2)/HalftimesN2[cntr])))-((FN2*(CurrentPressure-WaterVapour))-TissueN2[cntr]-((DescentRate*FN2)/(math.log(2)/HalftimesN2[cntr])))*math.exp(-1*(math.log(2)/HalftimesN2[cntr])*DescentTime)
    TissueHe[cntr] = (FHe*(CurrentPressure-WaterVapour))+(DescentRate*FHe)*(DescentTime-(1/(math.log(2)/HalftimesHe[cntr])))-((FHe*(CurrentPressure-WaterVapour))-TissueHe[cntr]-((DescentRate*FHe)/(math.log(2)/HalftimesHe[cntr])))*math.exp(-1*(math.log(2)/HalftimesHe[cntr])*DescentTime)
    ACombined[cntr] = ((AValHe[cntr]*TissueHe[cntr])+(AValN2[cntr]*TissueN2[cntr]))/(TissueHe[cntr]+TissueN2[cntr])
    BCombined[cntr] = ((BValN2[cntr]*TissueN2[cntr])+(BValHe[cntr]*TissueHe[cntr]))/(TissueHe[cntr]+TissueN2[cntr])
    Ceiling[cntr] = (((TissueN2[cntr]+TissueHe[cntr]-ACombined[cntr])/(1/BCombined[cntr]))-1)*10

Code:
### Buhlmann equations for state at end of stops:

PN2 = FN2*(CurrentPressure-WaterVapour)
PHe = FHe*(CurrentPressure-WaterVapour)
  
for cntr in Compartments:
    GFs[cntr] = (BCombined[cntr]*(TissueN2[cntr]+TissueHe[cntr])-(BCombined[cntr]*CurrentPressure))/(CurrentPressure-(BCombined[cntr]*CurrentPressure)+(BCombined[cntr]*ACombined[cntr]))
    TissueN2[cntr] = TissueN2[cntr]+(PN2-TissueN2[cntr])*(1-math.pow(2,(-1*(TimeInterval/HalftimesN2[cntr]))))
    TissueHe[cntr] = TissueHe[cntr]+(PHe-TissueHe[cntr])*(1-math.pow(2,(-1*(TimeInterval/HalftimesHe[cntr]))))
    ACombined[cntr] = ((AValHe[cntr]*TissueHe[cntr])+(AValN2[cntr]*TissueN2[cntr]))/(TissueHe[cntr]+TissueN2[cntr])
    BCombined[cntr] = ((BValN2[cntr]*TissueN2[cntr])+(BValHe[cntr]*TissueHe[cntr]))/(TissueHe[cntr]+TissueN2[cntr])
    Ceiling[cntr] = (((TissueN2[cntr]+TissueHe[cntr]-ACombined[cntr])/(1/BCombined[cntr]))-1)*10
 
Last edited:
Is there a good planning tool for Linux (which I am migrating myself to)?

Subsurface includes a planner implementing ZHL-16 GF and VPM-B (up to +4 ).

Also, welcome to the dark side; cookies and coffee are on the table in the back, install media is on the shelf, and mechanical keyboards are in the closet.

Here is a contribution (in Python) towards a Buhlmann/GF project:

Code:
python without [CODE] blocks just makes me weep.
 
Last edited:
Subsurface includes a planner implementing ZHL-16 GF and VPM-B (up to +4, which means +5 is ).

Also, welcome to the dark side; cookies and coffee are on the table in the back, install media is on the shelf, and mechanical keyboards are in the closet.

Wow! I use Subsurface for my dive logging, but I never even realized there was a dive planner in there. It is pretty darn nice! It's a bit wonky though with planning dives if you want to include a safety stop. And no option to have it automatically include a safety stop, or maybe I should say, no option to have it automatically include extra deco at the last stop. And no way to tell it to use 30' for the last deco stop. I do like the way you can plan repetitive dives.

Overall, it is definitely cool and I will start using it, at least as an option to compare against M-D or PastoDeco.

Thanks for the tip!

Oh, and no worries. I think I still have a box of 5 1/4" floppy disks from college laying around somewhere.... LOL
 
https://www.shearwater.com/products/swift/
http://cavediveflorida.com/Rum_House.htm

Back
Top Bottom