The Simrad EM 3000 is a proprietary binary protocol with a fixed-length format, used in multibeam echo sounder systems for hydrographic surveying and seabed mapping.
Data:
-
Roll, pitch
-
Heave
-
Heading
Format:
<S><H><Rr><Pp><Xx><Yy>
|
Simrad EM 3000 protocol description |
|||||
|---|---|---|---|---|---|
|
FIELD N. |
FIELD |
DESCRIPTION |
UNIT |
DATA TYPE |
NOTE |
|
Byte 0 |
S |
status code |
- |
U8 |
See status table below for details. |
|
Byte 1 |
H |
header |
- |
U8 |
0x90 |
|
Byte 2-3 |
R |
roll LSB |
[deg] |
I16 |
Sign: Positive (+) when port up. Range: [-17999, 17999]. Resolution 0.01 degrees per bit. |
|
r |
roll MSB |
||||
|
Byte 4-5 |
P |
pitch LSB |
[deg] |
I16 |
Sign: Positive (+) bow up. Note: Sign of pitch angle is opposite of standard INS convention. Range: [-17999, 17999]. Resolution: 0.01 degrees per bit. |
|
p |
pitch MSB |
||||
|
Byte 6-7 |
X |
heave LSB |
[cm] |
I16 |
Sign: Positive (+) when elevated. Range: [-999, 999]. Resolution: 1 cm per bit. |
|
x |
heave MSB |
||||
|
Byte 8-9 |
Y |
heading LSB |
[deg] |
U16 |
Heading increase in clockwise direction. Range: [0, 35999]. Resolution: 0.01 degrees per bit. |
|
y |
heading MSB |
||||
Status code:
|
Simrad EM 3000 status code description |
|
|---|---|
|
Status code |
Description |
|
0x90 |
normal |
|
0x91 |
reduced performance |
|
0xA0 |
invalid data |
Example:
Simrad EM 3000 frame with raw example data is listed below.
|
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Byte 4 |
Byte 5 |
Byte 6 |
Byte 7 |
Byte 8 |
Byte 9 |
|---|---|---|---|---|---|---|---|---|---|
|
0x90 |
0x90 |
0x3C |
0x00 |
0x45 |
0x01 |
0x10 |
0x00 |
0x2E |
0x01 |
Decode raw U16 values from the Simrad EM 3000 frame above to get roll, pitch, heave and heading by using hex-to-decimal conversion and the resolution.
-
Status code
-
Status code: 0x90. This refers to normal operation.
-
-
Roll calculation
-
Resolution: 0.01 degrees per bit.
-
Roll U16 value (little-endian): (0x00 x 256) + 0x36 = (0 x 256) + 60 = 60.
-
Roll angle = roll U16 value x resolution = 60 x 0.01 degrees = 0.6 degrees.
-
-
Pitch calculation
-
Resolution: 0.01 degrees per bit.
-
Pitch U16 value (little-endian): (0x01 x 256) + 0x45 = (1 x 256) + 69 = 325.
-
Pitch angle = pitch U16 value x resolution= 325 x 0.01 degrees = 3.25 degrees.
-
-
Heave calculation
-
Resolution: 1 cm per bit.
-
Heave U16 value (little-endian): (0x00 x 256) + 0x10 = (0 x 256) + 16 = 16.
-
Heave = heave U16 value x resolution = 16 x 0.01 m = 0.16 m.
-
-
Heading calculation
-
Resolution: 0.01 per bit.
-
Heading U16 value (little-endian): (0x01 x 256) + 0x2E = (1 x 256) + 46 = 302.
-
Heading angle = heading U16 value x resolution = 302 x 0.01 degrees = 3.02 degrees.
-
Note 1
Simrad EM 3000 follows little-endian format: LSB is stored at the lowest memory address, followed by the MSB.
Note 2
The reference frame for data (e.g., roll) is configurable in the Simrad EM 3000 protocol. Also, the data's location (e.g., MRU or MP1) is configurable.