K3-1-2
NovAtel SPAN on OEM6 — Firmware Reference Key Information
- Description: Key-information digest of NovAtel's SPAN on OEM6 Firmware Reference Manual (OM-20000144) — GNSS+INS message formats (ASCII/binary), command responses, the important SPAN commands and INS logs, plus Variable Lever Arm and Relative INS. Reference for configuring/parsing a SPAN GNSS/INS receiver
- My Notion Note ID: K3-1-2
- Created: 2020-06-08
- Updated: 2026-07-18
- License: Free to share: please credit Yu Zhang and link back to yuzhang.io
Table of Contents
- 1. Introduction
- 2. Messages
- 3. Responses
- 4. SPAN Commands
- 5. INS Logs
- 6. Variable Lever Arm
- 7. Relative INS
- References
1. Introduction
- GNSS — Global Navigation Satellite System (absolute accuracy).
- INS — Inertial Navigation System (continuity through GNSS-denied gaps).
- SPAN — NovAtel's technology combining GNSS + INS into one solution, more accurate and reliable than either alone: absolute accuracy from GNSS + continuity from INS through difficult GNSS conditions. ("SPAN" is a NovAtel product name, not spelled out as an acronym in the manual; the manual does not use "tightly-coupled" — that's general domain terminology, describing how SPAN fuses raw GNSS + IMU in one filter.)
- Base OEM6 commands/logs live in the OEM6 Family Firmware Reference Manual (OM-20000129); this manual (OM-20000144) covers only the SPAN-specific additions.
2. Messages
2.1 Message Formats
Three formats, distinguished by a suffix on the log/command name:
- Abbreviated ASCII — no suffix; human-readable, no CRC (viewing only).
- ASCII —
Asuffix. - Binary —
Bsuffix.
(For binary commands, the output format is set by the message-type bits in the binary header, not by a suffix.)
Field types (Table 1): Char/UChar 1 B, Short/UShort 2 B, Long/ULong 4 B, Float 4 B (IEEE-754), Double 8 B (IEEE-754), Enum 4 B, String (null-terminated, 4-byte aligned in binary). GPSec is dual-form: ASCII = seconds as float; Binary = milliseconds as long.
2.2 ASCII Structure
- Full/long ASCII record leads with
#; the short ASCII header leads with%; abbreviated-ASCII output leads with<, and abbreviated-ASCII input commands have no leading sync char. - Header fields comma-delimited; the last header field ends with
;(begins the data); data fields comma-delimited; end of data marked by*. - Terminator:
*+ 8 hex digits (32-bit CRC) +CRLF, e.g.*1234ABCD[CR][LF]. The CRC covers all bytes except the leading#and the*before the checksum. - Full ASCII header fields: Sync
#, Message, Port, Sequence#, %IdleTime, TimeStatus, Week, Seconds (GPSec), ReceiverStatus, Reserved, S/W Version,;.
2.3 Binary Structure
- Layout: Header + Data (variable) + CRC (4-byte 32-bit CRC over header+data).
- Sync bytes:
0xAA 0x44 0x12(long header). The short binary header uses0xAA 0x44 0x13. - Header length is variable → always read the HeaderLength field. Header (Table 4): 3 sync bytes, HeaderLength, MessageID (UShort), MessageType (Char: bits 5–6 = format, bit 7 = response flag), PortAddress, MessageLength (body only), Sequence, IdleTime, TimeStatus, Week, ms (GPSec/ULong), ReceiverStatus, Reserved, S/W Version.
3. Responses
- By default every input message gets a response (can be disabled with
INTERFACEMODE). The response mirrors the input format (binary in → binary out, etc.). - Abbreviated:
<+ response string, e.g.<OK. - ASCII: full header with the message name suffixed
R; body is a response string, e.g.#BESTPOSR,COM1,…;"OK"*<crc>. - Binary: standard header with the Response bit (bit 7 of MessageType) set; adds Response ID (Enum) + response text in hex (e.g.
0x4F4B= "OK").
4. SPAN Commands
Most important SPAN-specific commands (base OEM6 commands are in OM-20000129):
- ALIGNMENTMODE — alignment method: UNAIDED / AIDED_STATIC / AIDED_TRANSFER / AUTOMATIC (default).
- SETIMUORIENTATION — declare which IMU axis is aligned with gravity (non-default mounting); resets the INS filter; required before kinematic alignment.
- SETIMUTOANTOFFSET — IMU-to-primary-antenna lever arm + uncertainties; set before/during alignment. (
SETIMUTOANTOFFSET2for the secondary antenna.) - SETINITAZIMUTH — seed a known azimuth to speed/aid coarse alignment (roll/pitch still from averaged IMU); resets the filter.
- SETINSOFFSET — offset from the IMU for the reported output position/velocity point.
- VEHICLEBODYROTATION — angular offset between the vehicle frame (direction of travel) and the SPAN body frame; only applied to output when APPLYVEHICLEBODYROTATION is enabled.
- LEVERARMCALIBRATE — in-motion calibration of the IMU-to-antenna lever arm (runs to a max time or a target std-dev); result in the
BESTLEVERARMlog. - INSCOMMAND — enable / disable / reset INS positioning (disabling stops all INS position/velocity/attitude output).
- INSZUPT — manual Zero-Velocity Update request (advanced; SPAN normally does ZUPTs automatically; unsafe while moving).
- RELINSCONFIG — recommended way to configure Relative INS; sent at both master and rover (role ROVER/MASTER, port, baud, rate).
- RELINSAUTOMATION — simpler plug-and-play Relative INS enable, configured at the rover only.
The command
SETINSTRANSLATIONdoes not exist in this manual — the real commands areSETINSOFFSET(output point offset) andSETIMUTOANTOFFSET(antenna lever arm).
5. INS Logs
Core solution + supporting logs (most run up to 100/125/200 Hz depending on IMU; INSCOV/INSUPDATE are 1 Hz):
- INSPVA — most recent position + velocity + attitude (the core INS solution). INSPVAX adds standard deviations; INSPVAS is the short-header variant.
- INSATT — attitude (roll/pitch/azimuth); INSATTX adds std devs.
- INSPOS / INSVEL — position-only / N-E-Up velocity;
…Xvariants add std devs. - INSCOV — position/attitude/velocity covariance (local-level frame), 1 Hz.
- INSUPDATE — most recent INS measurement-update info, 1 Hz. (The log is
INSUPDATE, not "INSUPDATESTATUS".) - RAWIMU / RAWIMUX / RAWIMUSX — raw accel/gyro (sequential Δv/Δθ) + IMU status; only meaningful at the full IMU rate (not with an ONTIME trigger). CORRIMUDATA — RAWIMU corrected for gravity / earth-rotation / sensor errors.
- BESTGNSSPOS — best GNSS-only position (no INS), at the antenna phase center. Key fields: Sol Status (SOL_COMPUTED, INSUFFICIENT_OBS, …); Pos Type; Lat / Lon (deg) and Hgt (m, MSL) as Doubles; Lat σ / Lon σ / Hgt σ (m) as Floats; Diff_age (s) — a value of 0 means no differential correction was used; #SVs = number of satellites tracked. (
BESTGNSSVEL= GNSS-only velocity;BESTPOS= best combined GNSS+INS position.) - BESTLEVERARM / BESTLEVERARM2 — computed IMU-to-primary/secondary-antenna lever arm.
- RELINSPVA — Relative INS PVA (see §7).
6. Variable Lever Arm
- For an IMU on a gimballed mount (not rigidly fixed) — the antenna lever arm changes as the IMU rotates.
- Gimbal rotation angles must be fed back to SPAN via the
INPUTGIMBALANGLEcommand (mount-body frame) at 1–50 Hz; if none is received for > 1 s, SPAN reverts to the static lever arm. VARIABLELEVERARMlog — the computed variable lever arm (SPAN computation frame).GIMBALLEDPVAlog — INSPVA-format PVA referenced to the camera/mount frame (vs INSPVA which tracks true IMU orientation).- Frame-relation commands: SETIMUORIENTATION, SETGIMBALORIENTATION, GIMBALSPANROTATION, VEHICLEBODYROTATION.
7. Relative INS
- Computes the relative position/velocity/attitude vector between two SPAN systems — a Master and a Rover. Master transmits corrections; Rover computes the relative solution and fills
RELINSPVA(ONNEW, 1–20 Hz) andSYNCRELINSPVA(ONTIME, up to 200 Hz, rover only); RELINSPVA is echoed back to the Master. - Method: positions/velocities differenced in ECEF then rotated to local-level; eccentric output offsets can be set via
SETINSOFFSET. - Setup: (1) establish a data link (e.g. radios); (2) enable via RELINSCONFIG (both units — recommended) or RELINSAUTOMATION (rover-only, simpler). Set
RTKTIMEOUT 5(base OEM6 command; default 60 s) for Relative INS. A model option must be enabled on both units. - Data-link bandwidth needed ≈ bits per second.
References
- NovAtel. SPAN on OEM6 Firmware Reference Manual (OM-20000144, Rev 8). — source manual; §2 (messages), §4 (SPAN commands), §5 (SPAN logs), Ch. 6 (Variable Lever Arm), Ch. 7 (Relative INS).
- NovAtel. OEM6 Family Firmware Reference Manual (OM-20000129). — base (non-SPAN) commands and logs.