Specifications
The NMEA 0183 Information sheet - Issue 3
Page 13© 2011 Active Research Limited
NMEA 0183 Sentence Format
All NMEA 0183 data is sent in the form of text sentences,
each beginning with a ‘$’ or ‘!’ symbol, and use commas to
separate each part of the sentence. NMEA codes are plain
‘ASCII’ text, and have the following format:
$yyXXX,……… *xx <0D><0A>
• The sentence always starts with a ‘$’ or ‘!’ symbol
• A 2-digit ‘yy’ code follows, giving the instrument type
(e.g. for a GPS device this should be ‘GP’, and for a
depth sounder this should be ‘SD’)
• A 3-digit ‘XXX’ code follows, giving the sentence
data type (e.g. ‘GGA’ is a ‘Global Positioning System
Fix Data’ sentence, and ‘DBT’ is a ‘Depth Below
Transducer’ sentence)
• A comma follows, then the contents of the sentence
data, which changes depending on the data type and
the current values of what is being monitored.
• The nal part is an optional two-digit checksum -
optional, but all good equipment will include this to help
safe-guard the data in the sentence. The checksum
is preceded by the ‘*’ character and is calculated by
taking the 8-bit exclusive-OR of all characters in the
sentence, including ‘,’ delimiters, between but not
including the ‘$’ / ’!’ and ‘*’ delimiters.
• The string always ends with a carriage return and line-
feed combination (Hex 0D 0A, ASCII ‘\r\n’)
To better explain the NMEA 0183 format, the next section
details all the NMEA 0183 sentences output by the
Actisense DST unit. The 3-digit ‘XXX’ is replaced by the
3-digit codes presented below.
In the data format below, the values DATA_#### represents
the digital data, and can have any number of digits before
and after the decimal point (if included). This makes
the system compatible with all levels of required output
precision, depending on the ability of the sensor.
Some data elds are optional – i.e. can be left out, by
having no data between the comma delimiters.
The checksums shown are for example purposes only and
will only be correct with a particular combination of data.
It would not be feasible to copy out the entire specication
here, but there is more data on further strings in the links
section at the end of this document.
DBT – Depth Below Transducer
Water depth referenced to the transducer’s position. Depth
value expressed in feet, metres and fathoms.
Format:
$xxDBT,DATA_FEET,f,DATA_METRES,M,
DATA_FATHOMS,F*hh<0D><0A>
Examples
Standard precision, without checksum:
$SDDBT,6.6,f,2.0,M,1.1,F<0D><0A>
6.6 feet / 2.0 metres / 1.1 fathoms.
Extended precision, without checksum:
$SDDBT,6.66,f,2.03,M,1.10,F<0D><0A>
6.66 feet / 2.03 metres / 1.11 fathoms.
Standard precision, with checksum:
$SDDBT,8.1,f,2.4,M,1.3,F*0B<0D><0A>
8.1 feet / 2.4 metres / 1.3 fathoms.
$SDDBT,8.1,f,2.4,M,,<0D><0A>
8.1 feet / 2.4 metres / No fathom output.
DPT – Depth
Water depth relative to the transducer, the depth offset of
the transducer, and maximum depth that the sounder can
detect a sea-bed (all in metres only).
Positive offsets provide distance from the transducer to
the water line. Negative offsets provide distance from the
transducer to the keel.
Not all NMEA 0183 devices that output this sentence can
have their depth offset changed. In this case, the depth
offset will always be zero, or not included.
NMEA 0183 v2.0 sentences will not include the maximum
depth range value at all, as it was added in v3.0.
Format:
$xxDPT,DATA_METRES,OFFSET_METRES,
MAXIMUM_METRES*hh<0D><0A>
Examples
Standard precision, without checksum:
$SDDPT,76.1,0.0,100,<0D><0A>
76.1 metres, zero depth offset, 100 metres maximum
depth range.
Standard precision, with checksum:
$SDDPT,2.4,,*7F<0D><0A>
2.4 metres, no depth offset or maximum depth range
output (When depth offset and maximum depth values are
unknown by the depth sounder).