O2 sensor values on CCR dives

Davide DB dbdavide at gmail.com
Fri Dec 1 08:43:40 PST 2017


On 1 December 2017 at 16:54, Jef Driesen <jef at libdivecomputer.org> wrote:
> On 2017-12-01 15:57, Davide DB wrote:
>>
>> Yes, what do you need exactly?
>> I this thread I shared the dctool raw data file and some screenshots
>> of Shearwater desktop and Subsurface of the same dive.
>> I can share the Subsurface xml file and maybe an export from
>> shearwater desktop if exist.
>> Eventually I will send you everything off list.
>
>
> The raw dive data, and also the data from Shearwater Desktop to compare
> against. The subsurface xml is useless here, because that's just the
output
> of the libdivecomputer parser. Since that's basically what we want to
verify
> it useless as "ground truth".
>
>>> The average ppO2 is stored directly in the data, so that shouldn't match
>>> perfectly. But the individual sensors is another story. In the data
there
>>> is
>>> only the millivolt, and libdivecomputer converts this into a ppO2 value
>>> based on the calibration values. This conversion is reverse engineered,
>>> so a
>>> mistake there is not impossible. Note that libdivecomputer no longer
>>> reports
>>> the average ppO2, only the individual sensors.
>>>
>>> Is the resulting ppO2 wrong for the entire dive, or only during the deco
>>> stop? The calibration does a simple multiplication with a constant
value,
>>> so
>>> if there is something wrong there, I would expect to see the same kind
of
>>> error throughout the entire dive.
>>
>>
>> Yes, it's wrong for the entire dive. I noticed the error looking at
>> the deco part just because Subsurface signalled me being at over 1.6
>> for all the 6 meter stop. But looking at O2 values in the deep part,
>> Subsurface seems to report always 0.1, 0.2 more than the real value.
>
>
> That's already good to know. So that means that either the calibration
> constant, our calibration formula, or even the decoding of the millivolt
> values is wrong. But the problem here is how do we verify this?
>
> Look at the sample data in your xml export from shearwater desktop:
>
> <diveLogRecord>
>     <currentTime>0</currentTime>
>     <currentDepth>4</currentDepth>
>     <firstStopDepth>0</firstStopDepth>
>     <ttsMins>1</ttsMins>
>     <averagePPO2>0.98</averagePPO2>
>     <fractionO2>0.18</fractionO2>
>     <fractionHe>0.45</fractionHe>
>     <firstStopTime>0</firstStopTime>
>     <currentNdl>99</currentNdl>
>     <currentCircuitSetting>0</currentCircuitSetting>
>     <waterTemp>20</waterTemp>
>     <gasSwitchNeeded>false</gasSwitchNeeded>
>     <externalPPO2>false</externalPPO2>
>     <setPointType>0</setPointType>
>     <circuitSwitchType>0</circuitSwitchType>
>     <sensor1Millivolts>54</sensor1Millivolts>
>     <sensor2Millivolts>55</sensor2Millivolts>
>     <sensor3Millivolts>54</sensor3Millivolts>
>     <batteryVoltage>1.52</batteryVoltage>
>     <tank0pressurePSI>0</tank0pressurePSI>
>     <tank1pressurePSI>0</tank1pressurePSI>
>     <gasTime>0</gasTime>
>     <sac>0</sac>
> </diveLogRecord>
>
> There are millivolt values, but no corresponding ppO2 values. So I can
> double check the millivolt values, but we have nothing to compare our ppO2
> values against.
>
> Jef

Hummm...
If I enable the average pO2 display on Subsurface even that values are
higher than the average calculated by Shearwater Desktop (SD).
Of course if the input data have an offset, even the resulting average will
be biased.
You wrote:

> In the data there is only the millivolt, and libdivecomputer converts
this into a ppO2 value based on the calibration values. This conversion is
reverse engineered, so a mistake there is not impossible.

What I do not understand is how this conversion was made the very first
time. I mean how did you reverse engineered those values? I mean did you
have a reference data set (mV, calibration K and resulting po2) to compare
against?

SD optionally shows the individual mv values against the average pO2. Is
this sufficient?

[image: Inline images 1]

Going Sci-Fi the hard way to solve this is having the computer recording a
dive at a fixed depth and a fixed FO2 input. I have (nearly) all the pieces
to setup a test like this except that the sensor cable doesn't pass through
the pressure chamber :) I don't know if the Petrel can be forced to record
a dive at ambient pressure.


-- 
Davide
https://vimeo.com/bocio/videos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20171201/cb3595e8/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: po2-sample.jpg
Type: image/jpeg
Size: 7289 bytes
Desc: not available
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20171201/cb3595e8/attachment-0001.jpg>


More information about the subsurface mailing list