New camera for scuba diving

Started by Alan Clifford, October 14, 2017, 03:51:35 PM

Previous topic - Next topic

Alan Clifford

I got my Fuji f200 out of the cupboard, fired it up and the zoom lens stuck.  It had killed itself in the cupboard over the summer.

I was looking at the yellow Nikon W300 on web and London Camera Exchange had £20 off the yellow version.  So it was meant to be and I bought one from the local branch.

It does depth and gps so all my relearning of Perl and exiftool to hack the depth out of my dive computer logs and match with photos is now redundant. 

Except ... I bet it stores the depth in Nikon makernotes rather than exif.

The camera looks good though.  Only a small sensor but it is supposed to be waterproof to 30 metres.  Without a housing.  Will be testing that very soon.



Phil Harvey

Great, let me know what you find.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Alan Clifford

Quote from: Phil Harvey on October 14, 2017, 07:41:43 PM
Great, let me know what you find.

- Phil

It looks like a kludge to me.

There is a menu for setting altitude/depth options.  One option is Alt./depth correction where you can "use location data" or "correct manually" for the altitude.  Using the location data, it set to about 33 metres.  Which seems a tad high to me and it currently thinks it is at 8m.

Switching to underwater mode, the camera asks you to adjust the depth to 0.  The same menu option as for manual altitude correction is used for this and it appears to default to 0.

Nikonviewnx shows 33m altitude for the above water photo and displays 0m depth in the same place for the photo in the swimming pool.

Exiftool shows the altitude value as expected in auto mode and the depth as altitude in the underwater photo.

[MakerNotes]    Altitude                        : 33 m
[MakerNotes]    Altitude                        : 0 m


It has produced 3 log files but I haven't examined them in detail yet.  I think they are NMEA.

The battery seemed close to exhaustion after 7 photos!  Will try again with a recharged battery and gps switched on.  And swim down to the bottom of the pool.


Alan Clifford

The 3 log files are for location, altitude and depth.  All have two sentences, GPGGA and GPRMC.  The depth log has depth where altitude should be.  That seems a bit kludgy to me.  Doing a little searching, there is a DBS - depth below surface sentence but in some references on the 'net, this is marked as obsolete so maybe Nikon were right not to use it.  But their solution seems rather odd.


Alan Clifford

There does seem to be a bit of nonsense going on here and I'm not sure that the composite tag is reacting appropriately to the nonsense.

It seems that all the photographs so far have


[EXIF]          GPS Altitude Ref                : Above Sea Level
[EXIF]          GPS Altitude                    : undef


Today I went out with the camera with the 'Use location data" switched on but the "altitude/depth gauge" switched off.  Exiftool shows:


[EXIF]          GPS Altitude Ref                : Above Sea Level
[EXIF]          GPS Altitude                    : undef
[MakerNotes]    Altitude                        : 33 m
[Composite]     GPS Altitude                    : 0 m Above Sea Level


The camera seems to have put the altitude from yesterday into a photo today which is a bit naughty.

The composite tag appears to have translated the exif undef into a zero.

Phil Harvey

Hi Alan,

Looking at the code I can't see how this could happen.  Could you send me a sample (philharvey66 at gmail.com).  Thanks.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Alan Clifford

File sent.  sorry it was a large one.

I just tried using a # and got a different result


egremont:W300test alan$ exiftool -G -a  DSCN0753.JPG -*altitude* -datetimeoriginal
[MakerNotes]    Altitude                        : 33 m
[EXIF]          GPS Altitude Ref                : Above Sea Level
[EXIF]          GPS Altitude                    : undef
[Composite]     GPS Altitude                    : 0 m Above Sea Level
[EXIF]          Date/Time Original              : 2017:10:20 18:25:57
egremont:W300test alan$ exiftool -G -a  DSCN0753.JPG -*altitude*# -datetimeoriginal
[MakerNotes]    Altitude                        : 33
[EXIF]          GPS Altitude Ref                : 0
[EXIF]          GPS Altitude                    : undef
[Composite]     GPS Altitude                    : undef
[EXIF]          Date/Time Original              : 2017:10:20 18:25:57


Phil Harvey

Ah, thanks.  I see.  The altitude is actually defined, but the value is 0/0.  I'll need to add a check for this.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Alan Clifford

I'm not terribly interested in altitude but this implementation is driving me nuts.

I switched on "Use built-in location data" and switched off the altimeter/depth gauge. I switched on logging.

Whilst I walked about, the screen displayed what appeared to be an altitude but it varied a metre or so around the recorded maker notes altitude of 34m.  So the altimeter gauge seemed to be on!  Despite not recording an exif GPS Altitude in the photo, 18 m is recorded in the location log.  I think that is probably more accurate.  Just had a thought - I didn't correct the alt/depth gauge, which I can do from the location data, which currently shows 14 m.  That all seems very convoluted.  And the alt.depth gauge is not supposed to be on.

Nikon's viewnx-i software displays:  Altitude (barometer) 34m and an empty altitude reference field.
After making a copy of the photo and putting 18m into the exif altitude field, the Nikon software displayed: altitude 18m and put sea level in the altitude reference field.  So I think I'll be taking the gps altitude out of the log and putting it into the photo.

The altitude log, from the altimeter/depth gauge, always seems to be flagged as invalid in the $GPGGA sentence.

I haven't been diving yet.  It will be interesting to compare it's depth log against my dive computer log.



egremont:W300test alan$ exiftool -a -G DSCN0760.JPG -gps* -*timeoriginal -altitude
[EXIF]          GPS Version ID                  : 2.3.0.0
[EXIF]          GPS Latitude Ref                : North
[EXIF]          GPS Latitude                    : 13 deg 4' 45.49"
[EXIF]          GPS Longitude Ref               : West
[EXIF]          GPS Longitude                   : 59 deg 35' 11.90"
[EXIF]          GPS Altitude Ref                : Above Sea Level
[EXIF]          GPS Altitude                    : undef
[EXIF]          GPS Time Stamp                  : 17:24:46
[EXIF]          GPS Satellites                  : 13
[EXIF]          GPS Img Direction Ref           : True North
[EXIF]          GPS Img Direction               : 256.22
[EXIF]          GPS Map Datum                   : WGS84
[EXIF]          GPS Processing Method           : GPS
[EXIF]          GPS Date Stamp                  : 2017:10:23
[Composite]     GPS Altitude                    : 0 m Above Sea Level
[Composite]     GPS Date/Time                   : 2017:10:23 17:24:46Z
[Composite]     GPS Latitude                    : 13 deg 4' 45.49" N
[Composite]     GPS Longitude                   : 59 deg 35' 11.90" W
[Composite]     GPS Position                    : 13 deg 4' 45.49" N, 59 deg 35' 11.90" W
[EXIF]          Date/Time Original              : 2017:10:23 13:24:39
[EXIF]          Offset Time Original            : -04:00
[Composite]     Date/Time Original              : 2017:10:23 13:24:39-04:00
[MakerNotes]    Altitude                        : 34 m


Location log
$GPGGA,172411.000,1304.7584,N,05935.1949,W,1,6,,18.0,M,,M,,*76
$GPRMC,172411.000,A,1304.7584,N,05935.1949,W,,,231017,,A*51
$GPGGA,172441.000,1304.7577,N,05935.1974,W,1,14,,18.0,M,,M,,*42
$GPRMC,172441.000,A,1304.7577,N,05935.1974,W,,,231017,,A*56
$GPGGA,172511.000,1304.7576,N,05935.1981,W,1,15,,19.0,M,,M,,*4D
$GPRMC,172511.000,A,1304.7576,N,05935.1981,W,,,231017,,A*59


Altitude log
$GPGGA,172413.000,,,,,0,0,,33.0,M,,M,,*54
$GPRMC,172413.000,V,,,,,,,231017,,,N*49
$GPGGA,172443.000,,,,,0,0,,33.0,M,,M,,*51
$GPRMC,172443.000,V,,,,,,,231017,,,N*4C
$GPGGA,172518.000,,,,,0,0,,31.0,M,,M,,*5C
$GPRMC,172518.000,V,,,,,,,231017,,,N*43

Depth log shows 0 in the $GPGGA altitude field

Alan Clifford

First dives today.

The W300 gave up tagging the underwater photos with location data after about 30 minutes even though it supposed to tag the photos with the last know position.

The gps log picked up again during the surface stop on the boat between dives but failed to add the coordinates to photos on the second dive.

The altitude log continued to record even underwater and the depth log started recording as soon as I switched the camera to underwater mode.  You'd think it would use the pressure sensor to determine it was actually underwater.

I have yet to compare the depth reading against my dive computer.  I suspect it will be more accurate than the altimeter reading as the equivalent of the whole of the atmosphere's pressure is compressed into 10 m of water.

Alan Clifford

The depth is recorded only in integer metre amounts and a depth of 8m is more than a metre less than that recorded by my dive computer at the time of a photo.

The gps altitude, which is not recorded in the photos but is recorded in the log file, also records as integer metres.  That's OK and the inaccuracies probably only look ridiculous because I'm at sea level.  Other gps's have the same problem.

So my conclusion at the moment is to use the altitude from the gps log file, grab the depth from my dive computer and ignore altitude and depth from the camera's, presumably, pressure device.

One welcome touch is that the exif offset time original is recorded.

Despite all the criticism, the photo quality seems OK for such a small sensor.  I need to buy a small bar with a cold shoe to attach my external, underwater flash.  Also, it seems to have survived a depth of 21 metres.


Phil Harvey

I find it odd that depth is integer meters.  Pity.

For altitude this makes sense, but depth should have better resolution as you mentioned.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

Alan Clifford

Having been really pleased that the new camera records exif offsetimeoriginal, I've just noticed that it is not copied into exported jpegs by The Gimp.  Sigh ....  :(

Alan Clifford

Just a further note on the Nikon W300.  It survived to a depth of 31.4 meters today.


Phil Harvey

That's pretty deep.  Not only for the camera, but for you too.  The tank won't last very long at that depth, not to mention the no-decompression time limit.  I'm assuming Carribean?  Otherwise can get very dark at that depth.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).