Subsurface UI for CCR dives

Willem Ferguson willemferguson at
Tue Oct 14 00:35:48 PDT 2014

The code for implementing CCR dives has mostly been completed, barring a 
few small issues. I think it is time that we start considering what the 
UI should look like for CCR dives.

My proposal is that not much changes. As is, the gas pressure graphs 
adequately show gas partial pressures during the dive. and the placing 
of the gas pressure graphs is efficient.

Oxygen analysis:
I propose that we add another button to the profile tool bar, perhaps 
something like the attached icon "o2icon.jpg", indicating "Oxygen 
Analysis". When this button is activated, the normal gas partial 
pressures are replaced with graphs for the setpoint as well as for the 
po2 as measured by each of the sensors. In the case of the Poseidon 
data, there should be three lines in the graph: setpoint (maybe in black 
or in red) and the partial pressures as seen by each of the two o2 
sensors. Ideally, the graphs for the o2 sensors should not have the same 
colour. This is because if one particular sensor tends to give a high 
reading or a low reading or a variable reading, one would like to know 
which of the sensors it is. I have made a mockup, attached as 
OxygenAnalysis.jpg, serving as a proposal for a situation for which the 
o2 sensors show no abnormality. The setpoint graph is likely to be more 
angular than on the figure. Careful attention needs to be given to the 
colours of the lines. The black line on the mockup does not contrast 
particularly well with the other two lines and red might have been better.
Sensor data are found in array plot_data.o2sensor[3] defined in profile.h.
Setpoint data are found in plot_data.o2setpoint.
To detect  a CCR dive, check whether divecomputer.dctype has an enum 
vaue of CCR.
The number of o2 sensors in the system is found in 
divecomputer.no_o2sensors. There is provision for up to 3 oxygen sensors.

Cylinder gas pressures:
The Poseidon is possibly the only CCR system with gas integration on 
both cylinders but the demand for gas integration is growing (e.g. for 
the Shearwater Nerd which is basically a modified Petrel). With CCR 
dives, cylinder 0 is assumed to be the oxygen cylinder and cylinder 1 is 
assumed to hold the diluent gas. If baleout takes place, it would be to 
cylinder 2. The oxygen pressures (mbar) are found in 
plot_data.pressure[2], defined in profile.h. pressure[0] has the raw 
sensor pressure data while pressure[1] contains the interpolated values 
between measured data points. Similarly, the pressure of the diluent gas 
is held in plot_data.diluentpressure[2] (raw measurements in 
diluentpressure[0] and interpolations in diluentpressure[1]. Two lines, 
indicating the pressures in the two cylinders need to be draw, as 
opposed to the single line that has been the case to date.

Robert Helling's decompression analysis graph:
In my opinion, the present setup does not at all do justice to what 
Robert has created. It sits squashed below the gas pressure graphs, 
superimposed on the x-axis, obscuring time information on that axis. 
There must be a better way. If, with CCR dives, there are two 
alternative displays of gas pressure (calculated partial pressures and 
oxygen analysis), toggled by a button in the toolbar, would it not be 
feasible to use the same principle to display Robert's deco analysis? 
There already is a toolbar button for Robert's deco analysis. An 
alternative display, activated by the existing tool bar button, would 
remove the gas pressure data and show the tissue pressures and the 
M-value line.

These are my ideas. Do you think this is sensible? Any other ideas, 
suggestions or proposals that are implementable with the existing 
Subsurface dive information? CCR divers, please respond!
Kind regards,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: o2icon.jpg
Type: image/jpeg
Size: 3197 bytes
Desc: not available
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OxygenAnalysis.jpg
Type: image/jpeg
Size: 40319 bytes
Desc: not available
URL: <>

More information about the subsurface mailing list