​Wayfinder Binary Interface Packet Protocol​

Wayfinder binary interface is used for both sending commands to the DVL and to receive Output data from the DVL. Wayfinder binary interface communication interface uses a packet protocol.

 

 

1.1      Binary Commands and Responses

In Wayfinder, binary commands are unidirectional, only from Software to DVL (firmware). Binary commands responses are unidirectional as well. Responses can only go from DVL to software. For each binary command received by firmware, there is a response packet. Note that the messages are transmitted in little-endian format.

 

The commands for the Wayfinder DVL are defined in this table.

Commands
Get System
Get Setup
Set Setup
Software Trigger
Speed of Sound Input
Get Time
Set Time

  

1.2      Binary Command/Response Descriptions

1.2.1     Get System Command

Get system command is used to query system configuration.  Command packet format is given below:

 

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

 SOP ID

 Start of Packet

 0xAA10 010F 0002

 uint8

 6

 Command ID

 Command ID

 0x0308 0001 0000 81

 uint8

 7

 Checksum

 The sum of all the non-checksum bytes in the message, ignoring rollover

 0x5901

 uint16

 2

 

 

1.2.2     Get System Response

Get system Response packet format is given below:

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0198 0010

uint8

6

Response ID

Response ID

0x0491 0001 0000 81

uint8

7

Status - Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Payload Header

Payload Header

0x2210 8700 0000

uint8

6

Frequency

System Frequency (Hz)

614400 Hz

float32

4

Firmware

Major/Minor/Build/Patch

 

uint32

4

FPGA version

0xVVVV

 

uint32

4

Unique system ID

ID for feature generation (64-bit hex value)

 

uint64

8

XDCR Type

Piston, Phased array

 

uint8

1

Beam angle

Beam angle (Degrees)

 

float32

4

Vertical beam

Yes/No

 

uint8

1

Reserved

 

 

uint8 array

101

System Type

Identifies the product.

76 for Wayfinder

uint8

1

System Sub-Type

Identifies the product features. (e.g. 600 Khz, PA vs Piston, etc.)

Value is set to 0

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

1.2.3     Get Setup Command

Get setup command is used to query deployment ping configuration.  Command packet format is given below:

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 010F 0002

uint8

6

Command ID

Command ID

0x0308 0001 0000 85

uint8

7

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

0x5D01

uint16

2

 

 

 

1.2.4     Get Setup Response

Get setup response packet format is given below:

 

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0125 0010

uint8

6

Response ID

Response ID

0x041E 0001 0000 85

uint8

7

Status- Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Payload Header

 

0x2210 1400 0000

uint8

6

Software trigger

Software trigger  Enable/Disable

1/0

uint8

1

Baud rate

Selection (9600/115200)

Enumeration (3/7)
3: 9600
7:115200 

uint8

1

Speed of sound

SOS  (m/sec)

1400-1600

float32

4

Max Track Range

Max depth (m)

0-≥250

float32

4

Reserved

Reserved field

N/A

float32

4

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

1.2.5     Set Setup Command

Set setup command is used to configure deployment.  Command packet format is given below:

 

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0123 0002

uint8

6

Command ID

Command ID

0x031C 0002 0000 87

uint8

7

Structure ID

Command structure ID

0x2210 1400 0000

uint8

6

Software trigger

Software trigger Enable/Disable

1/0

uint8

1

Baud rate

Selection (9600/115200)

Enumeration (3/7)
3: 9600
7:115200 

uint8

1

Speed of sound

SOS  (m/sec)

1400-1600

float32

4

Max Track Range

Max depth (m)

0-≥250

float32

4

Reserved

Reserved field

N/A

float32

4

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

1.2.6     Set Setup Response

 

Set setup response packet format is given below:

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0111 0010

uint8

6

Response ID

Response ID

0x040A 0002 0000 87

uint8

7

Status- Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

1.2.7     Software Trigger Command

 

DVL pings once when this command is received if ‘Software trigger’ in Setup structure is enabled. Software Trigger command packet format is given below:

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 010F 0002

uint8

6

Command ID

Command ID

0x0308 0011 0000 00

uint8

7

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

0xE800

uint16

2

 

 

1.2.8     Software Trigger Response

 

Software Trigger response packet format is given below:

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0111 0010

uint8

6

Response ID

Response ID

0x040A 0011 0000 00

uint8

7

Status- Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

1.2.9     Speed of Sound Command

 

This command sets the speed of sound value for the next ping. Speed of Sound Input command packet format is given below:

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0113 0002

uint8

6

Command ID

Command ID

0x030C 0003 0000 86

uint8

7

SOS

Speed of sound ( m/sec)

1400-1600

float32

4

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

 

 

1.2.10 Speed of Sound Response

 

Speed of Sound Input response packet format is given below:

 

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0111 0010

uint8

6

Response ID

Response ID

0x040A 0003 0000 86

uint8

7

Status- Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

1.2.11 Get Time Command

Get time command queries the current time of the DVL. Command packet format is given below:

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 010F 0002

uint8

6

Command ID

Command ID

0x0308 0001 0000 1D

uint8

7

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

0xF500

uint16

2

 

 

 

 

 

1.2.12 Get Time Response

 

Get Time response packet format is given below:

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 011D 0010

uint8

6

Response ID

Response ID

0x0416 0001 0000 1D

uint8

7

Status- Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Payload Header

Payload Header

0x2310 0C00 0000

uint8

6

Year

RTC Year, last 2 digits

 

uint8

1

Month

RTC Month

1-12

uint8

1

Day

RTC Day

1-31

uint8

1

Hour

RTC Hour

0-23

uint8

1

Minute

RTC Minute

0-59

uint8

1

Second

RTC Second

0-59

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

 

1.2.13 Set Time Command

Set time command can set a given time in the DVL. Command packet format is given below:

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 011B 0002

uint8

6

Command ID

Command ID

0x0314 0002 0000 1F

uint8

7

Structure ID

Command structure ID

0x2310 0C00 0000

uint8

6

Year

RTC Year, last 2 digits

 

uint8

1

Month

RTC Month

1-12

uint8

1

Day

RTC Day

1-31

uint8

1

Hour

RTC Hour

0-23

uint8

1

Minute

RTC Minute

0-59

uint8

1

Second

RTC Second

0-59

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

 

 

1.2.14 Set Time Response

Set Time response packet format is given below:

 Field

 Description

 Range/Value

 Data Type

 Size
(bytes)

SOP ID

Start of Packet

0xAA10 0111 0010

uint8

6

Response ID

Response ID

0x040A 0002 0000 1F

uint8

7

Status- Major

Binary Command Status – Major value

Status Table - Major

uint8

1

Status- Minor

Binary Command Status – Minor value

Status Table - Minor

uint8

1

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

1.2.15 Response Status

The response packet contains two status fields, Status- Major Byte and Status- Minor Byte as described below.

 Status - Major Byte

 Value

 Description

BIN_RSP_SUCCESS

1

Command success

BIN_RSP_UNKNOWN_CMD

2

Unknown command

BIN_RSP_PARAM_INVALID

3

One or more parameters are invalid

BIN_RSP_CMD_EXEC_ERR

4

Error in command execution

BIN_RSP_CMD_SET_ERR

5

Error in setting value

BIN_RSP_CMD_GET_ERR

6

Error in getting value

BIN_RSP_NORUN_WITH_PING

7

Cannot run this command while pinging

 

 

 Status – Minor Byte

 Value

 Description

BIN_RSP_INVALID_NONE

0

None of the parameters are invalid

BIN_RSP_INVALID_PARAM_SIZE

1

 

Expected size of parameters doesn't match the received size

BIN_RSP_INVALID_STRUCT_HDR

2

Invalid Structure Header

BIN_RSP_INVALID_BAUD

3

Invalid Baud rate

BIN_RSP_INVALID_TRIGGER

4

Invalid trigger enable/disable value

BIN_RSP_INVALID_SOS

5

Invalid speed of sound

BIN_RSP_INVALID_MAXDEPTH

6

Invalid max depth

BIN_RSP_INVALID_DATETIME

7

Invalid date/time

BIN_RSP_INVALID_PARAM_GENERIC

8

Invalid parameter

 

1.3      Binary Data Output

Wayfinder DVL outputs the data over the binary interface in the following packet format.

 

 Field

 Description

 Units

 Data Type

 Size
(bytes)

SOP ID

Start of Packet: 0xAA10 0174 0010

 

uint8

6

Data ID

0x056D 00AA 1169 0000 00

 

uint8

9

System ID/Type

System Type = 76 = 0x4C

 

uint8

1

System Sub-Type

Variant on the system type e.g. frequency or transducer type

 

uint8

1

FW version - Major

FW version - Major

 

uint8

1

FW version – Minor

FW version – Minor

 

uint8

1

FW version – Patch

FW version – Patch

 

uint8

1

FW version - Build

FW version - Build

 

uint8

1

Year

RTC Year, last 2 digits

 

uint8

1

Month

RTC Month

 

uint8

1

Day

RTC Day

 

uint8

1

Hour

RTC Hour

 

uint8

1

Minute

RTC Minute

 

uint8

1

Second

RTC Second

 

uint8

1

Milliseconds

RTC millisecond

 

uint16

2

Coordinate System

 

-

uint8

1

BT Vel X

Velocity of the DVL relative to the bottom X, Y, Z and Error components

float NaN is used for bad velocities

m/s

float32

4

BT Vel Y

 

m/s

float32

4

BT Vel Z

 

m/s

float32

4

BT Vel E

 

m/s

float32

4

Range to Bottom 1

Range from the DVL to the bottom as determined by each Beam 1-4

float NaN is used for bad ranges or bad bottom detection

meters

float32

4

Range to Bottom 2

 

meters

float32

4

Range to Bottom 3

 

meters

float32

4

Range to Bottom 4

 

meters

float32

4

Mean range to bottom

Calculated mean range to bottom based on valid beams

meters

float32

4

Speed of Sound

The speed of sound used for the doppler processing

m/s

float32

4

BT status

Combines amplitude/correlation errors and three beam solution information

-

uint16

2

BIT

Built in test

 

uint16

2

Input Voltage

 

Volts

float32

4

Transmit Voltage

 

Volts

float32

4

Transmit Current

 

Amps

float32

4

System Serial No.

Serial number in the format - SSSSSS [6]

 -

uint8

6

Reserved

 

 

uint8

20

Checksum - Data

 

-

uint16

2

Checksum

The sum of all the non-checksum bytes in the message, ignoring rollover

 

uint16

2

 

 

1.3.1  BIT Flags

The BIT Flags are used in the Binary Data Output to provide current system status. The flag are described below.

The BIT flags field (2 bytes) are organized as follows:

  • Byte 1: Total number of faults
  • Byte 2: Active fault – Active faults will rotate, and one fault is written in each output

Fault Name

BIT Error Code

Description

AB_NO_ERR

0x00

No Error

AB_POST_FAULT_DSC

0x01

Power on Self-Test DSC Failure

AB_POST_FAULT_DPFRAM

0x02

Power on Self-Test DP FRAM Failure

AB_POST_FAULT_SDRAM

0x03

Power On Self-Test SDRAM Failure

AB_POST_FAULT_DPEEPROM

0x04

Power On Self-Test DP EEPROM Failure

AB_POST_FAULT_RTC

0x05

Power On Self-Test RTC Failure

AB_FAULT_RTC

0x06

Pinging RTC Failure

AB_CLK_NOT_LOCKED

0x10

 

AB_FAULT_REG_FILE_SCK_ADC

0x11

 

AB_FAULT_REG_FILE_DSP

0x12

 

AB_FAULT_REG_FILE_ADC

0x13

 

AB_FAULT_RAW_RD_EMPTY

0x14

 

AB_FAULT_RAW_WR_FULL

0x15

 

AB_FAULT_FILTER

0x16

 

AB_FAULT_OX_RD_EMPTY

0x17

 

AB_FAULT_OS_WR_FULL

0x18

 

AB_FAULT_OS_FULL

0x19

 

AB_FAULT_IN_FIFO

0x1A

 

AB_FAULT_TX

0x1B

 

AB_QSPI_ERROR

0x1C

 

AB_QSPI_FIFO_RD_EMPTY

0x1D

 

AB_FAULT_FPGA_14

0x1E

 

AB_FAULT_FPGA_15

0x1F

 

AB_FAULT_VOLTAGE_OUT_OF_RANGE

0x20

 

AB_DP_FAULT_MEMORY

0xE5

Memory pointer error

AB_DP_FAULT_OOB

0xE6

Out-of-Bounds error

AB_DP_FAULT_START_PING

0xE7

Ping start error

AB_DP_FAULT_PING_WAIT_EVT_FAIL

0xE8

Ping Wait for Data Event failed

AB_DP_FAULT_PING_FIFO

0xE9

Ping FIFO failure

AB_DP_FAULT_BOTDET_FISH

0xEA

Bottom detect fish screen failed a beam

AB_DP_FAULT_BOTDET_BOUNCE

0xEB

Bottom detect 2nd bounce screen failed a beam

AB_DP_FAULT_BOTDET_FAIL

0xEC

Bottom detect failed to find >2 good beams.

AB_DP_FAULT_COR_FAIL

0xED

Beam failed correlation threshold test.

AB_DP_FAULT_VEL_OVR

0xEE

Using manual override velocities

AB_DP_FAULT_NVMEM_FAILURE

0xEF

Bottom ping nonvol memory error (bottom track disabled)

AB_DP_FAULT_SCHED_EVT_DESCR

0xF0

Scheduler - Bad Event descriptor

AB_DP_FAULT_SCHED_EVT_ERR

0xF1

Scheduler - Event error

AB_DP_FAULT_SCHED_TRIG_EVT_ERR

0xF2

Scheduler - trigger event create failure

AB_DP_FAULT_SCHED_PING_EVT_ERR

0xF3

Scheduler - ping event wait error

AB_DP_FAULT_SCHED_EVT_RESET_ERR

0xF4

Scheduler - Event reset error

AB_DP_FAULT_OUT_EVTWAIT_ERR

0xF5

Output Event wait error

AB_DP_FAULT_PING_EVT_ERR

0xF6

Ping event wait error

AB_DP_FAULT_TIMER

0xF7

Timer read error

AB_DP_FAULT_IQ_ABORT

0xF8

IQ data transfer aborted

AB_DP_FAULT_IQ_READ

0xF9

IQ data read error

AB_DP_FAULT_IQ_EVT_SET

0xFA

IQ data event set error

AB_DP_FAULT_FPGA_IND_FAULT

0xFB

FPGA indicates fault

AB_DP_FAULT_FIFO_EVT_WAIT

0xFC

FIFO event wait fault

AB_DP_FAULT_IQ_CKSUM_FAIL

0xFD

IQ data checksum failure

AB_DP_FAULT_WDREG_ERR

0xFE

Watchdog registration error

AB_DP_FAULT_WDRPT_ERR

0xFF

Watchdog reporting error

AB_MAX_FAULT_CODES

0x100

 Count of current faults

AB_MAX_FAULT_CODE_ID

 

​ ​​​​​