Main ❯ Navigation & tracking systems ❯ RedNode: Communication protocol specification
![]() |
|
|---|---|
| www.unavlab.com support@unavlab.com |
RedWave - underwater acoustic navigation system Communication protocol specification for the RedNode navigation receiver |
RedNode underwater acoustic navigation receivers exchange data via the RS-232 physical layer standard for an asynchronous interface (UART) with a data line voltage of 3.3 V. The connection uses a four-wire cable with the wires Tx (transmitter), Rx (receiver), Vcc (power) and GND (ground). Without additional repeaters or interface converters, correct operation of the interface is guaranteed for a data bus length of up to 2 m.
Default connection port settings1:
Baudrate: 9600 bit/s
Data bits: 8
Stop bits: 1
Parity: No
Hardware flow control: No
CAUTION! The modems are powered by a 12 V DC source, while the data line voltage is 3.3 V.
The NMEA0183 standard describes the format of dialog layer text (ASCII) sentences.
Sentence example: $PTNT0,1,0*hh<CR><LF>
The main elements of an NMEA0183 sentence (message):
The D2H prefix in a sentence name means that the sentence is sent from the Device to the Host (control system). The H2D prefix in a sentence name means that the sentence is sent from the Host (control system) to the Device.
This group includes the sentences that the device transmits by default (depending on its internal state).
Standard NMEA0183 sentence - Global positioning system fix data.
Sentence format: $GNGGA,hhmmss.sss,ddmm.mmm,N|S,yyymm.mmm,E|W,x,xx,x.x,x.x,M,x.x,M,xx,xxxx*hh<CR><LF>
| No. | Field/Parameter | Description | |
|---|---|---|---|
| $ | Sentence start ‘$’ | ||
| GN | Standard data source - Global navigation | ||
| GGA | Standard sentence ID - Global positioning system fix data | ||
| 1 | UTC Time | UTC, hhmmss.sss | |
| 2 | Latitude | Geographic latitude, ddmm.mmmmmm | |
| 3 | N | S | Hemisphere identifier, N - northern, S - southern |
| 4 | Longitude | Geographic longitude, dddmm.mmmmmm | |
| 5 | E | W | Hemisphere identifier, E - eastern, W - western |
| 6 | Fix Type | Navigation solution type | |
| 7 | Satellites in view | Number of available satellites (always 4 in RedWave) | |
| 8 | HDOP | Horizontal dilution of precision, meters. (in RedWave this field conveys the radial error, the value of the residual function at the end of the solution) | |
| 9 | Altitude | Altitude, meters. (in RedWave this field conveys depth, i.e. height with a “-“ sign) | |
| 10 | M | M - meters | |
| 11 | Geoidal separation | The field is not supported and remains empty | |
| 12 | Age of data | The field is not supported and remains empty | |
| 13 | Reference station ID | The field is not supported and remains empty | |
| * | NMEA checksum delimiter | ||
| hh | NMEA checksum | ||
| <CR><LF> | End of sentence |
Standard NMEA0183 sentence - Recommended minimum, sentence ‘C’.
Sentence format: $GNRMC,hhmmss.sss,A|V,ddmm.mmm,N|S,dddmm.mmm,E|W,x.x,x.x,ddmmyy,,,A|D|V*hh<CR><LF>
| No. | Field/Parameter | Description | |
|---|---|---|---|
| $ | Sentence start ‘$’ | ||
| GN | Standard data source - Global navigation | ||
| RMC | Standard sentence ID - Recommended minimum, sentence ‘C’ | ||
| 1 | UTC Time | UTC, hhmmss.sss | |
| 2 | Data quality indicator | A - the data are correct | |
| 3 | Latitude | Geographic latitude, ddmm.mmmmmm | |
| 4 | N | S | Hemisphere identifier, N - northern, S - southern |
| 5 | Longitude | Geographic longitude, dddmm.mmmmmm | |
| 6 | E | W | Hemisphere identifier, E - eastern, W - western |
| 7 | Speed | The field is not supported | |
| 8 | Course | The field is not supported | |
| 9 | Date | The field is not supported | |
| 10 | Magnetic variation | The field is not supported | |
| 11 | E | W | The field is not supported |
| 12 | A | Mode, A - GNSS | |
| * | NMEA checksum delimiter | ||
| hh | NMEA checksum | ||
| <CR><LF> | End of sentence |
Standard NMEA0183 sentence - Mean water temperature.
Sentence format: $GNMTW,x.x,C*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| GN | Standard data source - Global navigation | |
| MTW | Standard sentence ID - Mean temperature of water | |
| 1 | Temperature | Water temperature, °C |
| 2 | C | C - Celsius |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Update of the geographic position of the receiver and the buoys.
Sentence format: $PTNTC,x,x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x,x.x*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| C | Sentence ID | |
| 1 | Own location - latitude | Geographic latitude, ° |
| 2 | Own location - longitude | Geographic longitude, ° |
| 3 | Own location - depth | Depth, m |
| 4 | Radial error | Radial error, m |
| 5 | Buoy #1 latitude | RedBase No. 1 geographic latitude, ° |
| 6 | Buoy #1 longitude | RedBase No. 1 geographic longitude, ° |
| 7 | Buoy #2 latitude | RedBase No. 2 geographic latitude, ° |
| 8 | Buoy #2 longitude | RedBase No. 2 geographic longitude, ° |
| 9 | Buoy #3 latitude | RedBase No. 3 geographic latitude, ° |
| 10 | Buoy #3 longitude | RedBase No. 3 geographic longitude, ° |
| 11 | Buoy #4 latitude | RedBase No. 4 geographic latitude, ° |
| 12 | Buoy #4 longitude | RedBase No. 4 geographic longitude, ° |
| 13 | Temperature | Water temperature, °C |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Depth and water temperature.
Sentence format: PTNTN,x.x,x.x*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| N | Sentence ID | |
| 1 | Depth | Depth, m |
| 2 | Temperature | Water temperature, °C |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Buoy status.
Sentence format: $PTNTM,x.x,x.x,x.x,x,x.x,x.x,x.x,x,x.x,x.x,x.x,x,x.x,x.x,x.x,x*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| M | Sentence ID | |
| 1 | Buoy #1 latitude | RedBase No. 1 geographic latitude, ° |
| 2 | Buoy #1 longitude | RedBase No. 1 geographic longitude, ° |
| 3 | Buoy #1 SNR | RedBase No. 1 MSR2, dB |
| 4 | Buoy #1 status | RedBase No. 1 status3 |
| 5 | Buoy #2 latitude | RedBase No. 2 geographic latitude, ° |
| 6 | Buoy #2 longitude | RedBase No. 2 geographic longitude, ° |
| 7 | Buoy #2 SNR | RedBase No. 2 MSR2, dB |
| 8 | Buoy #2 status | RedBase No. 2 status3 |
| 9 | Buoy #3 latitude | RedBase No. 3 geographic latitude, ° |
| 10 | Buoy #3 longitude | RedBase No. 3 geographic longitude, ° |
| 11 | Buoy #3 SNR | RedBase No. 3 MSR2, dB |
| 12 | Buoy #3 status | RedBase No. 3 status3 |
| 13 | Buoy #4 latitude | RedBase No. 4 geographic latitude, ° |
| 14 | Buoy #4 longitude | RedBase No. 4 geographic longitude, ° |
| 15 | Buoy #4 SNR | RedBase No. 4 MSR2, dB |
| 16 | Buoy #4 status | RedBase No. 4 status3 |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
2 MSR (Main lobe to side peak ratio) - a measure of signal reception quality. Reception conditions are good when the parameter value is >= 20 dB.
3 Description of the possible values (see 3.6.)
Pressure and temperature.
Sentence format: $PTNTO,x.x,x.x*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| O | Sentence ID | |
| 1 | Pressure | External hydrostatic pressure, mbar |
| 2 | Temperature | Water temperature, °C |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Request to change a local parameter.
Sentence format: $PTNTP,x,x.x<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| P | Sentence ID | |
| 1 | Value ID | Parameter ID (see 3.3.) |
| 2 | Value | New value |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
This group of sentences includes requests to the device from the control system and the device’s responses to them.
Device response to a request from the control system.
Sentence format: $PTNT0,x*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| 0 | Sentence ID | |
| 1 | errCode | Error code (see 3.2.) |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Request for local data.
Sentence format: $PTNT4,xx,00*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| 4 | Sentence ID | |
| 1 | dataID | Data ID (see 3.3.) |
| 2 | reserved | Reserved, ‘00’ |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Device response to the IC_H2D_LOC_DATA_GET and IC_H2D_SET_VAL requests: the device transmits the requested data.
Sentence format: $PTNT5,x,x<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| 5 | Sentence ID | |
| 1 | Requested data ID | Data ID (see 3.3.) |
| 2 | Value | Requested value |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Device response to the IC_D2H_LOC_DATA_GET command if the requested data ID = LOC_DATA_DEV_INFO.
Sentence format: $PTNT!,c--c,x,x,c--c,x,c--c<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| ! | Sentence ID | |
| 1 | System moniker | System name |
| 2 | System version | System version (BCD) |
| 3 | Communication subsystem moniker | Communication subsystem name |
| 4 | Communication subsystem version | Communication subsystem version (BCD) |
| 5 | Device type | Device type (see 3.1.) |
| 6 | Serial number | Device serial number |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Sentence output control.
Sentence format: $PTNTQ,b,b,b,b,b,b,b*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| Q | Sentence ID | |
| 1 | isMTW | Output of MTW sentences (0 - disabled, 1 - enabled) |
| 2 | isGGA | Output of GGA sentences (0 - disabled, 1 - enabled) |
| 3 | isRMC | Output of RMC sentences (0 - disabled, 1 - enabled) |
| 4 | isM | Output of TNTM sentences (0 - disabled, 1 - enabled) |
| 5 | isC | Output of TNTC sentences (0 - disabled, 1 - enabled) |
| 6 | isN | Output of TNTN sentences (0 - disabled, 1 - enabled) |
| 7 | isO | Output of TNTO sentences (0 - disabled, 1 - enabled) |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
Request to perform a service action.
Sentence format: $PTNT6,xx,00*hh<CR><LF>
| No. | Field/Parameter | Description |
|---|---|---|
| $ | Sentence start ‘$’ | |
| P | Proprietary code | |
| TNT | TNT command system | |
| 6 | Sentence ID | |
| 1 | Action ID | Service action ID (see 3.4.) |
| 2 | Reserved | Reserved, ‘00’ |
| * | NMEA checksum delimiter | |
| hh | NMEA checksum | |
| <CR><LF> | End of sentence |
| Value | Name | Description |
|---|---|---|
| ‘0’ | DEVICE_REDBASE | RedBase GNSS-equipped sonobuoy |
| ‘1’ | DEVICE_REDNODE | RedNode navigation receiver |
| ‘2’ | DEVICE_REDNAV | RedNav diver’s navigation receiver |
| ‘3’ | DEVICE_REDGTR | RedGTR code communication modem |
| Value | Name | Description |
|---|---|---|
| ‘0’ | NO_ERROR | Request accepted, no errors |
| ‘1’ | INVALID_SYNTAX | Syntax error |
| ‘2’ | UNSUPPORTED | Request not supported |
| ‘3’ | TRANSMITTER_BUSY | Acoustic transmitter is busy |
| ‘4’ | ARGUMENT_OUT_OF_RANGE | Argument is outside the range of valid values |
| ‘5’ | INVALID_OPERATION | The requested operation cannot be performed on this device |
| ‘6’ | UNKNOWN_FIELD_ID | Unknown configuration field value |
| ‘7’ | VALUE_UNAVAILIBLE | The requested value is not available at the moment |
| ‘8’ | RECEIVER_BUSY | The acoustic receiver is waiting for a response from the remote system |
| Value | Name | Description | RO/RW4 |
|---|---|---|---|
| ‘0’ | DEVICE_INFO | Device information, firmware versions and serial number | RO |
| ‘1’ | MAX_REMOTE_TIMEOUT | Maximum waiting time, ms | RO |
| ‘2’ | MAX_SUBSCRIBERS | Not supported | RO |
| ‘3’ | DEPTH | Built-in depth sensor reading, m | RO |
| ‘4’ | TEMPERATURE | Built-in temperature sensor reading, °C | RO |
| ‘5’ | BAT_CHARGE | Not supported | RO |
| ‘6’ | PRESSURE_RATING | Maximum permissible hydrostatic pressure, bar | RO |
| ‘7’ | ZERO_PRESSURE | Pressure at the water surface, mbar | RW |
| ‘8’ | WATER_DENSITY | Water density, kg/m3 | RO |
| ‘9’ | SALINITY | Water salinity, PSU | RW |
| ‘10’ | SOUND_SPEED | Speed of sound, m/s | RW |
| ‘11’ | GRAVITY_ACC | Gravitational acceleration, m/s2 | RO |
| ‘12’ | YEAR | Year | RW |
| ‘13’ | MONTH | Month | RW |
| ‘14’ | DATE | Day of the month | RW |
| ‘15’ | HOUR | Hour | RO |
| ‘16’ | MINUTE | Minute | RO |
| ‘17’ | SECOND | Second | RO |
4 RO - Read-Only, the parameter can only be read; RW - the parameter can be read and written.
| Value | Name | Description |
|---|---|---|
| ‘0’ | LOC_INVOKE_FLASH_WRITE | Save the settings to non-volatile memory |
| ‘1’ | LOC_INVOKE_CLEAR_WAYPOINTS | Not supported |
| ‘2’ | LOC_INVOKE_CLEAR_TRACK | Not supported |
| ‘3’ | LOC_INVOKE_CLEAR_NDTABLE | Not supported |
| ‘4’ | LOC_INVOKE_DPT_ZERO_ADJUST | Set the current pressure reading as the pressure at the water surface |
| Value | Name | Description |
|---|---|---|
| ‘0’ | NO_FIX | Geographic position is not available |
| ‘1’ | GNSS_FIX | Geographic position based on GNSS |
| Value | Name | Description |
|---|---|---|
| ‘0’ | BSTS_NO_DATA | State is unknown |
| ‘1’ | BSTS_TIMEOUT | Waiting interval exceeded |
| ‘2’ | BSTS_DISCHARGED | The buoy participates in navigation, but its battery needs charging |
| ‘3’ | BSTS_OK | The buoy participates in navigation |
| ‘4’ | BSTS_ALIVE | Communication with the buoy is established, but its battery charge data have not been received yet |