BonnetRouge Dive-Planner

Time to read
3 minutes
Read so far

BonnetRouge Dive-Planner

February 01, 2018 - 21:37

BonnetRouge Dive-Planner is an Android application enabling advanced recreational divers to compute the maximal bottom time of a dive based on a Bühlmann algorithm supporting Baker's Gradient Factors.

BonnetRouge is an Android 6.0, Buhlmann & gradient-factor-based dive planner.

Submitted by Sandrine Sage

Dive-planners usually compute your run-time and gas consumption, based on the dive profile and bottom time that you feed it with. When a diver plans a dive with given diving equipment, he/she must determine the longest time he/she can stay at the bottom enabling him/her to return to the surface: after having applied the corresponding decompression protocol, within a specified lapse of time and having respected his gas consumption constraints. This computation is currently handled through the diver's experience or by iteratively programming dives of increasing bottom-time on dive-computers.

Maximizing time

BonnetRouge, on the other hand, computes how long you can stay at the bottom, or at which bottom-mix gas pressure you must start your ascent, so as to fit the maximum total dive time, gas reserve and other constraints given the following parameters which have to be specified and entered:

  • Your tanks: content, initial pressure, and reserve;
  • Your RMV and optionally, that of your dive buddy (if you wish to plan for a buddy breathing ascent);
  • Your (square) dive profile: altitude, water density, maximum depth, ascent/descent velocities, maximum total dive time you're aiming at;
  • Your preferred decompression parameters: gradient factors, maximum %Mvalue.

In short: it enables you to adjust your dive plan to your dive material and constraints, and not the other way around.

Objective of this work

BonnetRouge is meant to be used in an educational environment. It has been designed to help you better understand, through the different simulations that you can run, the effect of decompression parameters (eg. gradient-factors), gas reserves, RMV, ... on your dive. It is available free of charge from Google Play.

The accompanying paper covers the underlying algorithms in full details. Gradient factors and Mvalues are explained, with a focus on how they exactly affect your decompression:

  • Gradient factor low determines the depth of your first stop : the greater its value, the shallower the first ceiling;
  • Gradient factor high affects the duration of your stops (their depth being forced to a constant 3 m interval) : the greater its value, the shallower the compartments' ceiling, and the shorter the stop to move on to the next stop, 3 m above;
  • Maximum %Mvalue determines how close to their Mvalue your compartments' pressure will be;
  • Some decompression constraints may be incompatible. A gradient factor low larger than a gradient factor high would result in compartments having ceilings that are deeper than the current ceiling. Too small gradient factors or maximum %Mvalue could lead to ceilings below the ambient pressure line.

How BonnetRouge works

BonnetRouge simulates a series of dive profiles, each having an incrementally increasing bottom-time, until it finds one matching the maximum total dive duration or when one of the tank reserves is reached. The very first simulated profile has a bottom-time of 0 min. The diver ascends immediately after he has reached the bottom. For each other simulated profile, the bottom-time is increased by 1 minute. In each profile, the diver ascends to the surface after having applied the required decompression protocol.

If the diver reaches the surface without having exceeded the dive's maximum duration or the tanks' reserve, then another dive profile is computed, increasing the bottom-time by one minute. The simulations are stopped when a profile is found that exceeds the dive's maximum duration or one of the tanks' reserves.

During the dive, inert gases dissolve in the diver's compartments (body tissue type). As the diver returns to the surface, these gases are released from the compartments. Each compartment stores and releases inert gases at different rates. The diver must return to the surface following a decompression protocol that manages the rate at which inert gases are released from each compartment. At a specific time of the dive, each compartment can sustain a specific, maximum depth variation.

A compartment's ceiling is the deepest depth that the diver can reach while respecting that maximum depth variation. During his ascent, the diver must continuously ensure that none of the compartments' ceiling is ever exceeded. At a specific time of the dive, the leading compartment is the one able to sustain the smallest depth variation.

The first, deepest, stop depth is computed when the diver is about to start his ascent. The compartments' ceiling is the maximum value between the ceiling computed using the gradient factor low constraint and the ceiling computed using the maximum %Mvalue constraint. It is rounded up to the deepest 3 m multiple.

The following stops' depths are set 3 m shallower than the last stop's depth, to respect commonly accepted conventions. The diver will be cleared for ascending to the next stop's depth, 3 m shallower than his current depth, when all of his compartments will be able to sustain a 3 m depth decrease. This will be achieved by stopping long enough at the current stop's depth. The stop duration is computed iteratively, by increased by steps of 1 minute, until the leading compartment is able to sustain a 3 m depth decrease. The compartments' ceiling is the maximum value between the ceiling computed using the gradient factor high constraint and the ceiling computed using the maximum %Mvalue constraint.

When BonnetRouge has found the dive profile matching your constraints, it displays the maximum bottom time, or the minimal tank pressure which you must start your ascent, as well as your run-time. You can display the leading compartment's pressure graph, to see how the leading compartment's pressure decreases at each dive stop and how it compares to its corresponding Mvalue.

Attachments / Downloads