Communication & Messaging
1. Interfacing
The communication interfaces currently supported for the ANELLO Aerial INS:
Serial (RS-232)
UDP (Ethernet)
CAN (NMEA 2000)
1.1 Serial Communication Parameters
- Default Baud Rate:
RS-232-1: 57600
RS-232-2: 921600 units shipped prior to 2/19/2026 have a default baud rate of 57600
The maximum supported baud rate for both serial ports is 921600
- Data Format
Data Bits: 8
Stop Bits: 1
Parity: None
1.2 Port Definitions
Interface |
Supported Protocols |
Default Configuration |
Functions |
|---|---|---|---|
RS232-1 |
Serial, MAVLink, NMEA 0183 |
MAVLink at 57600 |
Data input / output, configuration, firmware updates |
RS232-2 |
Serial, MAVLink, NMEA 0183 |
NMEA 0183 at 921600 |
Data input / output, configuration |
Ethernet |
UDP, MAVLink, NMEA 0183 |
MAVLink (UDP 14550) |
Data input / output, configuration, log downloads |
CAN |
NMEA 2000 |
NMEA 2000 |
Data input / output |
1.3 Time Synchronization
The ANELLO Aerial INS supplies the following I/O pins for time synchronization
Interface |
Max Voltage |
Functions |
|---|---|---|
PPS |
3.3 V |
GNSS time synchronization output pulse |
Sync |
3.3 V |
GNSS time synchronization input pulse |
Reset |
3.3 V |
Driving low restarts the Aerial INS |
See Mechanicals to find the specified output pins.
2. Input Messages
2.1 NMEA 0183 Input Messages
The ANELLO Aerial INS supports standard NMEA 0183 input messages which allow the UAV to send in external sensor information, e.g. for speed-aiding. ANELLO also has a set of proprietary messages, following the standard NMEA proprietary format with a prefix of “$P”, company code of “AP” (ANELLO Photonics), and the message code.
To configure NMEA 0183 over a serial port, update the following configs (see Configure ANELLO Aerial INS for instructions on changing settings):
NM0183_CFG = 1 (RS232-1) or 2 (RS232-2)
To change the baud rate use SER_TEL1_BAUD for RS232-1 or SER_TEL2_BAUD for RS232-2.
For the full table of serial NMEA0183 parameters, see NMEA0183 Serial Parameters.
To configure NMEA 0183 over UDP, update the following configs (see Configure ANELLO Aerial INS for instructions on changing settings):
NMUDP_EN = 1
UDP input uses port 19551 and UDP output uses port 19550.
External UDP output only occurs when NMUDP_MC_IP0 through NMUDP_MC_IP3
define a valid multicast group. Setting NMUDP_EN to 1 alone does not
produce external UDP output.
See NMEA0183 over UDP Parameters for the full parameter table.
2.1.1 External Sensor Aiding
2.1.1.1. VHW: Water Speed & Heading
Message Format:
$--VHW,x.x,T,x.x,M,x.x,N,x.x,K*hh
Index |
Part |
Description |
|---|---|---|
1 |
x.x |
True Heading, Degrees |
2 |
T |
T = True |
3 |
x.x |
Magnetic Heading, Degrees |
4 |
M |
M = Magnetic |
5 |
x.x |
Knots (speed of vessel relative to the water) |
6 |
N |
N = Knots |
7 |
x.x |
Kilometers per hour (speed of vessel relative to the water) |
8 |
K |
K = Kilometres per hour |
9 |
hh |
Checksum |
Note
Aerial INS uses fields 1, 3, 5, and 7 from this sentence.
2.1.1.2. VBW: Dual Ground/Water Speed
Message Format:
$--VBW,x.x,x.x,A,x.x,x.x,A*hh
Index |
Part |
Description |
|---|---|---|
1 |
x.x |
Longitudinal water speed, “-“ means astern |
2 |
x.x |
Transverse water speed, “-“ means port |
3 |
A |
Status, A = Data Valid |
4 |
x.x |
Longitudinal ground speed, “-“ means astern |
5 |
x.x |
Transverse ground speed, “-“ means port |
6 |
A |
Status, A = Data Valid |
7 |
hh |
Checksum |
Note
Aerial INS uses fields 1 through 6 from this sentence.
2.1.2 External Position Aiding
To enable external NMEA0183 GNSS input set EKF2_GPS_EXT_EN = 1 or Enabled
To enable a secondary input-only serial port to receive external NMEA0183 GNSS input set NM_GNSS_CFG = 1 (RS232-1) or 2 (RS232-2)
To use an external GNSS input, the minimum required messages are GGA, RMC, and GSA
at a rate of at least 0.5 Hz. In order for the algorithm to use external GNSS
updates, RMC must report status = A, latitude and longitude must be valid,
GSA mode must be 3 or greater,
and PDOP, HDOP, and VDOP must all be present, finite, and greater than zero.
See External Position Aiding Parameters for the parameter table used to configure external position aiding. See Configure ANELLO Aerial INS for instructions on changing settings.
2.1.2.2. GGA: Global Positioning System Fix Data
Message Format:
$--GGA,hhmmss.ss,ddmm.mmmmmm,a,dddmm.mmmmmm,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
Index |
Part |
Description |
|---|---|---|
1 |
hhmmss.ss |
Time (UTC) |
2 |
ddmm.mmmmmm |
Latitude |
3 |
a |
N or S |
4 |
dddmm.mmmmmm |
Longitude |
5 |
a |
E or W |
6 |
x |
GPS Quality Indicator (see table below) |
7 |
xx |
Number of satellites in use (00-12) |
8 |
x.x |
Horizontal Dilution of Precision (HDOP) |
9 |
x.x |
Altitude (MSL) |
10 |
M |
Units of altitude (M=Meters) |
11 |
x.x |
Geoidal separation |
12 |
M |
Units of geoidal separation (M=Meters) |
13 |
x.x |
Age of differential data (seconds) |
14 |
xxxx |
Differential Reference Station ID (0000-1023) |
15 |
hh |
Checksum |
Note
Aerial INS uses fields 1 through 9 and field 11 from this sentence.
GPS Quality Indicator
Value |
Description |
|---|---|
0 |
Fix not available or invalid |
1 |
GPS fix (no corrections) |
2 |
Differential GPS fix |
4 |
RTK Fixed |
5 |
RTK Float |
6 |
Dead reckoning mode (GPS is determined to be jammed or spoofed) |
2.1.2.3. GSA: GNSS DOP and Active Satellites
Message Format:
$--GSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,x.x,x.x,x.x*hh
Index |
Part |
Description |
|---|---|---|
1 |
a |
Mode 1: M = Manual, A = Automatic |
2 |
x |
Mode 2: Fix Type (1 = No Fix, 2 = 2D Fix, 3 = 3D Fix) |
3 |
xx |
Satellite ID used for fix (PRN #1) |
4 |
xx |
Satellite ID used for fix (PRN #2) |
5 |
xx |
Satellite ID used for fix (PRN #3) |
6 |
xx |
Satellite ID used for fix (PRN #4) |
7 |
xx |
Satellite ID used for fix (PRN #5) |
8 |
xx |
Satellite ID used for fix (PRN #6) |
9 |
xx |
Satellite ID used for fix (PRN #7) |
10 |
xx |
Satellite ID used for fix (PRN #8) |
11 |
xx |
Satellite ID used for fix (PRN #9) |
12 |
xx |
Satellite ID used for fix (PRN #10) |
13 |
xx |
Satellite ID used for fix (PRN #11) |
14 |
xx |
Satellite ID used for fix (PRN #12) |
15 |
x.x |
PDOP (Position Dilution of Precision) |
16 |
x.x |
HDOP (Horizontal Dilution of Precision) |
17 |
x.x |
VDOP (Vertical Dilution of Precision) |
18 |
hh |
Checksum |
Note
Aerial INS uses fields 1 through 17 from this sentence. The real-time algorithm relies on fields 2, 15, 16, and 17.
2.1.3 ANELLO Proprietary
2.1.3.1. GPSCTRL: GPS Control (ANELLO Proprietary)
Enables or disables GPS utilization in sensor fusion algorithm.
Message Format:
$PAPGPSCTRL,A*hh
Index |
Part |
Description |
|---|---|---|
1 |
A |
GPS control, “1” = Use GPS (default), “0” = Ignore GPS |
2 |
hh |
Checksum |
Note
Aerial INS uses field 1 from this sentence.
2.1.3.2. AUTOCAL: Speed Sensor Auto-Calibration Control (ANELLO Proprietary)
This message starts/stops the Aerial INS speed sensor auto-calibration routine (e.g., for water-speed aiding sensors). The default state is 0 (not in auto-calibration mode).
Message Format:
$PAPAUTOCAL,A*hh
Index |
Part |
Description |
|---|---|---|
1 |
A |
Auto-calibration control: “0” = Off (default), “1” = On (enter auto-cal) |
2 |
hh |
Checksum |
Note
Aerial INS uses field 1 from this sentence.
Recommended data collection procedure (while x = 1)
Operate in calm waters with minimal currents/wind/wake.
Run out-and-back legs along the same line (reciprocal headings).
Collect data at ≥ 5 different steady speeds spanning the full operating speed range.
Each out leg and back leg should be at least 30 seconds at a steady speed.
Repeat each speed at least once (more repeats improves robustness), and avoid aggressive turns during the steady legs.
When complete, send
$PAPAUTOCAL,0*hhto exit auto-calibration mode.
2.1.3.3. PAPPOS: Auxiliary Position (Lat/Lon/Alt) (ANELLO Proprietary)
This message can be used to pass in an external position, either from user input or an external aiding source such as visual waypoint detection, USBL acoustic positioning, star tracker, or an M Code receiver.
Message Format:
$PAPPOS,hhmmss.ss,PX,PY,PZ,H_acc,V_acc*hh
Index |
Part |
Description |
|---|---|---|
1 |
hhmmss.ss |
UTC time field. This field may be left empty, but the comma position is required. |
2 |
PX |
Latitude in degrees (signed; +N / -S) |
3 |
PY |
Longitude in degrees (signed; +E / -W) |
4 |
PZ |
Altitude above mean sea level (meters) |
5 |
H_acc |
Horizontal accuracy / uncertainty (meters) |
6 |
V_acc |
Vertical accuracy / uncertainty (meters) |
7 |
hh |
NMEA checksum (hex) |
Note
Aerial INS uses fields 2 through 6 from this sentence.
2.1.3.4. PAPRPH: Roll/Pitch/Heading (with Accuracies) (ANELLO Proprietary)
This message can be used to pass in an external heading, either from user input or an external aiding source such as a well-calibrated magnetometer, star tracker, or an M Code receiver. Currently only external heading aiding is implemented, and roll/pitch aiding are available upon request.
Message Format:
$PAPRPH,hhmmss.ss,R,P,Y,R_acc,P_acc,H_acc*hh
Index |
Part |
Description |
|---|---|---|
1 |
hhmmss.ss |
UTC time field. This field may be left empty, but the comma position is required. |
2 |
R |
Roll angle (degrees) |
3 |
P |
Pitch angle (degrees) |
4 |
Y |
Heading / yaw (degrees, typically 0..360) |
5 |
R_acc |
Roll accuracy / uncertainty (degrees) |
6 |
P_acc |
Pitch accuracy / uncertainty (degrees) |
7 |
H_acc |
Heading accuracy / uncertainty (degrees) |
8 |
hh |
NMEA checksum (hex) |
Note
Aerial INS uses fields 2 through 7 from this sentence.
2.1.3.5. APMAV: Restore Serial MAVLink Access (ANELLO Proprietary)
This recovery command enables MAVLink on RS232-1, disables the NMEA0183 serial driver, and reboots the unit. This is intended if you only have serial connected to your computer and you need to change parameters, which is done over MAVLink.
Message Format:
$APMAV*hh
Index |
Part |
Description |
|---|---|---|
1 |
hh |
NMEA checksum (hex) |
2.2 NMEA 2000 Input Messages
The ANELLO Aerial INS also supports the following standard NMEA 2000 input messages, which allow the vehicle to send in external sensor information, e.g. for speed-aiding.
Ensure NM2K_CFG is set to 1 before using the NMEA 2000 driver on the
CAN port. This enables the driver and allows the system to publish and receive
NMEA 2000 messages.
2.2.1 PGN 127488: Engine Parameters, Rapid Update
Provides data with a high update rate for a specific engine in a single frame message.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Engine Instance |
Identifies the specific engine (0=Single) |
8-bit unsigned |
|
2 |
Engine Speed |
Engine rotational speed |
RPM |
16-bit unsigned |
3 |
Engine Boost Pressure |
Turbocharger or supercharger pressure |
kPa |
16-bit signed |
4 |
Engine Tilt/Trim |
Engine tilt or trim position |
% |
8-bit signed |
Note
Aerial INS uses fields 1 through 4 from this PGN.
Logged topic: NMEA2000_ENGINE
2.2.2 PGN 127489: Engine Parameters, Dynamic
Provides real-time operational data and status for a specific engine, usually broadcast periodically for control or instrumentation.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Engine Instance |
Identifies the specific engine (0=Single) |
8-bit unsigned |
|
2 |
Engine Oil Pressure |
Engine lubricant pressure |
kPa |
16-bit unsigned |
3 |
Engine Oil Temperature |
Temperature of the engine lubricant |
K |
16-bit unsigned |
4 |
Engine Temperature |
Temperature of the engine coolant |
K |
16-bit unsigned |
5 |
Alternator Potential |
Alternator output voltage |
V |
16-bit signed |
6 |
Fuel Rate |
Engine fuel consumption rate |
L/hr |
16-bit signed |
7 |
Total Engine Hours |
Cumulative operating time of the engine |
s |
32-bit unsigned |
8 |
Engine Coolant Pressure |
Pressure of the engine coolant |
kPa |
16-bit unsigned |
9 |
Fuel Pressure |
Pressure of the fuel |
kPa |
16-bit unsigned |
10 |
Engine Discrete Status 1 |
Bitmask indicating warnings and statuses |
16-bit bitmap |
|
11 |
Engine Discrete Status 2 |
Bitmask indicating other statuses |
16-bit bitmap |
|
12 |
Percent Engine Load |
Current power output as a percentage of max |
% |
8-bit unsigned |
13 |
Percent Engine Torque |
Current torque output as a percentage of max |
% |
8-bit signed |
Note
Aerial INS uses fields 1 through 13 from this PGN. Fields 10 and 11 are logged as raw bitmaps.
Logged topic: NMEA2000_ENGINE_DYN
2.2.3 PGN 128259: Speed, Water Referenced
Provides a single transmission describing the motion of a vessel relative to the water.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Speed Water Referenced |
Vessel’s speed relative to the water |
m/s |
16-bit signed |
3 |
Speed Ground Referenced |
Vessel’s speed relative to the ground (SOG) |
m/s |
16-bit signed |
4 |
Speed Water Referenced Type |
Method of measurement (e.g., Paddle wheel) |
8-bit lookup |
|
5 |
Speed Direction |
Direction of water-referenced speed |
4-bit unsigned |
Note
Aerial INS uses fields 1 through 5 from this PGN. Fields 4 and 5 are used without remapping.
Logged topic: NMEA2000_SPEED
2.2.4 PGN 128275: Distance Log
Cumulative voyage distance traveled since last reset, tagged with time and date.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Date |
Days since January 1, 1970 |
d |
16-bit unsigned |
2 |
Time |
Seconds since midnight |
s |
32-bit unsigned |
3 |
Total Cumulative Distance |
Total distance traveled through water |
m |
32-bit unsigned |
4 |
Distance Since Last Reset |
Distance traveled since last reset |
m |
32-bit unsigned |
Note
Aerial INS uses fields 1 through 4 from this PGN.
Logged topic: NMEA2000_DISTANCE
2.2.5 PGN 130311: Environmental Parameters
These values provide weather and ambient condition data, often used for sensor calibration, navigation adjustments, and environmental awareness.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Temperature Source |
Source of the temperature reading |
6-bit lookup |
|
3 |
Humidity Source |
Source of the humidity reading |
2-bit lookup |
|
4 |
Temperature |
Actual temperature reading |
K |
16-bit signed |
5 |
Humidity |
Relative humidity |
% |
16-bit signed |
6 |
Atmospheric Pressure |
Barometric pressure |
Pa |
16-bit unsigned |
Note
Aerial INS uses fields 1 through 6 from this PGN. Fields 2 and 3 are used without remapping.
Logged topic: NMEA2000_ENVIRONMENT
2.2.6 PGN 130578: Vessel Speed Components
Accurately describes the speed of a vessel by component vectors.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Longitudinal Speed, Water-referenced |
Forward/aft speed relative to water (surge) |
m/s |
16-bit signed |
2 |
Transverse Speed, Water-referenced |
Port/starboard speed relative to water (sway) |
m/s |
16-bit signed |
3 |
Longitudinal Speed, Ground-referenced |
Forward/aft speed relative to ground |
m/s |
16-bit signed |
4 |
Transverse Speed, Ground-referenced |
Port/starboard speed relative to ground |
m/s |
16-bit signed |
5 |
Stern Speed, Water-referenced |
Transverse speed of the stern relative to water |
m/s |
16-bit signed |
6 |
Stern Speed, Ground-referenced |
Transverse speed of the stern relative to ground |
m/s |
16-bit signed |
Note
Aerial INS uses fields 1 through 6 from this PGN.
Logged topic: NMEA2000_VESSEL_SPEED
2.2.7 PGN 61184: GPS Control
ANELLO proprietary message used to enable or disable the GPS through the NMEA2000 interface. CAN ID format: 0x18EF<dest><src>
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
GPS Control |
GPS enable/disable command: 0 = Disable GPS, 1 = Enable GPS |
8-bit unsigned |
Note
Maritime INS uses field 1 from this PGN.
Logged topic: NMEA2000_GPSCTRL
2.2.8 PGN 126720: Speed Sensor Auto-Calibration Control (ANELLO Proprietary)
ANELLO proprietary NMEA 2000 message used to start/stop the speed sensor auto-calibration routine. The default state is 0 (not in auto-calibration mode). CAN ID format: 0x19EF<dest><src>
Field |
Name |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Auto-calibration Control |
0 = Off (default), 1 = On (enter auto-calibration mode) |
8-bit unsigned |
Recommended data collection procedure (while Auto-calibration Control = 1)
Operate in calm waters with minimal currents/wind/wake.
Run out-and-back legs on reciprocal headings.
Use ≥ 5 steady speeds spanning your full speed range.
Hold each leg ≥ 30 seconds at steady speed.
Exit auto-calibration by transmitting Auto-calibration Control = 0.
Note
Aerial INS uses field 1 from this PGN.
Logged topic: NMEA2000_AUTOCAL_WATERSPEED
2.2.9 PGN 127493: Transmission Parameters, Dynamic
Provides real-time operational data and status for a specific transmission, typically broadcast periodically for monitoring and instrumentation.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Transmission Instance |
Identifies the specific transmission instance |
8-bit unsigned |
|
2 |
Gear* |
Current transmission gear state |
2-bit unsigned |
|
3 |
Reserved |
Reserved for future use |
6-bit unsigned |
|
4 |
Oil Pressure |
Transmission oil pressure |
kPa |
16-bit unsigned |
5 |
Oil Temperature |
Transmission oil temperature |
K |
16-bit unsigned |
6 |
Transmission Status |
Bitmask indicating transmission status |
8-bit bitmap |
|
7 |
Reserved |
Reserved for future use |
8-bit unsigned |
Gear Status (2-bit value)
Value |
Description |
|---|---|
0 |
Forward |
1 |
Neutral |
2 |
Reverse |
3 |
Reserved |
Note
Aerial INS uses fields 1, 2, 4, 5, and 6 from this PGN. Field 6 is logged as a raw bitmap.
Logged topic: NMEA2000_TRANSMISSION
2.2.10 PGN 130816: Auxiliary Position (ANELLO Proprietary)
Auxiliary GPS / GNSS position information input
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
lat |
Latitude |
deg |
32-bit signed |
2 |
lon |
Longitude |
deg |
32-bit signed |
3 |
alt |
Altitude above mean sea level |
m |
32-bit signed |
4 |
hacc |
Horizontal accuracy / uncertainty |
m |
32-bit signed |
5 |
vacc |
Vertical accuracy / uncertainty |
m |
32-bit signed |
Note
Aerial INS uses fields 1 through 5 from this PGN. Latitude and longitude
are encoded as 1e-7 deg/count. Altitude is encoded as 1e-3 m/count.
Horizontal accuracy and vertical accuracy are encoded as 1e-7 m/count.
Logged topic: NMEA2000_POS
2.2.11 PGN 130817: Auxiliary Attitude (ANELLO Proprietary)
Auxiliary roll, pitch, and heading information along with accuracy estimates
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
roll |
Roll angle |
deg |
32-bit signed |
2 |
pitch |
Pitch angle |
deg |
32-bit signed |
3 |
heading |
Heading / yaw |
deg |
32-bit signed |
4 |
roll_acc |
Roll accuracy / uncertainty |
deg |
32-bit signed |
5 |
pitch_acc |
Pitch accuracy / uncertainty |
deg |
32-bit signed |
6 |
head_acc |
Heading accuracy / uncertainty |
deg |
32-bit signed |
Note
Aerial INS uses fields 1 through 6 from this PGN. All fields are encoded
as 1e-7 deg/count.
Logged topic: NMEA2000_RPH
3. Output Messages
3.1 NMEA 0183 Output Messages
To configure NMEA 0183 over a serial port, update the following configs (see Configure ANELLO Aerial INS for instructions on changing settings):
NM0183_CFG=1(RS232-1) or2(RS232-2)NM0183_ODR_GGA=5(output data rate; e.g.5= 5 Hz,0is no output)NM0183_ODR_RMC=5(output data rate; e.g.5= 5 Hz,0is no output)NM0183_ODR_VTG=5(output data rate; e.g.5= 5 Hz,0is no output)NM0183_ODR_GSA=5(output data rate; e.g.5= 5 Hz,0is no output)NM0183_ODR_GSV=5(output data rate; e.g.5= 5 Hz,0is no output)NM0183_ODR_APIMU=5(output data rate; e.g.5= 5 Hz,0is no output)NM0183_ODR_APINS=5(output data rate; e.g.5= 5 Hz,0is no output)
The default baud rate is 57600 for RS232-1 and 921600 for RS232-2.
Units shipped prior to 2/19/2026 have a default baud rate of 57600 on both ports.
To change the baud rate use SER_TEL1_BAUD for RS232-1 or SER_TEL2_BAUD for RS232-2.
To configure NMEA 0183 over UDP, update the following configs (see Configure ANELLO Aerial INS for instructions on changing settings):
NMUDP_EN=1NMUDP_ODR_GGA=5(output data rate; e.g.5= 5 Hz,0is no output)NMUDP_ODR_RMC=5(output data rate; e.g.5= 5 Hz,0is no output)NMUDP_ODR_VTG=5(output data rate; e.g.5= 5 Hz,0is no output)NMUDP_ODR_GSA=5(output data rate; e.g.5= 5 Hz,0is no output)NMUDP_ODR_GSV=5(output data rate; e.g.5= 5 Hz,0is no output)NMUDP_ODR_APIMU=5(output data rate; e.g.5= 5 Hz,0is no output)NMUDP_ODR_APINS=5(output data rate; e.g.5= 5 Hz,0is no output)
UDP output uses port 19550 and UDP input uses port 19551.
External UDP output only occurs when NMUDP_MC_IP0 through NMUDP_MC_IP3
define a valid multicast group. Setting NMUDP_EN to 1 alone does not
produce external UDP output.
See NMEA0183 over UDP Parameters for how to set the multicast IP.
3.1.1. RMC: Recommended Minimum Navigation Information
Message Format:
$--RMC,hhmmss.ss,A,ddmm.mmmmmm,a,dddmm.mmmmmm,a,x.x,x.x,xxxx,x.x,a*hh
Index |
Part |
Description |
|---|---|---|
1 |
hhmmss.ss |
Time (UTC) |
2 |
A |
Status, A = solution initialized, V = Void, solution (position and/or heading) not initialized |
3 |
ddmm.mmmmmm |
Latitude |
4 |
a |
N or S |
5 |
dddmm.mmmmmm |
Longitude |
6 |
a |
E or W |
7 |
x.x |
Speed over ground, knots |
8 |
x.x |
Course over ground, degrees (range from 0 to 360) |
9 |
xxxx |
Date, ddmmyy |
10 |
x.x |
Magnetic Variation, degrees |
11 |
a |
E or W |
12 |
hh |
Checksum |
Note
Fields 10 and 11 are left blank in current Aerial INS output.
3.1.2. GGA: Global Positioning System Fix Data
Message Format:
$--GGA,hhmmss.ss,ddmm.mmmmmm,a,dddmm.mmmmmm,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
Index |
Part |
Description |
|---|---|---|
1 |
hhmmss.ss |
Time (UTC) |
2 |
ddmm.mmmmmm |
Latitude |
3 |
a |
N or S |
4 |
dddmm.mmmmmm |
Longitude |
5 |
a |
E or W |
6 |
x |
GPS Quality Indicator (see table below) |
7 |
xx |
Number of satellites in use (00-12) |
8 |
x.x |
Horizontal Dilution of Precision (HDOP) |
9 |
x.x |
Altitude (MSL) |
10 |
M |
Units of altitude (M=Meters) |
11 |
x.x |
Geoidal separation |
12 |
M |
Units of geoidal separation (M=Meters) |
13 |
x.x |
Age of differential data (seconds) |
14 |
xxxx |
Differential Reference Station ID (0000-1023) |
15 |
hh |
Checksum |
GPS Quality Indicator
Value |
Description |
|---|---|
0 |
Fix not available or invalid |
1 |
GPS fix (no corrections) |
2 |
Differential GPS fix |
4 |
RTK Fixed |
5 |
RTK Float |
6 |
Dead reckoning mode (GPS is determined to be jammed or spoofed) |
3.1.3. VTG: Course Over Ground and Ground Speed
Message Format:
$--VTG,x.x,T,x.x,M,x.x,N,x.x,K,a*hh
Index |
Part |
Description |
|---|---|---|
1 |
x.x |
Course over ground, degrees true |
2 |
T |
True course indicator |
3 |
x.x |
Course over ground, degrees magnetic |
4 |
M |
Magnetic course indicator |
5 |
x.x |
Speed over ground, knots |
6 |
N |
Knots speed indicator |
7 |
x.x |
Speed over ground, kilometers per hour |
8 |
K |
Kilometers-per-hour speed indicator |
9 |
a |
Mode indicator |
10 |
hh |
Checksum |
3.1.4. GSA: GNSS DOP and Active Satellites
Message Format:
$--GSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,x.x,x.x,x.x*hh
Index |
Part |
Description |
|---|---|---|
1 |
a |
Mode 1: M = Manual, A = Automatic |
2 |
x |
Mode 2: Fix Type (1 = No Fix, 2 = 2D Fix, 3 = 3D Fix) |
3 |
xx |
Satellite ID used for fix (PRN #1) |
4 |
xx |
Satellite ID used for fix (PRN #2) |
5 |
xx |
Satellite ID used for fix (PRN #3) |
6 |
xx |
Satellite ID used for fix (PRN #4) |
7 |
xx |
Satellite ID used for fix (PRN #5) |
8 |
xx |
Satellite ID used for fix (PRN #6) |
9 |
xx |
Satellite ID used for fix (PRN #7) |
10 |
xx |
Satellite ID used for fix (PRN #8) |
11 |
xx |
Satellite ID used for fix (PRN #9) |
12 |
xx |
Satellite ID used for fix (PRN #10) |
13 |
xx |
Satellite ID used for fix (PRN #11) |
14 |
xx |
Satellite ID used for fix (PRN #12) |
15 |
x.x |
PDOP (Position Dilution of Precision) |
16 |
x.x |
HDOP (Horizontal Dilution of Precision) |
17 |
x.x |
VDOP (Vertical Dilution of Precision) |
18 |
hh |
Checksum |
3.1.5. GSV: GNSS Satellites in View
Message Format:
$--GSV,x,x,xx,xx,xx,xxx,xx,xx,xx,xxx,xx,xx,xx,xxx,xx,xx,xx,xxx,xx*hh
Index |
Part |
Description |
|---|---|---|
1 |
x |
Total number of GSV messages for this epoch |
2 |
x |
Message number |
3 |
xx |
Total number of satellites in view |
4 |
xx |
Satellite ID (PRN #1 in this message) |
5 |
xx |
Elevation, degrees (satellite #1) |
6 |
xxx |
Azimuth, degrees true (satellite #1) |
7 |
xx |
Signal-to-noise ratio, dB-Hz (satellite #1) |
8-11 |
xx |
Satellite ID, elevation, azimuth, and SNR for satellite #2 |
12-15 |
xx |
Satellite ID, elevation, azimuth, and SNR for satellite #3 |
16-19 |
xx |
Satellite ID, elevation, azimuth, and SNR for satellite #4 |
20 |
hh |
Checksum |
3.1.6 IMU: Proprietary IMU Output
Message Format:
$PAPIMU,Time,T_Sync,AX,AY,AZ,WX,WY,WZ,OG_WX,OG_WY,OG_WZ,MAG_X,MAG_Y,MAG_Z,TempC,Status_X,Status_Y,Status_Z*hh
Index |
Field |
Units |
Description |
|---|---|---|---|
1 |
Time |
ms |
Time since power on |
2 |
T_Sync |
ms |
IMU synchronization timestamp |
3 |
AX |
g |
X-Axis Acceleration |
4 |
AY |
g |
Y-Axis Acceleration |
5 |
AZ |
g |
Z-Axis Acceleration |
6 |
WX |
deg/s |
X-Axis Angular Rate (MEMS) |
7 |
WY |
deg/s |
Y-Axis Angular Rate (MEMS) |
8 |
WZ |
deg/s |
Z-Axis Angular Rate (MEMS) |
9 |
OG_WX |
deg/s |
High Precision X-Axis Angular Rate (ANELLO Optical Gyro) |
10 |
OG_WY |
deg/s |
High Precision Y-Axis Angular Rate (ANELLO Optical Gyro) |
11 |
OG_WZ |
deg/s |
High Precision Z-Axis Angular Rate (ANELLO Optical Gyro) |
12 |
MAG_X |
Gauss |
X-Axis Magnetic Field Measurement |
13 |
MAG_Y |
Gauss |
Y-Axis Magnetic Field Measurement |
14 |
MAG_Z |
Gauss |
Z-Axis Magnetic Field Measurement |
15 |
TempC |
°C |
Temperature |
16 |
Status_X |
Status bitfield for X-axis SiPhOG (see table below) |
|
17 |
Status_Y |
Status bitfield for Y-axis SiPhOG (see table below) |
|
18 |
Status_Z |
Status bitfield for Z-axis SiPhOG (see table below) |
APIMU Status Bits
Bit |
Meaning |
|---|---|
0 |
Reserved in current Aerial INS output and always |
1 |
Temperature uncontrolled |
2 |
Over-current error |
3 |
SiPhOG supply-voltage error |
4-7 |
Unused and always |
3.2 NMEA 2000 Output Messages
Ensure NM2K_CFG is set to 1 before using the NMEA 2000 driver on the
CAN port. This enables the driver and allows the system to publish and receive
NMEA 2000 messages.
Each published PGN has an associated output data rate parameter (for example,
NM2K_129025_RATE, NM2K_129026_RATE, NM2K_129029_RATE) within the
NMEA2000 parameter group. Rates are specified in Hertz, clamped to the
range 0–100; setting a rate to 0 disables that PGN.
3.2.1 PGN 129025: Position, Rapid Update
High-speed update of vessel latitude/longitude position.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
Latitude |
Position latitude |
deg |
32-bit signed |
2 |
Longitude |
Position longitude |
deg |
32-bit signed |
Note
Current Aerial INS output encodes latitude and longitude as
1e-7 deg/count.
3.2.2 PGN 129026: COG & SOG, Rapid Update
Rapid update of Course Over Ground (COG) and Speed Over Ground (SOG).
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
COG Reference |
True/Magnetic reference |
2-bit lookup |
|
3 |
COG |
Course over ground |
rad |
16-bit unsigned |
4 |
SOG |
Speed over ground |
m/s |
16-bit unsigned |
Note
Current Aerial INS output sets field 2 to 0.
3.2.3 PGN 129029: GNSS Position Data
Complete GNSS navigation solution including position, quality, and DOP.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Date |
Days since 1970-01-01 |
days |
16-bit unsigned |
3 |
Time |
Seconds since midnight |
s |
32-bit unsigned |
4 |
Latitude |
GNSS latitude (WGS-84) |
deg |
64-bit signed |
5 |
Longitude |
GNSS longitude (WGS-84) |
deg |
64-bit signed |
6 |
Altitude |
Altitude referenced to WGS-84 |
m |
64-bit signed |
7 |
GNSS Type |
GPS, GLONASS, Galileo, BeiDou, etc. |
4-bit lookup |
|
8 |
Method |
No fix, RTK, etc. (see table below) |
4-bit lookup |
|
9 |
Integrity |
Integrity flag |
2-bit lookup |
|
10 |
Reserved |
Reserved (transmit as 0) |
6 bits reserved |
|
11 |
Number of SVs |
Number of satellites used in solution |
8-bit unsigned |
|
12 |
HDOP |
Horizontal dilution of precision |
16-bit signed |
|
13 |
PDOP |
Positional dilution of precision |
16-bit signed |
|
14 |
Geoidal Separation |
Geoid–ellipsoid separation |
m |
32-bit signed |
15 |
Reference Stations |
Number of reference stations |
8-bit unsigned |
|
16 |
Reference Station Type |
Type for reference station #1 |
4-bit lookup |
|
17 |
Reference Station ID |
ID for reference station #1 |
12-bit unsigned |
|
18 |
Age of DGNSS Corrections |
Age of corrections for station #1 |
s |
16-bit signed |
Note
Current Aerial INS output sets field 7 to 0, field 9 to 0,
field 15 to 1, and field 16 to 6. Field 17 comes from the GNSS
reference ID. Latitude and longitude are encoded as 1e-16 deg/count.
Altitude is encoded as 1e-6 m/count.
Method Field Values (4-bit lookup):
Value |
Meaning |
|---|---|
0 |
No GNSS (no valid fix) |
1 |
GNSS Fix (standard 2D/3D) |
2 |
DGNSS (differential fix) |
3 |
Precise GNSS |
4 |
RTK Fixed Integer |
5 |
RTK Float |
6 |
Estimated (dead reckoning) |
7 |
Manual Input |
8 |
Simulation Mode |
15 |
Invalid |
Note
Current Aerial INS output uses field 8 for the reported GNSS method.
3.2.4 PGN 127250: Vessel Heading
Provides vessel heading and related status.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Heading |
Vessel heading |
rad |
16-bit unsigned |
3 |
Deviation |
Magnetic deviation |
rad |
16-bit signed |
4 |
Variation |
Magnetic variation |
rad |
16-bit signed |
5 |
Reference |
True/Magnetic |
2-bit lookup |
Note
Current Aerial INS output sets field 5 to 0.
3.2.5 PGN 127251: Rate of Turn
Provides vessel rate of turn information.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Rate of Turn |
Positive = turn to starboard |
rad/s |
32-bit signed |
3.2.6 PGN 127257: Attitude
Provides vessel orientation (roll, pitch, yaw).
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Yaw |
Vessel yaw angle |
rad |
16-bit signed |
3 |
Pitch |
Vessel pitch angle |
rad |
16-bit signed |
4 |
Roll |
Vessel roll angle |
rad |
16-bit signed |
Note
Current Aerial INS output encodes yaw, pitch, and roll as
1e-4 rad/count.
3.2.7 PGN 126992: System Time
Provides system time for network synchronization.
# |
Field |
Description |
Unit |
Type |
|---|---|---|---|---|
1 |
SID |
Sequence Identifier |
8-bit unsigned |
|
2 |
Source |
Time source (GPS, RTC, etc.) |
8-bit lookup |
|
3 |
Date |
Days since 1970-01-01 |
16-bit unsigned |
|
4 |
Time |
Seconds since midnight |
s |
32-bit unsigned |
Note
Current Aerial INS output sets field 2 to 0.