O2 sensor values on CCR dives
Jef Driesen
jef at libdivecomputer.org
Thu Dec 7 06:12:16 PST 2017
On 2017-12-04 16:06, Davide DB wrote:
> On 4 December 2017 at 15:47, Jef Driesen <jef at libdivecomputer.org>
> wrote:
>> Davide's data is the exception to the rule. It's the only dataset with
>> CCR
>> dives present, and an ADC offset of -1. I'm not sure what's going on
>> there.
>> The -1 could be a valid value here, but it would be really coincidence
>> if
>> all three sensors have the same ADC offset. All other datasets with
>> CCR
>> dives have different values for each sensor.
>>
>> I suspect the millivolt values already take into account the ADC
>> value.
>> Because if that's not the case, then I would expect to see large
>> deltas
>> between the stored average ppO2 and the manually calculated ppO2 after
>> doing the millivolt conversion. The larger the ADC offset (absolute
>> value),
>> the larger the delta. But the cases where I see a delta larger than
>> 0.02
>> seems to be cases where one sensor is an outlier and was most likely
>> voted
>> out. But again Davide's dataset seems to be the exception here.
>
> I don't like to be an exception :)
>
> How I can help?
> Jef, do you remember I gave you two JJ CCR dataset coming from my
> buddies?
> I don't know if they could be of some help.
> I can ask to a friend of mine to download its data via dctool: we
> bought
> our two SF2 units together.
I have three datasets from you:
petrel.davidedb.39117da9
petrel.davidedb.310d20b4
petrel.davidedb.39117e1b
The first one is from your petrel (SF2 rebreather with mCCR and eCCR
dives). The other two are from your buddies (JJ rebreather with eCCR
dives).
Anyway, all three datasets were already included in my analysis. (But it
seems I forgot to include one in my email.)
petrel.davidedb.39117da9 (CCR, extppo2)
Sensor 0: 0 1 2100 -1
Sensor 0: 1 1 2100 -1
Sensor 1: 0 1 2100 -1
Sensor 1: 1 1 2100 -1
Sensor 2: 0 1 2100 -1
Sensor 2: 1 1 2100 -1
petrel.davidedb.310d20b4 (CCR, extppo2)
Sensor 0: 1 1 2100 -1
Sensor 1: 1 1 2100 -1
Sensor 2: 1 1 2100 -1
petrel.davidedb.39117e1b (CCR, extppo2)
Sensor 0: 1 1 2100 -1
Sensor 1: 1 1 2100 -1
Sensor 2: 1 1 2100 -1
So all three have and ADC offset of -1, although there are CCR dives
present.
> Regarding the question if sensor #2 was voted out. I don't think so.
> When
> one or more sensors are voted out their pO2 value is clearly displayed
> in
> yellow. I never saw something strange going on in water. I guess even
> the
> SD software should report a similar event which is not.
> From the Petrel manual I see that a sensor is voted out for a
> percentage
> difference >= 20%. In the last part of my deco I see a max difference
> of
> 10% I think.
Well, what I see is the following. The patch I attached in my previous
email, logs the millivolt (for each of the 3 sensors) and ppO2 values
(respectively the stored average, the calculated average, the delta
between the two, and also the 3 ppO2 after the conversion). To make it
easier to filter on ppO2 values with a large delta between stored and
average, those lines are marked with an extra "Voting" prefix. So you
get something like this for each sample:
Status 00: gasswitch=0 extppo2=0 setpoint=0 sc=0 oc=0
mV: 54 55 54
ppO2: 98 114.1 16.100 113.4 115.5 113.4
Voting: 98 114.1 16.100 113.4 115.5 113.4
(I've attached the full output for your dive.0001.bin file.)
In this case there is a delta of 16.1 between the stored avgppO2 value
(98) and the calculated value (114.1). But the values of the three
sensors are reasonably close together. So that means this delta is
clearly not due to a sensor being voted out. They all have the same
amount of error from the stored avgppO2 value, and also every sample has
this kind of large delta. So this is most likely an error in the
conversion from millivolt to ppO2.
If you compare this with the deltas I see in some of the other datasets
where larger deltas occur, they look different:
Status 00: gasswitch=0 extppo2=0 setpoint=0 sc=0 oc=0
mV: 68 67 69
ppO2: 123 132.2 9.213 121.9 149.3 125.4
Voting: 123 132.2 9.213 121.9 149.3 125.4
Again a large delta 9.213, but this time we have one ppO2 value (149.3)
that is much larger than the other two (121.9 and 125.4). If we assume
that sensor got voted out, and calculate the average over the remaining
two, then we get an average value (123.65) that is close the the stored
avgppo2 (123).
This is a sample from the petrel.stevewilliams dataset. And there the
voted bit for sensor 1 is indeed zero! I haven't checked all samples,
but the few I checked were all similar.
Now, the interesting part is that all three datasets show the same
problem. What they have in common is not only that ADC offset of -1, but
also the calibration value of 2100. Based on the other datasets, that
appears to be some kind of factory default value. And the more I think
about it, the more I believe that's the value we should be looking at. I
assume you have calibrated your sensors at least once, right? In that
case I would expect to see some different value from the default. None
of the other datasets with CCR dives and extppo2 monitoring enabled have
the default calibration value.
If I do a simple linear regression (on your dive.0001.bin data) between
the millivolt values and the stored avgppo2, then I find these
calibration values for each sensor:
Sensor 0: 1861
Sensor 1: 1765
Sensor 2: 1874
On average that's a difference with a factor 0.873!
Jef
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dive.0001.bin.log
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20171207/845e89ff/attachment-0001.ksh>
More information about the subsurface
mailing list