Subsurface not working out SAC on sidemount dives

174 views
Skip to first unread message

Oliver Stutz

unread,
Nov 3, 2022, 9:00:39 AM11/3/22
to Subsurface Divelog
Hi there,

Not sure if this is the correct place to ask. But I was hoping to get some help.

When I am diving sidemount, with 2 x shearwater transmitters (one on each tank), I get all the pressure readings when downloading to Subsurface, but it does not work out SAC. This is true even after I add the dive cylinders. On a single tank it works.

Is there a fix for this? Would appreciate the help as it was always a nice quick reference without needing to calculate this myself. I have attached some pics of a previous dive to show.

Thanks
Screenshot 2022-11-03 at 16.11.18.png
Screenshot 2022-11-03 at 16.11.10.png

Jason Bramwell

unread,
Nov 3, 2022, 9:11:02 AM11/3/22
to subsurfac...@googlegroups.com
Do you tell your Shearwater each time you switch cylinders? I think that’s the optimal way to achieve what you are looking for.

Jason 

Sent from my iPhone

On 3 Nov 2022, at 21:00, Oliver Stutz <ols...@gmail.com> wrote:

Hi there,
--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-dive...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/subsurface-divelog/df6cd2aa-2252-40a9-95a7-0939be745b4cn%40googlegroups.com.
Screenshot 2022-11-03 at 16.11.18.pngScreenshot 2022-11-03 at 16.11.10.png

Robert C. Helling

unread,
Nov 3, 2022, 9:15:51 AM11/3/22
to Subsurface Divelog
Or  said in other words: If you did not tell your computer about when you changed cylinders, you need to tell Subsurface in the form of gas switches. Alternatively, change this to a double AL80 cylinder that you breath down from 207 bar to 133.5 bar.

Oliver Stutz

unread,
Nov 3, 2022, 9:40:23 AM11/3/22
to Subsurface Divelog
Thanks for the responses so far. That makes sense as I do not tell my computer. I don't think I can add two 21% gases, but will check. It should know from the change of transmitter and pressure change.

Thanks, I do usually make it doubles and do the average to get the SAC. Was just wondering if there was something else I was missing. I think its the gas switching as on a Tec dive with a deco cylinder I don't have this issue. So that point makes sense.

So checked before I sent this. The second I added just one gas switch, it gave me the SAC rates. Thanks

Alvaro Aguilera

unread,
Nov 3, 2022, 10:01:39 AM11/3/22
to Subsurface Divelog
On sidemount, you switch regulators every 20-30 bar. It's cumbersome having to make a gas switch on the computer every time...

Oliver Stutz

unread,
Nov 3, 2022, 11:02:42 AM11/3/22
to Subsurface Divelog
Yes true indeed! I also checked now and as I thought, Shearwater don't allow duplicate gasses.

I would think that as it switches to the other tank (with the transmitter picking that up) that it would add a tank switch trigger. Something to maybe raise with Shearwater then.

Alvaro Aguilera

unread,
Nov 3, 2022, 11:09:22 AM11/3/22
to subsurfac...@googlegroups.com
You can't have duplicate gases on Shearwater, but you can have something like one tank with 21 / 0% and another with 21 / 1% which is the same for all practical purposes.

In general, once you move into technical diving / sidemount / rebreather / multisump you have to come to terms that Subsurface is not conceived for it and rely more on the notes you write for each dive...

Linus Torvalds

unread,
Nov 3, 2022, 1:26:37 PM11/3/22
to subsurfac...@googlegroups.com
On Thu, Nov 3, 2022 at 6:00 AM Oliver Stutz <ols...@gmail.com> wrote:
>
> Is there a fix for this? Would appreciate the help as it was always a
> nice quick reference without needing to calculate this myself. I have
> attached some pics of a previous dive to show.

So subsurface should do the right thing if you just make it obvious
that both tanks are used.

And you'd think "I have different pressures" would be that, and it
*could* be, but subsurface doesn't really use that kind of implicit
knowledge.

That's largely just because the input is so noisy: you'd need to do
more "real data analysis" to use the pressure differences as "now the
person is breathing using this cylinder".

You'd think it's trivial, but sensor values are noisy, and even if
they were perfect they have other real reasons for pressure changes:
sensors possibly aren't actually "absolute pressure" but relative (aka
"gauge pressure"), and most notably temperature ends up changing the
cylinder pressure too.

So while it looks trivial for a human to say "look, I see the pressure
line dropping, I'm clearly breathing using this cylinder", it's rather
messy in the details.

End result: without explicit cylinder change events, subsurface
doesn't really think you used that cylinder.

Now, I realize that when you do alternating sidemount diving, you
would not do a cylinder change as you switch. And that's not even what
I'm suggesting. You literally need just *one* gas change event for
subsurface to go "ok, you're using that other cylinder", and you can
add that later by hand too.

And at that point subsurface _should_ start taking that other cylinder
into account for your global SAC rate.

I say "should", because who knows. It's not the kind of diving I do,
so it's not like I've tested much of it. But with a gas change event,
I think subsurface should do all the same things it does for just
stage bottles etc, and that has worked at some point (also not the
kind of diving I do, but I *have* done).

Linus

Gmail im Auftrag von Martin Gröger

unread,
Nov 4, 2022, 1:30:27 AM11/4/22
to subsurfac...@googlegroups.com
hm...

IF you could set the gases to 21/0 for tank1 and 21/1 for tank2 you SHOULD have a perdix an it should have a sidemount-mode.
use this mode and you be happy....

a workaround for the tank change could be not to change cylinders by pressure but to change cylinders by time e.g. changing cylinders every 10 minutes. so you can set the cylinder changing in subsurface by hand very easy.....



keep on howling

grey

--
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-dive...@googlegroups.com.

Andrew Trevor-Jones

unread,
Nov 4, 2022, 1:47:19 AM11/4/22
to subsurfac...@googlegroups.com
I often use 2 independent tanks on a dive (back mount but no manifold so two independent regulators).

Subsurface always calculates to overall SAC/RMV for the dive correctly.  

It should notneed to know about gas switches or anything like that.  All it needs to know is the starting/ending pressures and size of each tank.  From there it calculates the total gas used and divides it by (average depth in metres/10)+1 

Or am I missing something?

Andrew. 

Robert C. Helling

unread,
Nov 4, 2022, 7:11:51 AM11/4/22
to Subsurface Divelog
What you are missing is that Subsurface does not know you are side mount diving. When diving with stages which contain different gases it does not make much sense to add everything together. Rather you want to compute the SAC rate per gas. To this end, Subsurface needs to know during which part of the dive which gas was used and this is the point of the gas switches.

You would at least need to tell Subsurface somehow it should consider the two independent cylinders as one combined reservoir of gas. One might argue that it makes sense as a default to compute SAC and gas-use per gas rather than per cylinders, so to add all cylinders containing the same (or sufficiently similar) gas together.

BTW, to compute the SAC, Subsurface uses a slightly more sophisticated formula than the one you suggest (one that takes gas compressibility, actual surface pressure and water density into account).

Best
Robert

Andrew Trevor-Jones

unread,
Nov 4, 2022, 3:50:30 PM11/4/22
to subsurfac...@googlegroups.com
Sorry, my point was that subsurface is ALREADY calculating SAC for my dives with two tanks.  I wasn't making a suggestion for how it should do it.

I'm not diving with stages.  I am effectively diving sidemount but the tanks are on my back.  Both tanks have the same mixture.

Here are the cylinders:

Here is the log showing the calculated SAC:

 
And yes, I fully understand that Subsurface takes the compressibility of the gases into consideration in the calculation and wrote it that way: "total gas used" takes this into account.

Or are you saying it is not already calculating this way and I have some kind if weird version of Subsurface?

Andrew.

Andrew Trevor-Jones

unread,
Nov 6, 2022, 4:12:08 PM11/6/22
to subsurfac...@googlegroups.com
Hi Willem,

You are overthinking this and making it more complicated than it is.

SAC is Surface Air Consumption and when looking at the SAC for a dive, it is the average gas consumption for the whole dive from start to finish, normalised for the depth.  

By definition, the average gas consumption for a dive is the total gas used for the dive divided by the dive time.  You can then normalise that average by using the average depth for the dive because (unlike non-linear compression of air, O2, etc) there is a linear change in pressure with depth: at 10m the pressure doubles; at 30m the pressure triples, etc.  The pressure at 13m is 2.3 times that at the surface.

For a dive with a single tank, you only need to know the gas used for that tank, divide that by length of the dive, normalise it by using the average depth and you have your SAC.

If you are using two tanks, the principle is exactly the same.  You just need to know the total gas usage across both tanks.  It is irrelevant when you switched tanks.  All that matters is the total gas you used for the whole dive.

In the example I used, Subsurface is DEFINITELY NOT  using only one tank for the calculation.  It is using both tanks, which I can easily demonstrate.  Further, it even shows how much gas was used in each tank. (And yes, I know that Subsurface is using the actual compressibility of the gases being used, or the nearest approximation).

Obviously, it can't calculate the SAC for each tank, in this case.  That is where knowing when the gas switches took place is necessary.  But why would anyone care what the SAC was for each tank?

Now, to prove that Subsurface is using both tanks for the SAC calculation, look what happens when I change the starting or ending pressures, or the tank sizes.

Here is the starting point, the actual tank sizes and pressures (which reflects the Gas consumed above):

If I increase the ending pressure for the second tank (i.e. I used less gas for the dive) the SAC drops.
 
The gas consumed also drops:

If I increase the ending pressure of the first tank, Gas consumed goes down and the SAC is also decreased:

Here's what happens if I decrease the starting pressure for the second tank:

If I increase the size of the second tank, Gas consumed increases as does the SAC:


It is obvious (to me at least with the version of Subsurface that I am using) that Subsurface is calculating the SAC based on the TOTAL gas consumed across both tanks and does not need to know when gas switches took place.

Also, I have been diving for over 40 years!  I have no plans to "progress to using a stage computer or a deco cylinder" so there is no need to be condescending.  However, if I was to use a stage cylinder or a deco cylinder, it is likely (almost certain for the deco cylinder) that they would be a different gas mix and a gas with would be required so the dive computer knew the gas had changed, however, that is irrelevant for a discussion about SAC.

I am really surprised that the person that wrote the module that calculates SAC hasn't chimed in.  They would be able to clear this up in seconds.

Andrew.

On 5 Nov 2022, at 11:55 pm, Willem Ferguson <willemf...@zoology.up.ac.za> wrote:

Hi Andrew,

I also dive sidemount, so I have had to work through these issues. You need to consider that the SAC rate that Subsurface calculated for you specifically are not representative of your dive. No problem with the Subsurface software at all: it might be a case of garbage in, garbage out. Let me explain. For Subsurface to calculate SAC correctly, it needs to know when you are using each of the two cylinders. Without that information it cannot do the SAC calculation. Since you are not recording the change from using one cylinder to the other cylinder, it assumes you are diving using the first cylinder for the whole dive. So it records your total gas volume used from that cylinder, taking into account the whole duration of the dive. Obviously this is not accurate. The fact that the second cylinder in your cylinder table is not striked out with a red line means that Subsurface did not record you using that cylinder and considers it as an unused cylinder. Therefore the SAC calculated is only based on the one cylinder you used and is not accurate at all. It is one of the prices to pay when diving with more than one cylinder: if you do not provide the appropriate information Subsurface cannot calculate the gas usage or SAC. Many dive computers allow recording cylinder changes during a dive. On my Galileo it means pressing one of the buttons twice for each change, a rather trivial activity once you get used to diving with a dive computer. The changes are loaded as part of the upload from the dive computer to Subsurface. For quite a few years I did this recording by writing the times of changes on a wrist slate and logging the changes by hand. If you record cylinder changes then the SAC calculation will be accurate. So your choice is to take no extra trouble and understanding that the SAC rate value is totally inaccurate, or to take the trouble and record the cylinder changes.  Once you progress to using a stage cylinder or a deco cylinder you will be faced with the same problem. So this is not unique to sidemount at all. Enjoy your dives.

Kind regards,
willem



On 2022/11/04 21:50, Andrew Trevor-Jones wrote:
Sorry, my point was that subsurface is ALREADY calculating SAC for my dives with two tanks.  I wasn't making a suggestion for how it should do it.

I'm not diving with stages.  I am effectively diving sidemount but the tanks are on my back.  Both tanks have the same mixture.

Here are the cylinders:
<PastedGraphic-1.png>

Here is the log showing the calculated SAC:
<PastedGraphic-2.png>

This message and attachments are subject to a disclaimer.
Please refer to http://upnet.up.ac.za/services/it/documentation/docs/004167.pdf 
for full details.

Willem Ferguson

unread,
Nov 7, 2022, 4:45:42 AM11/7/22
to subsurfac...@googlegroups.com
On 2022/11/06 23:11, Andrew Trevor-Jones wrote:
> Hi Willem,
>
> You are overthinking this and making it more complicated than it is.
>
> SAC is Surface Air Consumption and when looking at the SAC for a dive,
> it is the average gas consumption for the whole dive from start to
> finish, normalised for the depth.

Andrew,

My humble apologies if I came over in a different from my real attitude
while writing. It was not intended.

The real issue has come to light. Subsurface attempts to calculate SAC
rate in real time. See attached graph where the diagonal lines indicate
instantaneous SAC rate during the whole dive. SAC rate is calculated by
taking into account the depth of the dive for each dive segment.
Incorporation of depth happens during the calculation, not afterwards.

Using total gas consumption and normalisation afterwards using a notion
of mean dive depth is unlikely to give an accurate SAC (depending on
what one means by "accurate"). You will get a notion of SAC, but not an
accurate determination.

Kind regards,

willem




--
profile.jpg

Willem Ferguson

unread,
Nov 7, 2022, 6:28:06 AM11/7/22
to subsurfac...@googlegroups.com
On 2022/11/07 11:45, Willem Ferguson wrote:
> On 2022/11/06 23:11, Andrew Trevor-Jones wrote:
>> Hi Willem,
>>
>> You are overthinking this and making it more complicated than it is.
>>
>> SAC is Surface Air Consumption and when looking at the SAC for a
>> dive, it is the average gas consumption for the whole dive from start
>> to finish, normalised for the depth.
>
> Andrew,
>
> My humble apologies if I came over in a different from my real
> attitude while writing. It was not intended.
>
> The real issue has come to light. Subsurface attempts to calculate SAC
> rate in real time. See attached graph where the diagonal lines
> indicate instantaneous SAC rate during the whole dive. SAC rate is
> calculated by taking into account the depth of the dive for each dive
> segment. Incorporation of depth happens during the calculation, not
> afterwards.
>
> Using total gas consumption and normalisation afterwards using a
> notion of mean dive depth is unlikely to give an accurate SAC
> (depending on what one means by "accurate"). You will get a notion of
> SAC, but not an accurate determination.
>
> Kind regards,
>
> willem
>
>
> Sorry, the image I clipped in my last mail did not quite work. Here is
> the image as I intended. The slope of the pressure/time graph
> indicates SAC which is shown in the Information box, in this case at
> the cursor point.
sac2.jpg

andrew.tr...@gmail.com

unread,
Nov 7, 2022, 3:02:07 PM11/7/22
to Subsurface Divelog
Oliver,

If you want to know the SAC for each cylinder, Subsurface would need to know when you switched cylinders.  I'm not sure why the SAC for each cylinder is important.

Subsurface does calculate the SAC for the whole dive and it will show up in the list of dives under the column SAC.  

Andrew.

Andrew Trevor-Jones

unread,
Nov 8, 2022, 1:32:47 AM11/8/22
to subsurfac...@googlegroups.com
Willem,

The OP was not asking about the SAC displayed with the graph but rather the overall SAC for the dive. Now that you bring it up, it is useful to discuss.

The SAC displayed as you move your mouse over the graph is not particularly accurate or useful and is certainly not instantaneous.  That becomes obvious when you consider the data available to Subsurface to calculate it.  To consider that you have to consider how AI computers work.

This is what happens with a Shearwater Perdix AI but other computers will be similar.  With my Perdix I can select different log rates: 2, 5 or 10 seconds.  This determines how often it writes data to the log.  If I set it to 5 seconds, every 5 seconds it will write the current depth, current temperature, most recent tank pressure (for each tank it knows about).  When I load that data into Subsurface, that is all the real data it has to work with.  Within Subsurface I can add the tank size(s) and gas mix(es) which Subsurface can use to calculate gas consumed.

I say "most recent" with regards to tank pressure because the tank pressures come from the data the transmitter sends.  I’m using Oceanic branded PPS transmitters.  I understand they broadcast the tank pressure approximately every 5 seconds.  It is not exactly 5 seconds but might be slightly more or slightly less than 5 seconds.  

If it is less than 5 seconds and the log rate is set to 5 seconds, there will always be at least one pressure reading in the between log entries but the pressure reading could be up to 5 seconds old. It is possible that the Perdix receives 2 within the one 5 second interval and the second one is very recent.

If it is more than 5 seconds and the log rate is set to 5 seconds, there will usually be one pressure reading between log entries but it is possible there are none.  This means the pressure reading could be over 5 second old and two log entries have the same pressure.

This also assumes that the Perdix didn’t miss any readings.  If it does miss some readings they will be much older and more log entries will show the same pressure.

Another thing to consider is how accurate and responsive is the pressure sensor inside the transmitter, especially with small changes of pressure?  I don’t know the answer but I suspect there would be some lag.

Now for practical purposes while diving and knowing your tank pressure(s) it is no big deal but if you want to accurately calculate SAC over a short period of time it makes a difference.

So, let’s calculate the SAC for the graph.

It is impossible to calculate in instantaneous SAC because the data are not there.  For any one point of time in the dive, the only data are depth and tank pressure.  That is not enough to calculate SAC.

The next best thing to an instantaneous SAC would be one over a short period of time.  As the entries (in the example) are 5 seconds apart, you could calculate the SAC in 5 second intervals.  To do this you would subtract the tank pressure for the second entry from the first and that would give you the pressure difference.  You’d then use the user provided information on tank size and gas mixture to calculate how much gas was consumed in those 5 seconds.  You’d then multiply that by 12 to give you how much was consumed in a minute.  Then use the average of the two depths to normalise the rate.

There are many problems with only looking at a 5 second interval.  If you didn’t breathe in during those 5 seconds, the pressure may not change and so the SAC would be 0.  The dive computer might also miss a transmitter broadcast so the pressure doesn’t appear to change.  You could breathe in AND add air to your BCD/drysuit in that time which would result in a very high SAC. The accuracy and responsiveness of the pressure sensor would come into play as the pressure differences are small and the time over which they are being measured is also small.

An interval of one minute would be more accurate (but certainly not instantaneous).  For a minute you’d take 13 entries (assuming 5 second log rate).  The gas consumed would be based on the pressure difference between the first and last pressure entry and the average depth would be the 13 depth entries added together and divided by 13.  Any inaccuracies or response issues with the pressure sensor in the transmitter would be lessened. You are more likely to capture multiple breaths but you may or may not have air being added to the BCD/drysuit.

Using 5 minutes would be more accurate again, but you’d lose granularity.  The calculation would be exactly the same: difference in pressure between first and last pressure entries and converted to litres using the tank size and gas mix, normalised using the average depth calculated by adding all the depth entries and dividing by the number of depth entries.

Te greater the length of time over which the SAC is calculated the more accurate it will be because all the little errors mentioned above will become relatively smaller.  Calculating for the whole dive is the most accurate.

I don’t know what period Subsurface uses.  I suspect it will be between 1 and 5 minutes.  Two minutes seems to be a good compromise between accuracy and granularity.  My Perdix displays SAC (actual SAC rather than the RMV that Subsurface calculates) and it is based on the previous 2 minutes of depth/pressure data.

You cannot just average all the individual calculated SAC entries across the dive as this would compound the errors.  The most accurate way is the calculate it once across the whole dive.

As an aside, unsurprisingly, Subsurface calculates and displays the interim SAC values on graphs of my dives with two tanks even though I don’t set the tank change events.  It does this because the Perdix records the tank pressure for each tank being used in each log entry throughout the dive.  Subsurface can use the same method above to calculate the SAC simply by working out the gas consumed for each tank over the period and adding them together.  If a tank is not actually being used at the time, the gas consumed will be zero.



Andrew.
-- 
You received this message because you are subscribed to the Google Groups "Subsurface Divelog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to subsurface-dive...@googlegroups.com.
Message has been deleted
Message has been deleted

andrew.tr...@gmail.com

unread,
Nov 8, 2022, 1:48:05 AM11/8/22
to Subsurface Divelog
Third time lucky?
PastedGraphic-16.jpg

Willem Ferguson

unread,
Nov 9, 2022, 2:45:31 AM11/9/22
to subsurfac...@googlegroups.com, Andrew Trevor-Jones
Andrew,

It takes little time to get used to doing this right for sidemount.

Issue 1: You dive a Perdix with AI, so the pressure data are recorded
automatically and downloaded with the other dive data. I dive a Petrel,
where I indicate a change of cylinders by selecting "select gas" from
the main menu. Did you do this (or similar action for Perdix) for this
dive of yours? If the Perdix does not know when you used which cylinder,
it cannot indicate the cylinder pressure and the SAC rate correctly.

Issue 2: I see you had EAN32 in both cylinders. My Petrel does not
accept two cylinders with identical gas composition. The way I do it is
to enter two different gas concentrations. A hypothetical example: My
pre-dive oxygen readings for the two nitrox cylinders were 31.4% and
32.3%. Then I set the one cylinder at 31% (=EAN31) and the other at
32%(=EAN32). My Petrel is perfectly happy with that and when I go to
"select gas" (at least on my Petrel) during a dive I can select any of
the two gases. So, the Shearwater does not deal with physical cylinders,
but with the gases inside these cylinders. Remember to, on the dive
computer, appropriately set the gas you start your dive with.

Kind regards,

willem

Robert C. Helling

unread,
Nov 9, 2022, 4:38:23 AM11/9/22
to Subsurface Divelog
The great thing about open source software is that if you don't know how things work, you can check in the source code. In this case, the SAC is calculated here:


You see, that for each sample point, Subsurface goes 30s back in time and into the future and computes the average gas consumption over that period (as far as the pressure data is available).

The total SAC is computed via a per cylinder mean depth whose computation is somewhat convoluted:


There you also so how the original case is handled where a cylinder has a pressure drop but no explicit gas change events changing to it.

Best
Robert

Reply all
Reply to author
Forward
Message has been deleted
0 new messages