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
_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to