0% found this document useful (0 votes)
191 views154 pages

Swift Navigation Binary Protocol Specification v2.6.3

The document describes the Swift Navigation Binary Protocol (SBP) which is used for communicating with Swift devices like the Piksi GPS receiver. It specifies the message framing structure and payload definitions for SBP messages. The framing structure includes a header, payload, and CRC. The payload decodes into primitive data types like integers, floats, arrays and strings based on the message type. The document also provides an overview of NMEA-0183 support and basic SBP data formats.

Uploaded by

hisitepu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
191 views154 pages

Swift Navigation Binary Protocol Specification v2.6.3

The document describes the Swift Navigation Binary Protocol (SBP) which is used for communicating with Swift devices like the Piksi GPS receiver. It specifies the message framing structure and payload definitions for SBP messages. The framing structure includes a header, payload, and CRC. The payload decodes into primitive data types like integers, floats, arrays and strings based on the message type. The document also provides an overview of NMEA-0183 support and basic SBP data formats.

Uploaded by

hisitepu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 154

Swift Navigation Binary Protocol

Protocol Specification 2.6.3

Contents
1 Overview 1
2 Message Framing Structure 2
3 NMEA-0183 2
4 Basic Formats and Payload Structure 3
5 Message Types 4
6 Stable Message Definitions 7
6.1 Ext Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.2 Imu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.3 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.4 Mag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.5 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.6 Observation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.7 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.8 System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7 Draft Message Definitions 91
7.1 Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7.2 File IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.4 Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.5 Piksi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.6 Sbas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.7 Ssr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.8 Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
7.9 User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.10 Vehicle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

1 Overview
The Swift Navigation Binary Protocol (SBP) is a fast, simple, and minimal binary protocol for commu-
nicating with Swift devices. It is the native binary protocol used by the Piksi GPS receiver to transmit
solutions, observations, status, and debugging messages, as well as receive messages from the host op-
erating system, such as differential corrections and the almanac. As such, it is an important interface
with your Piksi receiver and the primary integration method with other systems.
This document provides a specification of SBP framing and the payload structures of the messages
currently used with Swift devices. SBP client libraries in a variety of programming languages are available
at https://github.com/swift-nav/libsbp and support information for sbp is available at https:
//support.swiftnav.com/customer/en/portal/articles/2492810-swift-binary-protocol.

Version 2.6.3, June 10, 2019 1


Swift Navigation Swift Navigation Binary Protocol

2 Message Framing Structure


SBP consists of two pieces:
 an over-the-wire message framing format
 structured payload definitions
As of Version 2.6.3, the frame consists of a 6-byte binary header section, a variable-sized payload field,
and a 16-bit CRC value. All multibyte values are ordered in little-endian format. SBP uses the CCITT
CRC16 (XMODEM implementation) for error detection1 .

Offset Size (bytes) Name Description


(bytes)
0 1 Preamble Denotes the start of frame transmission. Always 0x55.
1 2 Message Identifies the payload contents.
Type
3 2 Sender A unique identifier of the sender. On the Piksi, this is set to the 2
least significant bytes of the device serial number. A stream of SBP
messages may also include sender IDs for forwarded messages. By
default, clients of ‘libsbp‘ use a sender id value of ‘0x42‘. Sender
id ’0x42’ is used to represent device controllers such as the Piksi
Console.
5 1 Length Length (bytes) of the Payload field.
6 N Payload Binary message contents.
N +6 2 CRC Cyclic Redundancy Check of the frame’s binary data from the Message
Type up to the end of Payload (does not include the Preamble).
N +8 Total Frame Length

Table 2.0.1: Swift Binary Protocol message structure. N denotes a variable-length size.

3 NMEA-0183
Swift devices, such as the Piksi, also have limited support for the standard NMEA-0183 protocol.
Note that NMEA-0183 doesn’t define standardized message string equivalents for many important
SBP messages such as observations, baselines and ephemerides. For this reason it is strongly recom-
mended to use SBP for new development. NMEA-0183 output is provided primarily to support legacy
devices.

1 CCITT
16-bit CRC Implementation uses parameters used by XMODEM, i.e. the polynomial: x 16 +x 12 +x 5 +1. For more details, please see the
implementation at https://github.com/swift-nav/libsbp/blob/master/c/src/edc.c#L59. See also A Painless Guide to CRC Error Detection
Algorithms at http://www.ross.net/crc/download/crc˙v3.txt

Version 2.6.3, June 10, 2019 2


Swift Navigation Swift Navigation Binary Protocol

4 Basic Formats and Payload Structure


The binary payload of an SBP message decodes into structured data based on the message type defined
in the header. SBP uses several primitive numerical and collection types for defining payload contents.

Name Size (bytes) Description


s8 1 Signed 8-bit integer
s16 2 Signed 16-bit integer
s32 4 Signed 32-bit integer
s64 8 Signed 64-bit integer
u8 1 Unsigned 8-bit integer
u16 2 Unsigned 16-bit integer
u32 4 Unsigned 32-bit integer
u64 8 Unsigned 64-bit integer
float 4 Single-precision float (IEEE-754)
double 8 Double-precision float (IEEE-754)
array — Fixed or variable length array of any fill type
string — Fixed or variable length string (NULL padded/terminated)
bitfield — A primitive type, typically a u8, can encode boolean and enumerated status flags.

Table 4.0.1: SBP primitive types

Example Message

As an example, consider this framed series of bytes read from a serial port:
55 02 02 cc 04 14 70 3d d0 18 cf ef ff ff ef e8 ff ff f0 18 00 00 00 00 05 00 43 94
This byte array decodes into a MSG BASELINE ECEF (see pg. 16), which reports the baseline position
solution of the rover receiver relative to the base station receiver in Earth Centered Earth Fixed (ECEF)
coordinates. The segments of this byte array and its contents break down as follows:

Field Name Type Value Bytestring Segment


Preamble u8 0x55 55
Message Type u16 MSG BASELINE ECEF 02 02
Sender u16 1228 cc 04
Length u8 20 14
Payload — 70 3d d0 18 cf ef ff ff ef e8 ff ff
f0 18 00 00 00 00 05 00
MSG BASELINE ECEF
.tow u32 416300400 msec 70 3d d0 18
.x s32 −4145 mm cf ef ff ff
.y s32 −5905 mm ef e8 ff ff
.z s32 6384 mm f0 18 00 00
.accuracy u16 0 00 00
.nsats u8 5 05
.flags u8 0 00
CRC u16 0x9443 43 94

Table 4.0.2: SBP breakdown for MSG BASELINE ECEF

Version 2.6.3, June 10, 2019 3


Swift Navigation Swift Navigation Binary Protocol

5 Message Types
Packages define a logical collection of SBP messages. The contents and layout of messages in packages
marked stable are unlikely to change in the future. Draft messages will change with future development
and are detailed purely for informational purposes only. Many draft messages are implementation-defined,
and some collections, such as the acquisition package, are used for internal development.

Package Msg ID Name Size (bytes) Description


Stable
Ext Events 0x0101 MSG EXT EVENT 12 Reports timestamped external pin event
Imu 0x0900 MSG IMU RAW 17 Raw IMU data
0x0901 MSG IMU AUX 4 Auxiliary IMU data
Logging 0x0401 MSG LOG N +1 Plaintext logging messages with levels
0x0402 MSG FWD N +2 Wrapper for FWD a separate stream of infor-
mation over SBP
Mag 0x0902 MSG MAG RAW 11 Raw magnetometer data
Navigation 0x0102 MSG GPS TIME 11 GPS Time
0x0103 MSG UTC TIME 16 UTC Time
0x0208 MSG DOPS 15 Dilution of Precision
0x0209 MSG POS ECEF 32 Single-point position in ECEF
0x0214 MSG POS ECEF COV 54 Single-point position in ECEF
0x020A MSG POS LLH 34 Geodetic Position
0x0211 MSG POS LLH COV 54 Geodetic Position
0x020B MSG BASELINE ECEF 20 Baseline Position in ECEF
0x020C MSG BASELINE NED 22 Baseline in NED
0x020D MSG VEL ECEF 20 Velocity in ECEF
0x0215 MSG VEL ECEF COV 42 Velocity in ECEF
0x020E MSG VEL NED 22 Velocity in NED
0x0212 MSG VEL NED COV 42 Velocity in NED
0x0213 MSG VEL BODY 42 Velocity in User Frame
0x0210 MSG AGE CORRECTIONS 6 Age of corrections
Observation 0x004A MSG OBS 17N + 11 GPS satellite observations
0x0044 MSG BASE POS LLH 24 Base station position
0x0048 MSG BASE POS ECEF 24 Base station position in ECEF
0x0081 MSG EPHEMERIS GPS DEP E 185 Satellite broadcast ephemeris for GPS
0x0086 MSG EPHEMERIS GPS DEP F 183 Deprecated
0x008A MSG EPHEMERIS GPS 139 Satellite broadcast ephemeris for GPS
0x008E MSG EPHEMERIS QZSS 139 Satellite broadcast ephemeris for QZSS
0x0089 MSG EPHEMERIS BDS 147 Satellite broadcast ephemeris for BDS
0x0095 MSG EPHEMERIS GAL DEP A 152 Deprecated
0x008D MSG EPHEMERIS GAL 153 Satellite broadcast ephemeris for Galileo
0x0082 MSG EPHEMERIS SBAS DEP A 112 Satellite broadcast ephemeris for SBAS
0x0083 MSG EPHEMERIS GLO DEP A 112 Satellite broadcast ephemeris for GLO
0x0084 MSG EPHEMERIS SBAS DEP B 110 Deprecated
0x008C MSG EPHEMERIS SBAS 74 Satellite broadcast ephemeris for SBAS
0x0085 MSG EPHEMERIS GLO DEP B 110 Satellite broadcast ephemeris for GLO
0x0087 MSG EPHEMERIS GLO DEP C 119 Satellite broadcast ephemeris for GLO
0x0088 MSG EPHEMERIS GLO DEP D 120 Deprecated
0x008B MSG EPHEMERIS GLO 92 Satellite broadcast ephemeris for GLO
0x0090 MSG IONO 70 Iono corrections
0x0091 MSG SV CONFIGURATION GPS DEP 10 L2C capability mask

Version 2.6.3, June 10, 2019 4


Swift Navigation Swift Navigation Binary Protocol

0x0096 MSG GNSS CAPB 110 GNSS capabilities


0x0092 MSG GROUP DELAY DEP A 14 Group Delay
0x0093 MSG GROUP DELAY DEP B 17 Group Delay
0x0094 MSG GROUP DELAY 15 Group Delay
0x0072 MSG ALMANAC GPS 94 Satellite broadcast ephemeris for GPS
0x0073 MSG ALMANAC GLO 78 Satellite broadcast ephemeris for GLO
0x0075 MSG GLO BIASES 9 GLONASS L1/L2 Code-Phase biases
0x0097 MSG SV AZ EL 4N Satellite azimuths and elevations
0x0640 MSG OSR 19N + 11 OSR corrections
Settings 0x00A1 MSG SETTINGS SAVE 0 Save settings to flash
0x00A0 MSG SETTINGS WRITE N Write device configuration settings
0x00AF MSG SETTINGS WRITE RESP N +1 Acknowledgement with status of
MSG SETTINGS WRITE
0x00A4 MSG SETTINGS READ REQ N Read device configuration settings
0x00A5 MSG SETTINGS READ RESP N Read device configuration settings
0x00A2 MSG SETTINGS READ BY INDEX REQ 2 Read setting by direct index
0x00A7 MSG SETTINGS READ BY INDEX RESP N +2 Read setting by direct index
0x00A6 MSG SETTINGS READ BY INDEX DONE 0 Finished reading settings
System 0xFF00 MSG STARTUP 4 System start-up message
0xFF02 MSG DGNSS STATUS N +4 Status of received corrections
0xFFFF MSG HEARTBEAT 4 System heartbeat message
0xFF03 MSG INS STATUS 4 Inertial Navigation System status message
Draft
Acquisition 0x002F MSG ACQ RESULT 14 Satellite acquisition result
0x002E MSG ACQ SV PROFILE 33N Acquisition perfomance measurement and de-
bug
File IO 0x00A8 MSG FILEIO READ REQ N +9 Read file from the file system
0x00A3 MSG FILEIO READ RESP N +4 File read from the file system
0x00A9 MSG FILEIO READ DIR REQ N +8 List files in a directory
0x00AA MSG FILEIO READ DIR RESP N +4 Files listed in a directory
0x00AC MSG FILEIO REMOVE N Delete a file from the file system
0x00AD MSG FILEIO WRITE REQ N +9 Write to file
0x00AB MSG FILEIO WRITE RESP 4 File written to
0x1001 MSG FILEIO CONFIG REQ 4 Request advice on the optimal configuration for
FileIO.
0x1002 MSG FILEIO CONFIG RESP 16 Response with advice on the optimal configura-
tion for FileIO.
Linux 0x7F00 MSG LINUX CPU STATE N + 19 List CPU state on the system
0x7F01 MSG LINUX MEM STATE N + 19 List CPU state on the system
0x7F02 MSG LINUX SYS STATE 10 CPU, Memory and Process Starts/Stops
0x7F03 MSG LINUX PROCESS SOCKET COUNTS N +9 A list of processes with high socket counts
0x7F04 MSG LINUX PROCESS SOCKET QUEUES N + 75 A list of processes with deep socket queues
0x7F05 MSG LINUX SOCKET USAGE 72 Summary of socket usage across the system
0x7F06 MSG LINUX PROCESS FD COUNT N +5 Summary of processes with large amounts of
open file descriptors
0x7F07 MSG LINUX PROCESS FD SUMMARY N +4 Summary of open file descriptors on the system
Orientation 0x020F MSG BASELINE HEADING 10 Heading relative to True North
0x0220 MSG ORIENT QUAT 37 Quaternion 4 component vector
0x0221 MSG ORIENT EULER 29 Euler angles
0x0222 MSG ANGULAR RATE 17 Vehicle Body Frame instantaneous angular
rates
Piksi 0x0069 MSG ALMANAC 0 Legacy message to load satellite almanac
0x0068 MSG SET TIME 0 Send GPS time from host

Version 2.6.3, June 10, 2019 5


Swift Navigation Swift Navigation Binary Protocol

0x00B6 MSG RESET 4 Reset the device


0x00B2 MSG RESET DEP 0 Reset the device
0x00C0 MSG CW RESULTS 0 Legacy message for CW interference channel
(Piksi =¿ host)
0x00C1 MSG CW START 0 Legacy message for CW interference channel
0x0022 MSG RESET FILTERS 1 Reset IAR filters
0x0023 MSG INIT BASE DEP 0 Deprecated
0x0017 MSG THREAD STATE 26 State of an RTOS thread
0x001D MSG UART STATE 74 State of the UART channels
0x0018 MSG UART STATE DEPA 58 Deprecated
0x0019 MSG IAR STATE 4 State of the Integer Ambiguity Resolution
(IAR) process
0x002B MSG MASK SATELLITE 3 Mask a satellite from use in Piksi subsystems
0x00B5 MSG DEVICE MONITOR 10 Device temperature and voltage levels
0x00B8 MSG COMMAND REQ N +4 Execute a command
0x00B9 MSG COMMAND RESP 8 Exit code from executed command (device =¿
host)
0x00BC MSG COMMAND OUTPUT N +4 Command output
0x00BA MSG NETWORK STATE REQ 0 Request state of Piksi network interfaces
0x00BB MSG NETWORK STATE RESP 50 State of network interface
0x00BD MSG NETWORK BANDWIDTH USAGE 40N Bandwidth usage reporting message
0x00BE MSG CELL MODEM STATUS N +5 Cell modem information update message
0x0051 MSG SPECAN N + 28 Spectrum analyzer
0x00BF MSG FRONT END GAIN 16 RF AGC status
Sbas 0x7777 MSG SBAS RAW 34 Raw SBAS data
Ssr 0x05DD MSG SSR ORBIT CLOCK 50 Precise orbit and clock correction
0x05DC MSG SSR ORBIT CLOCK DEP A 47 Precise orbit and clock correction
0x05E1 MSG SSR CODE BIASES 3N + 10 Precise code biases correction
0x05E6 MSG SSR PHASE BIASES 8N + 15 Precise phase biases correction
0x05EB MSG SSR STEC CORRECTION 11N + 15 Slant Total Electron Content
0x05F0 MSG SSR GRIDDED CORRECTION 4N + 23 Gridded troposphere and STEC residuals
0x05F5 MSG SSR GRID DEFINITION N +9
Tracking 0x0041 MSG TRACKING STATE 4N Signal tracking channel states
0x0061 MSG MEASUREMENT STATE 3N Measurement Engine signal tracking channel
states
0x002D MSG TRACKING IQ 4N + 3 Tracking channel correlations
0x002C MSG TRACKING IQ DEP B 8N + 3 Tracking channel correlations
User 0x0800 MSG USER DATA N User data
Vehicle 0x0903 MSG ODOMETRY 9 Vehicle forward (x-axis) velocity

Table 5.0.2: SBP message types

Version 2.6.3, June 10, 2019 6


Swift Navigation Swift Navigation Binary Protocol

6 Stable Message Definitions


6.1 Ext Events
Messages reporting accurately-timestamped external events, e.g. camera shutter time.

MSG EXT EVENT — 0x0101 — 257

Reports detection of an external event, the GPS time it occurred, which pin it was and whether it was
rising or falling.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 weeks wn GPS week number
2 4 u32 ms tow GPS time of week rounded to the nearest
millisecond
6 4 s32 ns ns residual Nanosecond residual of millisecond-rounded
TOW (ranges from -500000 to 500000)
10 1 u8 flags Flags
11 1 u8 pin Pin number. 0..9 = DEBUG0..9.
12 Total Payload Length

Table 6.1.1: MSG EXT EVENT 0x0101 message structure

Value Description
0 Low (falling edge)
2)
1.
le )

1 High (rising edge)


6.
ab 1.3
(T 6.
in ble
f pTa

Table 6.1.2: New level of pin values (flags[0])


lo (
ve ty
le ali
u
ed

ew q
v

N e
er

im
es

Value Description
R

7 2 1 0
0 Unknown - don’t have nav solution
Field 6.1.1: Flags (flags) 1 Good (¡ 1 microsecond)

Table 6.1.3: Time quality values (flags[1])

Version 2.6.3, June 10, 2019 7


Swift Navigation Swift Navigation Binary Protocol

6.2 Imu
Inertial Measurement Unit (IMU) messages.

MSG IMU RAW — 0x0900 — 2304

Raw data from the Inertial Measurement Unit, containing accelerometer and gyroscope readings. The
sense of the measurements are to be aligned with the indications on the device itself. Measurement
units, which are specific to the device hardware and settings, are communicated via the MSG IMU AUX
message.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow Milliseconds since start of GPS week. If the
high bit is set, the time is unknown or in-
valid.
4 1 u8 ms / 256 tow f Milliseconds since start of GPS week, frac-
tional part
5 2 s16 acc x Acceleration in the IMU frame X axis
7 2 s16 acc y Acceleration in the IMU frame Y axis
9 2 s16 acc z Acceleration in the IMU frame Z axis
11 2 s16 gyr x Angular rate around IMU frame X axis
13 2 s16 gyr y Angular rate around IMU frame Y axis
15 2 s16 gyr z Angular rate around IMU frame Z axis
17 Total Payload Length

Table 6.2.1: MSG IMU RAW 0x0900 message structure

Version 2.6.3, June 10, 2019 8


Swift Navigation Swift Navigation Binary Protocol

MSG IMU AUX — 0x0901 — 2305

Auxiliary data specific to a particular IMU. The ‘imu type‘ field will always be consistent but the rest of
the payload is device specific and depends on the value of ‘imu type‘.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 imu type IMU type
1 2 s16 temp Raw IMU temperature
3 1 u8 imu conf IMU configuration
4 Total Payload Length

Table 6.2.2: MSG IMU AUX 0x0901 message structure


)3
2.
6.
le
ab
(T
pe
Ty

Value Description
U
IM

7 0 0 Bosch BMI160

Field 6.2.1: IMU type (imu type) Table 6.2.3: IMU Type values (imu type[0:7])

Value Description
0 +/- 2g
1 +/- 4g
2 +/- 8g
4)
2.

3 +/- 16g
)

6.
.5

le
2
6.

ab
(T
le
ab

Table 6.2.4: Accelerometer Range values (imu conf[0:3])


ge
(T

an
ge

R
an

er
R

et
om
pe
co

er

Value Description
os

el
cc
yr
G

0 +/- 2000 deg / s


7 4 3 0
1 +/- 1000 deg / s
Field 6.2.2: IMU configuration (imu conf) 2 +/- 500 deg / s
3 +/- 250 deg / s
4 +/- 125 deg / s

Table 6.2.5: Gyroscope Range values (imu conf[4:7])

Version 2.6.3, June 10, 2019 9


Swift Navigation Swift Navigation Binary Protocol

6.3 Logging
Logging and debugging messages from the device.

MSG LOG — 0x0401 — 1025

This message contains a human-readable payload string from the device containing errors, warnings and
informational messages at ERROR, WARNING, DEBUG, INFO logging levels.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 level Logging level
1 N string text Human-readable string
N +1 Total Payload Length

Table 6.3.1: MSG LOG 0x0401 message structure

Value Description
0 EMERG
1 ALERT
2)
3.
6.

2 CRIT
le
b

3 ERROR
Ta
l(

4 WARN
ve
le
d

5 NOTICE
ng
ve

gi
er

6 INFO
es

Lo
R

7 3 2 0 7 DEBUG

Field 6.3.1: Logging level (level) Table 6.3.2: Logging level values (level[0:2])

Version 2.6.3, June 10, 2019 10


Swift Navigation Swift Navigation Binary Protocol

MSG FWD — 0x0402 — 1026

This message provides the ability to forward messages over SBP. This may take the form of wrapping
up SBP messages received by Piksi for logging purposes or wrapping another protocol with SBP.
The source identifier indicates from what interface a forwarded stream derived. The protocol identifier
identifies what the expected protocol the forwarded msg contains. Protocol 0 represents SBP and the
remaining values are implementation defined.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 source source identifier
1 1 u8 protocol protocol identifier
2 N string fwd payload variable length wrapped binary message
N +2 Total Payload Length

Table 6.3.3: MSG FWD 0x0402 message structure

Version 2.6.3, June 10, 2019 11


Swift Navigation Swift Navigation Binary Protocol

6.4 Mag
Magnetometer (mag) messages.

MSG MAG RAW — 0x0902 — 2306

Raw data from the magnetometer.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow Milliseconds since start of GPS week. If the
high bit is set, the time is unknown or in-
valid.
4 1 u8 ms / 256 tow f Milliseconds since start of GPS week, frac-
tional part
5 2 s16 microteslas mag x Magnetic field in the body frame X axis
7 2 s16 microteslas mag y Magnetic field in the body frame Y axis
9 2 s16 microteslas mag z Magnetic field in the body frame Z axis
11 Total Payload Length

Table 6.4.1: MSG MAG RAW 0x0902 message structure

Version 2.6.3, June 10, 2019 12


Swift Navigation Swift Navigation Binary Protocol

6.5 Navigation
Geodetic navigation messages reporting GPS time, position, velocity, and baseline position solutions. For
position solutions, these messages define several different position solutions: single-point (SPP), RTK,
and pseudo-absolute position solutions.
The SPP is the standalone, absolute GPS position solution using only a single receiver. The RTK
solution is the differential GPS solution, which can use either a fixed/integer or floating carrier phase
ambiguity. The pseudo-absolute position solution uses a user-provided, well-surveyed base station position
(if available) and the RTK solution in tandem.
When the inertial navigation mode indicates that the IMU is used, all messages are reported in the
vehicle body frame as defined by device settings. By default, the vehicle body frame is configured to
be coincident with the antenna phase center. When there is no inertial navigation, the solution will be
reported at the phase center of the antenna. There is no inertial navigation capability on Piksi Multi or
Duro.

MSG GPS TIME — 0x0102 — 258

This message reports the GPS time, representing the time since the GPS epoch began on midnight
January 6, 1980 UTC. GPS time counts the weeks and seconds of the week. The weeks begin at the
Saturday/Sunday transition. GPS week 0 began at the beginning of the GPS time scale.
Within each week number, the GPS time of the week is between between 0 and 604800 seconds
(=60*60*24*7). Note that GPS time does not accumulate leap seconds, and as of now, has a small offset
from UTC. In a message stream, this message precedes a set of other navigation messages referenced
to the same time (but lacking the ns field) and indicates a more precise time of these messages.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 weeks wn GPS week number
2 4 u32 ms tow GPS time of week rounded to the nearest
millisecond
6 4 s32 ns ns residual Nanosecond residual of millisecond-rounded
TOW (ranges from -500000 to 500000)
10 1 u8 flags Status flags (reserved)
11 Total Payload Length

Table 6.5.1: MSG GPS TIME 0x0102 message structure


2 )
5.
6.
le
ab
(T

Value Description
ce
ur
ed

0 None (invalid)
so
v

e
er

im

1 GNSS Solution
es

T
R

7 3 2 0 2 Propagated

Field 6.5.1: Status flags (reserved) (flags) Table 6.5.2: Time source values (flags[0:2])

Version 2.6.3, June 10, 2019 13


Swift Navigation Swift Navigation Binary Protocol

MSG UTC TIME — 0x0103 — 259

This message reports the Universal Coordinated Time (UTC). Note the flags which indicate the source
of the UTC offset value and source of the time fix.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 flags Indicates source and time validity
1 4 u32 ms tow GPS time of week rounded to the nearest
millisecond
5 2 u16 year year Year
7 1 u8 months month Month (range 1 .. 12)
8 1 u8 day day days in the month (range 1-31)
9 1 u8 hours hours hours of day (range 0-23)
10 1 u8 minutes minutes minutes of hour (range 0-59)
11 1 u8 seconds seconds seconds of minute (range 0-60) rounded
down
12 4 u32 nanoseconds ns nanoseconds of second (range 0-999999999)
16 Total Payload Length

Table 6.5.3: MSG UTC TIME 0x0103 message structure

Value Description
0 None (invalid)
1 GNSS Solution
)
5. 5.5
.
le le 6

2 Propagated
4)
b
(T (Ta

6.
ce ce
ab

Table 6.5.4: Time source values (flags[0:2])


r
so sou
im set

ur
d
off
ve

e
er

C
T
es

Value Description
T
U
R

7 5 43 2 0
0 Factory Default
1 Non Volatile Memory
Field 6.5.2: Indicates source and time validity (flags)
2 Decoded this Session

Table 6.5.5: UTC offset source values (flags[3:4])

Version 2.6.3, June 10, 2019 14


Swift Navigation Swift Navigation Binary Protocol

MSG DOPS — 0x0208 — 520

This dilution of precision (DOP) message describes the effect of navigation satellite geometry on po-
sitional measurement precision. The flags field indicated whether the DOP reported corresponds to
differential or SPP solution.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 2 u16 0.01 gdop Geometric Dilution of Precision
6 2 u16 0.01 pdop Position Dilution of Precision
8 2 u16 0.01 tdop Time Dilution of Precision
10 2 u16 0.01 hdop Horizontal Dilution of Precision
12 2 u16 0.01 vdop Vertical Dilution of Precision
14 1 u8 flags Indicates the position solution with which the
DOPS message corresponds
15 Total Payload Length

Table 6.5.6: MSG DOPS 0x0208 message structure

Value Description
7)

0 Invalid
5.
6.

1 Single Point Position (SPP)


ag

le
ab
ve r fl

2 Differential GNSS (DGNSS)


(T
i
pa

e
re

3 Float RTK
od
IM

m
er

4 Fixed RTK
es
A

x
Fi
R

7 6 3 2 0 5 Undefined
6 SBAS Position
Field 6.5.3: Indicates the position solution with which the
DOPS message corresponds (flags) Table 6.5.7: Fix mode values (flags[0:2])

Version 2.6.3, June 10, 2019 15


Swift Navigation Swift Navigation Binary Protocol

MSG POS ECEF — 0x0209 — 521

The position solution message reports absolute Earth Centered Earth Fixed (ECEF) coordinates and the
status (single point vs pseudo-absolute RTK) of the position solution. If the rover receiver knows the
surveyed position of the base station and has an RTK solution, this reports a pseudo-absolute position
solution using the base station position and the rover’s RTK baseline vector. The full GPS time is given
by the preceding MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 8 double m x ECEF X coordinate
12 8 double m y ECEF Y coordinate
20 8 double m z ECEF Z coordinate
28 2 u16 mm accuracy Position estimated standard deviation
30 1 u8 n sats Number of satellites used in solution
31 1 u8 flags Status flags
32 Total Payload Length

Table 6.5.8: MSG POS ECEF 0x0209 message structure

Value Description
0 Invalid
1 Single Point Position (SPP)
)
10

2 Differential GNSS (DGNSS)


5.
6.

3 Float RTK
le
9) ab

4 Fixed RTK
T
6. e (

5 Dead Reckoning
d
ab Mo

5.

6 SBAS Position
(T on
le
ti
od iga
av

Table 6.5.9: Fix mode values (flags[0:2])


Fi l N

e
ed
tia
v

m
er
er
es

x
In
R

7 5 43 2 0
Value Description
Field 6.5.4: Status flags (flags) 0 None
1 INS used

Table 6.5.10: Inertial Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 16


Swift Navigation Swift Navigation Binary Protocol

MSG POS ECEF COV — 0x0214 — 532

The position solution message reports absolute Earth Centered Earth Fixed (ECEF) coordinates and the
status (single point vs pseudo-absolute RTK) of the position solution. The message also reports the
upper triangular portion of the 3x3 covariance matrix. If the receiver knows the surveyed position of
the base station and has an RTK solution, this reports a pseudo-absolute position solution using the
base station position and the rover’s RTK baseline vector. The full GPS time is given by the preceding
MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 8 double m x ECEF X coordinate
12 8 double m y ECEF Y coordinate
20 8 double m z ECEF Z coordinate
28 4 float mˆ2 cov x x Estimated variance of x
32 4 float mˆ2 cov x y Estimated covariance of x and y
36 4 float mˆ2 cov x z Estimated covariance of x and z
40 4 float mˆ2 cov y y Estimated variance of y
44 4 float mˆ2 cov y z Estimated covariance of y and z
48 4 float mˆ2 cov z z Estimated variance of z
52 1 u8 n sats Number of satellites used in solution
53 1 u8 flags Status flags
54 Total Payload Length

Table 6.5.11: MSG POS ECEF COV 0x0214 message structure

Value Description
0 Invalid
1 Single Point Position (SPP)
)
3

2 Differential GNSS (DGNSS)


5.1
6.

3 Float RTK
le
12 ab

4 Fixed RTK
T
6. e (

5 Dead Reckoning
d
ab Mo

5.

6 SBAS Position
(T on
le
ti
od iga
av

Table 6.5.12: Fix mode values (flags[0:2])


Fi l N

e
In ed
tia
v

m
er
er
es

x
R

7 5 43 2 0
Value Description
Field 6.5.5: Status flags (flags) 0 None
1 INS used

Table 6.5.13: Inertial Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 17


Swift Navigation Swift Navigation Binary Protocol

MSG POS LLH — 0x020A — 522

This position solution message reports the absolute geodetic coordinates and the status (single point
vs pseudo-absolute RTK) of the position solution. If the rover receiver knows the surveyed position of
the base station and has an RTK solution, this reports a pseudo-absolute position solution using the
base station position and the rover’s RTK baseline vector. The full GPS time is given by the preceding
MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 8 double deg lat Latitude
12 8 double deg lon Longitude
20 8 double m height Height above WGS84 ellipsoid
28 2 u16 mm h accuracy Horizontal position estimated standard devi-
ation
30 2 u16 mm v accuracy Vertical position estimated standard devia-
tion
32 1 u8 n sats Number of satellites used in solution.
33 1 u8 flags Status flags
34 Total Payload Length

Table 6.5.14: MSG POS LLH 0x020A message structure

Value Description
0 Invalid
1 Single Point Position (SPP)
)
16

2 Differential GNSS (DGNSS)


5.
6.

3 Float RTK
le
15 ab

4 Fixed RTK
T
6. e (

5 Dead Reckoning
d
ab Mo

5.

6 SBAS Position
(T on
le
ti
od iga
av

Table 6.5.15: Fix mode values (flags[0:2])


Fi l N

e
In ed
tia
v

m
er
er
es

x
R

7 5 43 2 0
Value Description
Field 6.5.6: Status flags (flags) 0 None
1 INS used

Table 6.5.16: Inertial Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 18


Swift Navigation Swift Navigation Binary Protocol

MSG POS LLH COV — 0x0211 — 529

This position solution message reports the absolute geodetic coordinates and the status (single point
vs pseudo-absolute RTK) of the position solution as well as the upper triangle of the 3x3 covariance
matrix. The position information and Fix Mode flags should follow the MSG POS LLH message. Since
the covariance matrix is computed in the local-level North, East, Down frame, the covariance terms
follow with that convention. Thus, covariances are reported against the ”downward” measurement and
care should be taken with the sign convention.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 8 double deg lat Latitude
12 8 double deg lon Longitude
20 8 double m height Height above WGS84 ellipsoid
28 4 float mˆ2 cov n n Estimated variance of northing
32 4 float mˆ2 cov n e Covariance of northing and easting
36 4 float mˆ2 cov n d Covariance of northing and downward mea-
surement
40 4 float mˆ2 cov e e Estimated variance of easting
44 4 float mˆ2 cov e d Covariance of easting and downward mea-
surement
48 4 float mˆ2 cov d d Estimated variance of downward measure-
ment
52 1 u8 n sats Number of satellites used in solution.
53 1 u8 flags Status flags
54 Total Payload Length

Table 6.5.17: MSG POS LLH COV 0x0211 message structure

Value Description
0 Invalid
1 Single Point Position (SPP)
)
19

2 Differential GNSS (DGNSS)


5.
6.

3 Float RTK
le
18 ab

4 Fixed RTK
T
6. e (

5 Dead Reckoning
d
ab Mo

5.

6 SBAS Position
(T on
le
ti
od iga
av

Table 6.5.18: Fix mode values (flags[0:2])


Fi l N

e
ed
tia
v

m
er
er
es

x
In
R

7 5 43 2 0
Value Description
Field 6.5.7: Status flags (flags) 0 None
1 INS used

Table 6.5.19: Inertial Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 19


Swift Navigation Swift Navigation Binary Protocol

MSG BASELINE ECEF — 0x020B — 523

This message reports the baseline solution in Earth Centered Earth Fixed (ECEF) coordinates. This
baseline is the relative vector distance from the base station to the rover receiver. The full GPS time is
given by the preceding MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm x Baseline ECEF X coordinate
8 4 s32 mm y Baseline ECEF Y coordinate
12 4 s32 mm z Baseline ECEF Z coordinate
16 2 u16 mm accuracy Position estimated standard deviation
18 1 u8 n sats Number of satellites used in solution
19 1 u8 flags Status flags
20 Total Payload Length

Table 6.5.20: MSG BASELINE ECEF 0x020B message structure

Value Description
0 Invalid
)
21

1 Reserved
5.
6.

2 Differential GNSS (DGNSS)


le
ab

3 Float RTK
(T
e
d

4 Fixed RTK
od
ve

m
er

5 Reserved
es

x
Fi
R

7 3 2 0 6 Reserved

Field 6.5.8: Status flags (flags) Table 6.5.21: Fix mode values (flags[0:2])

Version 2.6.3, June 10, 2019 20


Swift Navigation Swift Navigation Binary Protocol

MSG BASELINE NED — 0x020C — 524

This message reports the baseline solution in North East Down (NED) coordinates. This baseline is
the relative vector distance from the base station to the rover receiver, and NED coordinate system is
defined at the local WGS84 tangent plane centered at the base station position. The full GPS time is
given by the preceding MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm n Baseline North coordinate
8 4 s32 mm e Baseline East coordinate
12 4 s32 mm d Baseline Down coordinate
16 2 u16 mm h accuracy Horizontal position estimated standard devi-
ation
18 2 u16 mm v accuracy Vertical position estimated standard devia-
tion
20 1 u8 n sats Number of satellites used in solution
21 1 u8 flags Status flags
22 Total Payload Length

Table 6.5.22: MSG BASELINE NED 0x020C message structure

Value Description
0 Invalid
)
23

1 Reserved
5.
6.

2 Differential GNSS (DGNSS)


le
ab

3 Float RTK
(T
e
d

4 Fixed RTK
od
ve

m
er

5 Reserved
es

x
Fi
R

7 3 2 0 6 Reserved

Field 6.5.9: Status flags (flags) Table 6.5.23: Fix mode values (flags[0:2])

Version 2.6.3, June 10, 2019 21


Swift Navigation Swift Navigation Binary Protocol

MSG VEL ECEF — 0x020D — 525

This message reports the velocity in Earth Centered Earth Fixed (ECEF) coordinates. The full GPS time
is given by the preceding MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm/s x Velocity ECEF X coordinate
8 4 s32 mm/s y Velocity ECEF Y coordinate
12 4 s32 mm/s z Velocity ECEF Z coordinate
16 2 u16 mm/s accuracy Velocity estimated standard deviation
18 1 u8 n sats Number of satellites used in solution
19 1 u8 flags Status flags
20 Total Payload Length

Table 6.5.24: MSG VEL ECEF 0x020D message structure

Value Description
0 Invalid
)
25 .26

1 Measured Doppler derived


5
6.

2 Computed Doppler derived


)
le
ab Tab

5.

3 Dead Reckoning
6.
(
e

le
od
M
(T
ty ion

Table 6.5.25: Velocity mode values (flags[0:2])


e
od
lo gat
m
Ve avi
ed
N
v

ci
er
S
es
IN
R

Value Description
7 5 43 2 0

0 None
Field 6.5.10: Status flags (flags) 1 INS used

Table 6.5.26: INS Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 22


Swift Navigation Swift Navigation Binary Protocol

MSG VEL ECEF COV — 0x0215 — 533

This message reports the velocity in Earth Centered Earth Fixed (ECEF) coordinates. The full GPS time
is given by the preceding MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm/s x Velocity ECEF X coordinate
8 4 s32 mm/s y Velocity ECEF Y coordinate
12 4 s32 mm/s z Velocity ECEF Z coordinate
16 4 float mˆ2/sˆ2 cov x x Estimated variance of x
20 4 float mˆ2/sˆ2 cov x y Estimated covariance of x and y
24 4 float mˆ2/sˆ2 cov x z Estimated covariance of x and z
28 4 float mˆ2/sˆ2 cov y y Estimated variance of y
32 4 float mˆ2/sˆ2 cov y z Estimated covariance of y and z
36 4 float mˆ2/sˆ2 cov z z Estimated variance of z
40 1 u8 n sats Number of satellites used in solution
41 1 u8 flags Status flags
42 Total Payload Length

Table 6.5.27: MSG VEL ECEF COV 0x0215 message structure

Value Description
0 Invalid
)
28 .29

1 Measured Doppler derived


5
6.

2 Computed Doppler derived


)
le
ab Tab

5.

3 Dead Reckoning
6.
(
e

le
od
M
(T
ty ion

Table 6.5.28: Velocity mode values (flags[0:2])


e
od
lo gat
m
Ve avi
ed
N
rv

ci
e
S
es
IN
R

Value Description
7 5 43 2 0

0 None
Field 6.5.11: Status flags (flags) 1 INS used

Table 6.5.29: INS Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 23


Swift Navigation Swift Navigation Binary Protocol

MSG VEL NED — 0x020E — 526

This message reports the velocity in local North East Down (NED) coordinates. The NED coordinate
system is defined as the local WGS84 tangent plane centered at the current position. The full GPS time
is given by the preceding MSG GPS TIME with the matching time-of-week (tow).

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm/s n Velocity North coordinate
8 4 s32 mm/s e Velocity East coordinate
12 4 s32 mm/s d Velocity Down coordinate
16 2 u16 mm/s h accuracy Horizontal velocity estimated standard devi-
ation
18 2 u16 mm/s v accuracy Vertical velocity estimated standard devia-
tion
20 1 u8 n sats Number of satellites used in solution
21 1 u8 flags Status flags
22 Total Payload Length

Table 6.5.30: MSG VEL NED 0x020E message structure

Value Description
0 Invalid
)
31 .32

1 Measured Doppler derived


5
6.

2 Computed Doppler derived


)
le
ab Tab

5.

3 Dead Reckoning
6.
(
e

le
od
M
(T
ty ion

Table 6.5.31: Velocity mode values (flags[0:2])


e
od
lo gat
m
Ve avi
d
ve
N

ci
er
S
es
IN
R

Value Description
7 5 43 2 0

0 None
Field 6.5.12: Status flags (flags) 1 INS used

Table 6.5.32: INS Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 24


Swift Navigation Swift Navigation Binary Protocol

MSG VEL NED COV — 0x0212 — 530

This message reports the velocity in local North East Down (NED) coordinates. The NED coordinate
system is defined as the local WGS84 tangent plane centered at the current position. The full GPS
time is given by the preceding MSG GPS TIME with the matching time-of-week (tow). This message is
similar to the MSG VEL NED, but it includes the upper triangular portion of the 3x3 covariance matrix.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm/s n Velocity North coordinate
8 4 s32 mm/s e Velocity East coordinate
12 4 s32 mm/s d Velocity Down coordinate
16 4 float mˆ2 cov n n Estimated variance of northward measure-
ment
20 4 float mˆ2 cov n e Covariance of northward and eastward mea-
surement
24 4 float mˆ2 cov n d Covariance of northward and downward mea-
surement
28 4 float mˆ2 cov e e Estimated variance of eastward measurement
32 4 float mˆ2 cov e d Covariance of eastward and downward mea-
surement
36 4 float mˆ2 cov d d Estimated variance of downward measure-
ment
40 1 u8 n sats Number of satellites used in solution
41 1 u8 flags Status flags
42 Total Payload Length

Table 6.5.33: MSG VEL NED COV 0x0212 message structure

Value Description
0 Invalid
)
34 .35

1 Measured Doppler derived


5
6.

2 Computed Doppler derived


)
le
ab Tab

5.

3 Dead Reckoning
6.
(
e

le
od
M
(T
ty ion

Table 6.5.34: Velocity mode values (flags[0:2])


e
od
lo gat
m
Ve avi
d
ve
N

ci
er
S
es
IN
R

Value Description
7 5 43 2 0

0 None
Field 6.5.13: Status flags (flags) 1 INS used

Table 6.5.35: INS Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 25


Swift Navigation Swift Navigation Binary Protocol

MSG VEL BODY — 0x0213 — 531

This message reports the velocity in the Vehicle Body Frame. By convention, the x-axis should point
out the nose of the vehicle and represent the forward direction, while as the y-axis should point out the
right hand side of the vehicle. Since this is a right handed system, z should point out the bottom of the
vehicle. The orientation and origin of the Vehicle Body Frame are specified via the device settings. The
full GPS time is given by the preceding MSG GPS TIME with the matching time-of-week (tow). This
message is only produced by inertial versions of Swift products and is not available from Piksi Multi or
Duro.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 mm/s x Velocity in x direction
8 4 s32 mm/s y Velocity in y direction
12 4 s32 mm/s z Velocity in z direction
16 4 float mˆ2 cov x x Estimated variance of x
20 4 float mˆ2 cov x y Covariance of x and y
24 4 float mˆ2 cov x z Covariance of x and z
28 4 float mˆ2 cov y y Estimated variance of y
32 4 float mˆ2 cov y z Covariance of y and z
36 4 float mˆ2 cov z z Estimated variance of z
40 1 u8 n sats Number of satellites used in solution
41 1 u8 flags Status flags
42 Total Payload Length

Table 6.5.36: MSG VEL BODY 0x0213 message structure

Value Description
0 Invalid
)
37 .38

1 Measured Doppler derived


5
6.

2 Computed Doppler derived


)
le
ab Tab

5.

3 Dead Reckoning
6.
(
e

le
od
M
(T
ty ion

Table 6.5.37: Velocity mode values (flags[0:2])


e
od
lo gat
m
Ve avi
ed
N
v

ci
er
S
es
IN
R

Value Description
7 5 43 2 0

0 None
Field 6.5.14: Status flags (flags) 1 INS used

Table 6.5.38: INS Navigation Mode values (flags[3:4])

Version 2.6.3, June 10, 2019 26


Swift Navigation Swift Navigation Binary Protocol

MSG AGE CORRECTIONS — 0x0210 — 528

This message reports the Age of the corrections used for the current Differential solution

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 2 u16 deciseconds age Age of the corrections (0xFFFF indicates in-
valid)
6 Total Payload Length

Table 6.5.39: MSG AGE CORRECTIONS 0x0210 message structure

Version 2.6.3, June 10, 2019 27


Swift Navigation Swift Navigation Binary Protocol

6.6 Observation
Satellite observation messages from the device.

MSG OBS — 0x004A — 74

The GPS observations message reports all the raw pseudorange and carrier phase observations for the
satellites being tracked by the device. Carrier phase observation here is represented as a 40-bit fixed point
number with Q32.8 layout (i.e. 32-bits of whole cycles and 8-bits of fractional cycles). The observations
are be interoperable with 3rd party receivers and conform with typical RTCMv3 GNSS observations.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms header.t.tow Milliseconds since start of GPS week
4 4 s32 ns Nanosecond residual of millisecond-rounded
header.t.ns residual
TOW (ranges from -500000 to 500000)
8 2 u16 week header.t.wn GPS week number
10 1 u8 header.n obs Total number of observations. First nibble is
the size of the sequence (n), second nibble
is the zero-indexed counter (ith packet of
n)
17N + 11 4 u32 2 cm obs[N].P Pseudorange observation
17N + 15 4 s32 cycles obs[N].L.i Carrier phase whole cycles
17N + 19 1 u8 cycles / 256 obs[N].L.f Carrier phase fractional part
17N + 20 2 s16 Hz obs[N].D.i Doppler whole Hz
17N + 22 1 u8 Hz / 256 obs[N].D.f Doppler fractional part
17N + 23 1 u8 dB Hz / 4 obs[N].cn0 Carrier-to-Noise density. Zero implies invalid
cn0.
17N + 24 1 u8 obs[N].lock Lock timer. This value gives an indication
of the time for which a signal has main-
tained continuous phase lock. Whenever a
signal has lost and regained lock, this value
is reset to zero. It is encoded according to
DF402 from the RTCM 10403.2 Amend-
ment 2 specification. Valid values range
from 0 to 15 and the most significant nibble
is reserved for future use.
17N + 25 1 u8 obs[N].flags Measurement status flags. A bit field of flags
providing the status of this observation. If
this field is 0 it means only the Cn0 estimate
for the signal is valid.
17N + 26 1 u8 obs[N].sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
17N + 27 1 u8 Signal constellation, band and code
obs[N].sid.code
17N + 11 Total Payload Length

Table 6.6.1: MSG OBS 0x004A message structure

Version 2.6.3, June 10, 2019 28


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 Invalid pseudorange measurement
1 Valid pseudorange measurement and coarse TOW decoded

Table 6.6.2: Pseudorange valid values (flags[0])

Value Description
0 Invalid carrier phase measurement
1 Valid carrier phase measurement

6. .3 )
le 6.6 6.4
6. )
Table 6.6.3: Carrier phase valid values (flags[1])

2)
ab le 6.
6)

(T ab ble
6.

lid (T a )
v a d ( T .5
6.

e ali ty .6
le

ng v ui 6
ab

ra se ig le
(T

b
do ha m a

Value Description
eu r p a (T
n

b
D rve usio

Ps rie cle lid


ar y a
l

0 Half cycle phase ambiguity unresolved


es exc

C lf-cer v
o d
a l
IM

H pp

1 Half cycle phase ambiguity resolved


e
A
R
R

7 6 4 3 2 1 0
Table 6.6.4: Half-cycle ambiguity values (flags[2])
Field 6.6.1: Measurement status flags. A bit field of flags
providing the status of this observation. If this field is 0 it
means only the Cn0 estimate for the signal is valid. (flags) Value Description
0 Invalid doppler measurement
1 Valid doppler measurement

Table 6.6.5: Doppler valid values (flags[3])

Value Description
0 No exclusion
1 Measurement was excluded by SPP RAIM, use with care

Table 6.6.6: RAIM exclusion values (flags[7])

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
7)

12 BDS2 B1
6.
6.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 6.6.2: Signal constellation, band and code (sid.code) Table 6.6.7: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 29


Swift Navigation Swift Navigation Binary Protocol

MSG BASE POS LLH — 0x0044 — 68

The base station position message is the position reported by the base station itself. It is used for
pseudo-absolute RTK positioning, and is required to be a high-accuracy surveyed location of the base
station. Any error here will result in an error in the pseudo-absolute position output.

Offset Size (bytes) Format Units Name Description


(bytes)
0 8 double deg lat Latitude
8 8 double deg lon Longitude
16 8 double m height Height
24 Total Payload Length

Table 6.6.8: MSG BASE POS LLH 0x0044 message structure

Version 2.6.3, June 10, 2019 30


Swift Navigation Swift Navigation Binary Protocol

MSG BASE POS ECEF — 0x0048 — 72

The base station position message is the position reported by the base station itself in absolute Earth
Centered Earth Fixed coordinates. It is used for pseudo-absolute RTK positioning, and is required to
be a high-accuracy surveyed location of the base station. Any error here will result in an error in the
pseudo-absolute position output.

Offset Size (bytes) Format Units Name Description


(bytes)
0 8 double m x ECEF X coodinate
8 8 double m y ECEF Y coordinate
16 8 double m z ECEF Z coordinate
24 Total Payload Length

Table 6.6.9: MSG BASE POS ECEF 0x0048 message structure

Version 2.6.3, June 10, 2019 31


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GPS DEP E — 0x0081 — 129

The ephemeris message returns a set of satellite orbit parameters that is used to calculate GPS satel-
lite position, velocity, and clock offset. Please see the Navstar GPS Space Segment/Navigation user
interfaces (ICD-GPS-200, Table 20-III) for more details.

Version 2.6.3, June 10, 2019 32


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 common.sid.satConstellation-specific satellite identifier.
Note: unlike GnssSignal, GPS satellites are
encoded as (PRN - 1). Other constellations
do not have this offset.
2 1 u8 Signal constellation, band and code
common.sid.code
3 1 u8 Reserved
common.sid.reserved
4 4 u32 ms common.toe.towMilliseconds since start of GPS week
8 2 u16 week common.toe.wnGPS week number
10 8 double m common.ura User Range Accuracy
18 4 u32 s Curve fit interval
common.fit interval
22 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
23 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
24 8 double s tgd Group delay differential between L1 and L2
32 8 double m c rs Amplitude of the sine harmonic correction
term to the orbit radius
40 8 double m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
48 8 double rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
56 8 double rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
64 8 double rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
72 8 double rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
80 8 double rad/s dn Mean motion difference
88 8 double rad m0 Mean anomaly at reference time
96 8 double ecc Eccentricity of satellite orbit
104 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
112 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
120 8 double rad/s omegadot Rate of right ascension
128 8 double rad w Argument of perigee
136 8 double rad inc Inclination
144 8 double rad/s inc dot Inclination first derivative
152 8 double s af0 Polynomial clock correction coefficient (clock
bias)
160 8 double s/s af1 Polynomial clock correction coefficient (clock
drift)
168 8 double s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
176 4 u32 ms toc.tow Milliseconds since start of GPS week
180 2 u16 week toc.wn GPS week number
182 1 u8 iode Issue of ephemeris data
183 2 u16 iodc Issue of clock data
185 Total Payload Length

Table 6.6.10: MSG EPHEMERIS GPS DEP E 0x0081 message structure

Version 2.6.3, June 10, 2019 33


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM

)
11
2 SBAS L1CA

6.
6.
3 GLO L1CA

le
ab
(T
4 GLO L2CA
7 0 5 GPS L1P
6 GPS L2P
Field 6.6.3: Signal constellation, band and code
(common.sid.code) Table 6.6.11: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 34


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GPS DEP F — 0x0086 — 134

This observation message has been deprecated in favor of ephemeris message using floats for size reduc-
tion.

Version 2.6.3, June 10, 2019 35


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 Others: 0 = valid,
non-zero = invalid
22 8 double s tgd Group delay differential between L1 and L2
30 8 double m c rs Amplitude of the sine harmonic correction
term to the orbit radius
38 8 double m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
46 8 double rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
54 8 double rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
62 8 double rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
70 8 double rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
78 8 double rad/s dn Mean motion difference
86 8 double rad m0 Mean anomaly at reference time
94 8 double ecc Eccentricity of satellite orbit
102 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
110 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
118 8 double rad/s omegadot Rate of right ascension
126 8 double rad w Argument of perigee
134 8 double rad inc Inclination
142 8 double rad/s inc dot Inclination first derivative
150 8 double s af0 Polynomial clock correction coefficient (clock
bias)
158 8 double s/s af1 Polynomial clock correction coefficient (clock
drift)
166 8 double s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
174 4 u32 s toc.tow Seconds since start of GPS week
178 2 u16 week toc.wn GPS week number
180 1 u8 iode Issue of ephemeris data
181 2 u16 iodc Issue of clock data
183 Total Payload Length

Table 6.6.12: MSG EPHEMERIS GPS DEP F 0x0086 message structure

Version 2.6.3, June 10, 2019 36


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
13
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.4: Signal constellation, band and code
(common.sid.code) Table 6.6.13: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 37


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GPS — 0x008A — 138

The ephemeris message returns a set of satellite orbit parameters that is used to calculate GPS satel-
lite position, velocity, and clock offset. Please see the Navstar GPS Space Segment/Navigation user
interfaces (ICD-GPS-200, Table 20-III) for more details.

Version 2.6.3, June 10, 2019 38


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 4 float s tgd Group delay differential between L1 and L2
22 4 float m c rs Amplitude of the sine harmonic correction
term to the orbit radius
26 4 float m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
30 4 float rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
34 4 float rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
38 4 float rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
42 4 float rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
46 8 double rad/s dn Mean motion difference
54 8 double rad m0 Mean anomaly at reference time
62 8 double ecc Eccentricity of satellite orbit
70 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
78 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
86 8 double rad/s omegadot Rate of right ascension
94 8 double rad w Argument of perigee
102 8 double rad inc Inclination
110 8 double rad/s inc dot Inclination first derivative
118 4 float s af0 Polynomial clock correction coefficient (clock
bias)
122 4 float s/s af1 Polynomial clock correction coefficient (clock
drift)
126 4 float s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
130 4 u32 s toc.tow Seconds since start of GPS week
134 2 u16 week toc.wn GPS week number
136 1 u8 iode Issue of ephemeris data
137 2 u16 iodc Issue of clock data
139 Total Payload Length

Table 6.6.14: MSG EPHEMERIS GPS 0x008A message structure

Version 2.6.3, June 10, 2019 39


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
15
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.5: Signal constellation, band and code
(common.sid.code) Table 6.6.15: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 40


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS QZSS — 0x008E — 142

The ephemeris message returns a set of satellite orbit parameters that is used to calculate QZSS satellite
position, velocity, and clock offset.

Version 2.6.3, June 10, 2019 41


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 4 float s tgd Group delay differential between L1 and L2
22 4 float m c rs Amplitude of the sine harmonic correction
term to the orbit radius
26 4 float m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
30 4 float rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
34 4 float rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
38 4 float rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
42 4 float rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
46 8 double rad/s dn Mean motion difference
54 8 double rad m0 Mean anomaly at reference time
62 8 double ecc Eccentricity of satellite orbit
70 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
78 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
86 8 double rad/s omegadot Rate of right ascension
94 8 double rad w Argument of perigee
102 8 double rad inc Inclination
110 8 double rad/s inc dot Inclination first derivative
118 4 float s af0 Polynomial clock correction coefficient (clock
bias)
122 4 float s/s af1 Polynomial clock correction coefficient (clock
drift)
126 4 float s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
130 4 u32 s toc.tow Seconds since start of GPS week
134 2 u16 week toc.wn GPS week number
136 1 u8 iode Issue of ephemeris data
137 2 u16 iodc Issue of clock data
139 Total Payload Length

Table 6.6.16: MSG EPHEMERIS QZSS 0x008E message structure

Version 2.6.3, June 10, 2019 42


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
17
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.6: Signal constellation, band and code
(common.sid.code) Table 6.6.17: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 43


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS BDS — 0x0089 — 137

The ephemeris message returns a set of satellite orbit parameters that is used to calculate BDS satellite
position, velocity, and clock offset. Please see the BeiDou Navigation Satellite System SIS-ICD Version
2.1, Table 5-9 for more details.

Version 2.6.3, June 10, 2019 44


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 4 float s tgd1 Group delay differential for B1
22 4 float s tgd2 Group delay differential for B2
26 4 float m c rs Amplitude of the sine harmonic correction
term to the orbit radius
30 4 float m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
34 4 float rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
38 4 float rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
42 4 float rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
46 4 float rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
50 8 double rad/s dn Mean motion difference
58 8 double rad m0 Mean anomaly at reference time
66 8 double ecc Eccentricity of satellite orbit
74 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
82 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
90 8 double rad/s omegadot Rate of right ascension
98 8 double rad w Argument of perigee
106 8 double rad inc Inclination
114 8 double rad/s inc dot Inclination first derivative
122 8 double s af0 Polynomial clock correction coefficient (clock
bias)
130 4 float s/s af1 Polynomial clock correction coefficient (clock
drift)
134 4 float s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
138 4 u32 s toc.tow Seconds since start of GPS week
142 2 u16 week toc.wn GPS week number
144 1 u8 iode Issue of ephemeris data
145 2 u16 iodc Issue of clock data
147 Total Payload Length

Table 6.6.18: MSG EPHEMERIS BDS 0x0089 message structure

Version 2.6.3, June 10, 2019 45


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
19
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.7: Signal constellation, band and code
(common.sid.code) Table 6.6.19: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 46


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GAL DEP A — 0x0095 — 149

This observation message has been deprecated in favor of an ephemeris message with explicit source of
NAV data.

Version 2.6.3, June 10, 2019 47


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 4 float s bgd e1e5a E1-E5a Broadcast Group Delay
22 4 float s bgd e1e5b E1-E5b Broadcast Group Delay
26 4 float m c rs Amplitude of the sine harmonic correction
term to the orbit radius
30 4 float m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
34 4 float rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
38 4 float rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
42 4 float rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
46 4 float rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
50 8 double rad/s dn Mean motion difference
58 8 double rad m0 Mean anomaly at reference time
66 8 double ecc Eccentricity of satellite orbit
74 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
82 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
90 8 double rad/s omegadot Rate of right ascension
98 8 double rad w Argument of perigee
106 8 double rad inc Inclination
114 8 double rad/s inc dot Inclination first derivative
122 8 double s af0 Polynomial clock correction coefficient (clock
bias)
130 8 double s/s af1 Polynomial clock correction coefficient (clock
drift)
138 4 float s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
142 4 u32 s toc.tow Seconds since start of GPS week
146 2 u16 week toc.wn GPS week number
148 2 u16 iode Issue of ephemeris data
150 2 u16 iodc Issue of clock data
152 Total Payload Length

Table 6.6.20: MSG EPHEMERIS GAL DEP A 0x0095 message structure

Version 2.6.3, June 10, 2019 48


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
21
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.8: Signal constellation, band and code
(common.sid.code) Table 6.6.21: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 49


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GAL — 0x008D — 141

The ephemeris message returns a set of satellite orbit parameters that is used to calculate Galileo satellite
position, velocity, and clock offset. Please see the Signal In Space ICD OS SIS ICD, Issue 1.3, December
2016 for more details.

Version 2.6.3, June 10, 2019 50


Swift Navigation Swift Navigation Binary Protocol

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 4 float s bgd e1e5a E1-E5a Broadcast Group Delay
22 4 float s bgd e1e5b E1-E5b Broadcast Group Delay
26 4 float m c rs Amplitude of the sine harmonic correction
term to the orbit radius
30 4 float m c rc Amplitude of the cosine harmonic correction
term to the orbit radius
34 4 float rad c uc Amplitude of the cosine harmonic correction
term to the argument of latitude
38 4 float rad c us Amplitude of the sine harmonic correction
term to the argument of latitude
42 4 float rad c ic Amplitude of the cosine harmonic correction
term to the angle of inclination
46 4 float rad c is Amplitude of the sine harmonic correction
term to the angle of inclination
50 8 double rad/s dn Mean motion difference
58 8 double rad m0 Mean anomaly at reference time
66 8 double ecc Eccentricity of satellite orbit
74 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
82 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
90 8 double rad/s omegadot Rate of right ascension
98 8 double rad w Argument of perigee
106 8 double rad inc Inclination
114 8 double rad/s inc dot Inclination first derivative
122 8 double s af0 Polynomial clock correction coefficient (clock
bias)
130 8 double s/s af1 Polynomial clock correction coefficient (clock
drift)
138 4 float s/sˆ2 af2 Polynomial clock correction coefficient (rate
of clock drift)
142 4 u32 s toc.tow Seconds since start of GPS week
146 2 u16 week toc.wn GPS week number
148 2 u16 iode Issue of ephemeris data
150 2 u16 iodc Issue of clock data
152 1 u8 source 0=I/NAV, 1=F/NAV, . . .
153 Total Payload Length

Table 6.6.22: MSG EPHEMERIS GAL 0x008D message structure

Version 2.6.3, June 10, 2019 51


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
23
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.9: Signal constellation, band and code
(common.sid.code) Table 6.6.23: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 52


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS SBAS DEP A — 0x0082 — 130

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 common.sid.satConstellation-specific satellite identifier.
Note: unlike GnssSignal, GPS satellites are
encoded as (PRN - 1). Other constellations
do not have this offset.
2 1 u8 Signal constellation, band and code
common.sid.code
3 1 u8 Reserved
common.sid.reserved
4 4 u32 ms common.toe.towMilliseconds since start of GPS week
8 2 u16 week common.toe.wnGPS week number
10 8 double m common.ura User Range Accuracy
18 4 u32 s Curve fit interval
common.fit interval
22 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
23 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
24 24 double[3] m pos Position of the GEO at time toe
48 24 double[3] m/s vel Velocity of the GEO at time toe
72 24 double[3] m/sˆ2 acc Acceleration of the GEO at time toe
96 8 double s a gf0 Time offset of the GEO clock w.r.t. SBAS
Network Time
104 8 double s/s a gf1 Drift of the GEO clock w.r.t. SBAS Network
Time
112 Total Payload Length

Table 6.6.24: MSG EPHEMERIS SBAS DEP A 0x0082 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
)
25

2 SBAS L1CA
6.
6.

3 GLO L1CA
le
ab
(T

4 GLO L2CA
7 0 5 GPS L1P
6 GPS L2P
Field 6.6.10: Signal constellation, band and code
(common.sid.code) Table 6.6.25: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 53


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GLO DEP A — 0x0083 — 131

The ephemeris message returns a set of satellite orbit parameters that is used to calculate GLO satellite
position, velocity, and clock offset. Please see the GLO ICD 5.1 ”Table 4.5 Characteristics of words of
immediate information (ephemeris parameters)” for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 common.sid.satConstellation-specific satellite identifier.
Note: unlike GnssSignal, GPS satellites are
encoded as (PRN - 1). Other constellations
do not have this offset.
2 1 u8 Signal constellation, band and code
common.sid.code
3 1 u8 Reserved
common.sid.reserved
4 4 u32 ms common.toe.towMilliseconds since start of GPS week
8 2 u16 week common.toe.wnGPS week number
10 8 double m common.ura User Range Accuracy
18 4 u32 s Curve fit interval
common.fit interval
22 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
23 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
24 8 double gamma Relative deviation of predicted carrier fre-
quency from nominal
32 8 double s tau Correction to the SV time
40 24 double[3] m pos Position of the SV at tb in PZ-90.02 coordi-
nates system
64 24 double[3] m/s vel Velocity vector of the SV at tb in PZ-90.02
coordinates system
88 24 double[3] m/sˆ2 acc Acceleration vector of the SV at tb in PZ-
90.02 coordinates sys
112 Total Payload Length

Table 6.6.26: MSG EPHEMERIS GLO DEP A 0x0083 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
)
27

2 SBAS L1CA
6.
6.

3 GLO L1CA
le
ab
(T

4 GLO L2CA
7 0 5 GPS L1P
6 GPS L2P
Field 6.6.11: Signal constellation, band and code
(common.sid.code) Table 6.6.27: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 54


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS SBAS DEP B — 0x0084 — 132

This observation message has been deprecated in favor of ephemeris message using floats for size reduc-
tion.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 Others: 0 = valid,
non-zero = invalid
22 24 double[3] m pos Position of the GEO at time toe
46 24 double[3] m/s vel Velocity of the GEO at time toe
70 24 double[3] m/sˆ2 acc Acceleration of the GEO at time toe
94 8 double s a gf0 Time offset of the GEO clock w.r.t. SBAS
Network Time
102 8 double s/s a gf1 Drift of the GEO clock w.r.t. SBAS Network
Time
110 Total Payload Length

Table 6.6.28: MSG EPHEMERIS SBAS DEP B 0x0084 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
)
29

6 GPS L2P
6.
6.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.12: Signal constellation, band and code
(common.sid.code) Table 6.6.29: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 55


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS SBAS — 0x008C — 140

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 24 double[3] m pos Position of the GEO at time toe
42 12 float[3] m/s vel Velocity of the GEO at time toe
54 12 float[3] m/sˆ2 acc Acceleration of the GEO at time toe
66 4 float s a gf0 Time offset of the GEO clock w.r.t. SBAS
Network Time
70 4 float s/s a gf1 Drift of the GEO clock w.r.t. SBAS Network
Time
74 Total Payload Length

Table 6.6.30: MSG EPHEMERIS SBAS 0x008C message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
)
31

6 GPS L2P
6.
6.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.13: Signal constellation, band and code
(common.sid.code) Table 6.6.31: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 56


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GLO DEP B — 0x0085 — 133

The ephemeris message returns a set of satellite orbit parameters that is used to calculate GLO satellite
position, velocity, and clock offset. Please see the GLO ICD 5.1 ”Table 4.5 Characteristics of words of
immediate information (ephemeris parameters)” for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 Others: 0 = valid,
non-zero = invalid
22 8 double gamma Relative deviation of predicted carrier fre-
quency from nominal
30 8 double s tau Correction to the SV time
38 24 double[3] m pos Position of the SV at tb in PZ-90.02 coordi-
nates system
62 24 double[3] m/s vel Velocity vector of the SV at tb in PZ-90.02
coordinates system
86 24 double[3] m/sˆ2 acc Acceleration vector of the SV at tb in PZ-
90.02 coordinates sys
110 Total Payload Length

Table 6.6.32: MSG EPHEMERIS GLO DEP B 0x0085 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
)
33

6 GPS L2P
6.
6.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.14: Signal constellation, band and code
(common.sid.code) Table 6.6.33: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 57


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GLO DEP C — 0x0087 — 135

The ephemeris message returns a set of satellite orbit parameters that is used to calculate GLO satellite
position, velocity, and clock offset. Please see the GLO ICD 5.1 ”Table 4.5 Characteristics of words of
immediate information (ephemeris parameters)” for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 Others: 0 = valid,
non-zero = invalid
22 8 double gamma Relative deviation of predicted carrier fre-
quency from nominal
30 8 double s tau Correction to the SV time
38 8 double s d tau Equipment delay between L1 and L2
46 24 double[3] m pos Position of the SV at tb in PZ-90.02 coordi-
nates system
70 24 double[3] m/s vel Velocity vector of the SV at tb in PZ-90.02
coordinates system
94 24 double[3] m/sˆ2 acc Acceleration vector of the SV at tb in PZ-
90.02 coordinates sys
118 1 u8 fcn Frequency slot. FCN+8 (that is [1..14]). 0
or 0xFF for invalid
119 Total Payload Length

Table 6.6.34: MSG EPHEMERIS GLO DEP C 0x0087 message structure

Version 2.6.3, June 10, 2019 58


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
35
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.15: Signal constellation, band and code
(common.sid.code) Table 6.6.35: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 59


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GLO DEP D — 0x0088 — 136

This observation message has been deprecated in favor of ephemeris message using floats for size reduc-
tion.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 Others: 0 = valid,
non-zero = invalid
22 8 double gamma Relative deviation of predicted carrier fre-
quency from nominal
30 8 double s tau Correction to the SV time
38 8 double s d tau Equipment delay between L1 and L2
46 24 double[3] m pos Position of the SV at tb in PZ-90.02 coordi-
nates system
70 24 double[3] m/s vel Velocity vector of the SV at tb in PZ-90.02
coordinates system
94 24 double[3] m/sˆ2 acc Acceleration vector of the SV at tb in PZ-
90.02 coordinates sys
118 1 u8 fcn Frequency slot. FCN+8 (that is [1..14]). 0
or 0xFF for invalid
119 1 u8 iod Issue of ephemeris data
120 Total Payload Length

Table 6.6.36: MSG EPHEMERIS GLO DEP D 0x0088 message structure

Version 2.6.3, June 10, 2019 60


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
37
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.16: Signal constellation, band and code
(common.sid.code) Table 6.6.37: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 61


Swift Navigation Swift Navigation Binary Protocol

MSG EPHEMERIS GLO — 0x008B — 139

The ephemeris message returns a set of satellite orbit parameters that is used to calculate GLO satellite
position, velocity, and clock offset. Please see the GLO ICD 5.1 ”Table 4.5 Characteristics of words of
immediate information (ephemeris parameters)” for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toe.towSeconds since start of GPS week
6 2 u16 week common.toe.wnGPS week number
8 4 float m common.ura User Range Accuracy
12 4 u32 s Curve fit interval
common.fit interval
16 1 u8 common.valid Status of ephemeris, 1 = valid, 0 = invalid
17 1 u8 common.health Satellite
bits health status. GPS: ICD-GPS-200,
chapter 20.3.3.3.1.4 SBAS: 0 = valid, non-
zero = invalid GLO: 0 = valid, non-zero =
invalid
18 4 float gamma Relative deviation of predicted carrier fre-
quency from nominal
22 4 float s tau Correction to the SV time
26 4 float s d tau Equipment delay between L1 and L2
30 24 double[3] m pos Position of the SV at tb in PZ-90.02 coordi-
nates system
54 24 double[3] m/s vel Velocity vector of the SV at tb in PZ-90.02
coordinates system
78 12 float[3] m/sˆ2 acc Acceleration vector of the SV at tb in PZ-
90.02 coordinates sys
90 1 u8 fcn Frequency slot. FCN+8 (that is [1..14]). 0
or 0xFF for invalid
91 1 u8 iod Issue of ephemeris data
92 Total Payload Length

Table 6.6.38: MSG EPHEMERIS GLO 0x008B message structure

Version 2.6.3, June 10, 2019 62


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
39
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.17: Signal constellation, band and code
(common.sid.code) Table 6.6.39: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 63


Swift Navigation Swift Navigation Binary Protocol

MSG IONO — 0x0090 — 144

The ionospheric parameters which allow the ”L1 only” or ”L2 only” user to utilize the ionospheric model
for computation of the ionospheric delay. Please see ICD-GPS-200 (Chapter 20.3.3.5.1.7) for more
details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s t nmct.tow Seconds since start of GPS week
4 2 u16 week t nmct.wn GPS week number
6 8 double s a0
14 8 double s/semi-circle a1
22 8 double s/(semi- a2
circle)ˆ2
30 8 double s/(semi- a3
circle)ˆ3
38 8 double s b0
46 8 double s/semi-circle b1
54 8 double s/(semi- b2
circle)ˆ2
62 8 double s/(semi- b3
circle)ˆ3
70 Total Payload Length

Table 6.6.40: MSG IONO 0x0090 message structure

Version 2.6.3, June 10, 2019 64


Swift Navigation Swift Navigation Binary Protocol

MSG SV CONFIGURATION GPS DEP — 0x0091 — 145

Please see ICD-GPS-200 (Chapter 20.3.3.5.1.4) for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s t nmct.tow Seconds since start of GPS week
4 2 u16 week t nmct.wn GPS week number
6 4 u32 l2c mask L2C capability mask, SV32 bit being MSB,
SV1 bit being LSB
10 Total Payload Length

Table 6.6.41: MSG SV CONFIGURATION GPS DEP 0x0091 message structure

Version 2.6.3, June 10, 2019 65


Swift Navigation Swift Navigation Binary Protocol

MSG GNSS CAPB — 0x0096 — 150

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s t nmct.tow Seconds since start of GPS week
4 2 u16 week t nmct.wn GPS week number
6 8 u64 gc.gps active GPS SV active mask
14 8 u64 gc.gps l2c GPS L2C active mask
22 8 u64 gc.gps l5 GPS L5 active mask
30 4 u32 gc.glo active GLO active mask
34 4 u32 gc.glo l2of GLO L2OF active mask
38 4 u32 gc.glo l3 GLO L3 active mask
42 8 u64 gc.sbas activeSBAS active mask (PRNs 120..158,
AN 7/62.2.2-18/18 Table B-
23, https://www.caat.or.th/wp-
content/uploads/2018/03/SL-2018.18.E-
1.pdf)
50 8 u64 gc.sbas l5 SBAS L5 active mask (PRNs
120..158, AN 7/62.2.2-18/18 Ta-
ble B-23, https://www.caat.or.th/wp-
content/uploads/2018/03/SL-2018.18.E-
1.pdf)
58 8 u64 gc.bds active BDS active mask
66 8 u64 gc.bds d2nav BDS D2NAV active mask
74 8 u64 gc.bds b2 BDS B2 active mask
82 8 u64 gc.bds b2a BDS B2A active mask
90 4 u32 gc.qzss activeQZSS active mask
94 8 u64 gc.gal active GAL active mask
102 8 u64 gc.gal e5 GAL E5 active mask
110 Total Payload Length

Table 6.6.42: MSG GNSS CAPB 0x0096 message structure

Version 2.6.3, June 10, 2019 66


Swift Navigation Swift Navigation Binary Protocol

MSG GROUP DELAY DEP A — 0x0092 — 146

Please see ICD-GPS-200 (30.3.3.3.1.1) for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms t op.tow Milliseconds since start of GPS week
4 2 u16 week t op.wn GPS week number
6 1 u8 prn Satellite number
7 1 u8 valid bit-field indicating validity of the values, LSB
indicating tgd validity etc. 1 = value is valid,
0 = value is not valid.
8 2 s16 s * 2ˆ-35 tgd
10 2 s16 s * 2ˆ-35 isc l1ca
12 2 s16 s * 2ˆ-35 isc l2c
14 Total Payload Length

Table 6.6.43: MSG GROUP DELAY DEP A 0x0092 message structure

Version 2.6.3, June 10, 2019 67


Swift Navigation Swift Navigation Binary Protocol

MSG GROUP DELAY DEP B — 0x0093 — 147

Please see ICD-GPS-200 (30.3.3.3.1.1) for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s t op.tow Seconds since start of GPS week
4 2 u16 week t op.wn GPS week number
6 2 u16 sid.sat Constellation-specific satellite identifier.
Note: unlike GnssSignal, GPS satellites are
encoded as (PRN - 1). Other constellations
do not have this offset.
8 1 u8 sid.code Signal constellation, band and code
9 1 u8 sid.reserved Reserved
10 1 u8 valid bit-field indicating validity of the values, LSB
indicating tgd validity etc. 1 = value is valid,
0 = value is not valid.
11 2 s16 s * 2ˆ-35 tgd
13 2 s16 s * 2ˆ-35 isc l1ca
15 2 s16 s * 2ˆ-35 isc l2c
17 Total Payload Length

Table 6.6.44: MSG GROUP DELAY DEP B 0x0093 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
5)

2 SBAS L1CA
4
6.
6.

3 GLO L1CA
le
ab
(T

4 GLO L2CA
7 0 5 GPS L1P
6 GPS L2P
Field 6.6.18: Signal constellation, band and code
(sid.code) Table 6.6.45: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 68


Swift Navigation Swift Navigation Binary Protocol

MSG GROUP DELAY — 0x0094 — 148

Please see ICD-GPS-200 (30.3.3.3.1.1) for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s t op.tow Seconds since start of GPS week
4 2 u16 week t op.wn GPS week number
6 1 u8 sid.sat Constellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
7 1 u8 sid.code Signal constellation, band and code
8 1 u8 valid bit-field indicating validity of the values, LSB
indicating tgd validity etc. 1 = value is valid,
0 = value is not valid.
9 2 s16 s * 2ˆ-35 tgd
11 2 s16 s * 2ˆ-35 isc l1ca
13 2 s16 s * 2ˆ-35 isc l2c
15 Total Payload Length

Table 6.6.46: MSG GROUP DELAY 0x0094 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
)
47

6 GPS L2P
6.
6.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.19: Signal constellation, band and code
(sid.code) Table 6.6.47: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 69


Swift Navigation Swift Navigation Binary Protocol

MSG ALMANAC GPS — 0x0072 — 114

The almanac message returns a set of satellite orbit parameters. Almanac data is not very precise and is
considered valid for up to several months. Please see the Navstar GPS Space Segment/Navigation user
interfaces (ICD-GPS-200, Chapter 20.3.3.5.1.2 Almanac Data) for more details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toa.towSeconds since start of GPS week
6 2 u16 week common.toa.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of almanac, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status for GPS: - bits 5-7:
NAV data health status. See IS-GPS-200H
Table 20-VII: NAV Data Health Indications.
- bits 0-4: Signal health status. See IS-
GPS-200H Table 20-VIII. Codes for Health
of SV Signal Components. Satellite health
status for GLO: See GLO ICD 5.1 table 5.1
for details - bit 0: C(n), ”unhealthy” flag
that is transmitted within non-immediate
data and indicates overall constellation sta-
tus at the moment of almanac uploading.
’0’ indicates malfunction of n-satellite. ’1’
indicates that n-satellite is operational. -
bit 1: Bn(ln), ’0’ indicates the satellite is
operational and suitable for navigation.
22 8 double rad m0 Mean anomaly at reference time
30 8 double ecc Eccentricity of satellite orbit
38 8 double mˆ(1/2) sqrta Square root of the semi-major axis of orbit
46 8 double rad omega0 Longitude of ascending node of orbit plane
at weekly epoch
54 8 double rad/s omegadot Rate of right ascension
62 8 double rad w Argument of perigee
70 8 double rad inc Inclination
78 8 double s af0 Polynomial clock correction coefficient (clock
bias)
86 8 double s/s af1 Polynomial clock correction coefficient (clock
drift)
94 Total Payload Length

Table 6.6.48: MSG ALMANAC GPS 0x0072 message structure

Version 2.6.3, June 10, 2019 70


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
49
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.20: Signal constellation, band and code
(common.sid.code) Table 6.6.49: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 71


Swift Navigation Swift Navigation Binary Protocol

MSG ALMANAC GLO — 0x0073 — 115

The almanac message returns a set of satellite orbit parameters. Almanac data is not very precise and
is considered valid for up to several months. Please see the GLO ICD 5.1 ”Chapter 4.5 Non-immediate
information and almanac” for details.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 common.sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
1 1 u8 Signal constellation, band and code
common.sid.code
2 4 u32 s common.toa.towSeconds since start of GPS week
6 2 u16 week common.toa.wnGPS week number
8 8 double m common.ura User Range Accuracy
16 4 u32 s Curve fit interval
common.fit interval
20 1 u8 common.valid Status of almanac, 1 = valid, 0 = invalid
21 1 u8 common.health Satellite
bits health status for GPS: - bits 5-7:
NAV data health status. See IS-GPS-200H
Table 20-VII: NAV Data Health Indications.
- bits 0-4: Signal health status. See IS-
GPS-200H Table 20-VIII. Codes for Health
of SV Signal Components. Satellite health
status for GLO: See GLO ICD 5.1 table 5.1
for details - bit 0: C(n), ”unhealthy” flag
that is transmitted within non-immediate
data and indicates overall constellation sta-
tus at the moment of almanac uploading.
’0’ indicates malfunction of n-satellite. ’1’
indicates that n-satellite is operational. -
bit 1: Bn(ln), ’0’ indicates the satellite is
operational and suitable for navigation.
22 8 double rad lambda na Longitude of the first ascending node of the
orbit in PZ-90.02 coordinate system
30 8 double s t lambda na Time of the first ascending node passage
38 8 double rad i Value of inclination at instant of t lambda
46 8 double s/orbital pe- t Value of Draconian period at instant of
riod t lambda
54 8 double s/(orbital pe- t dot Rate of change of the Draconian period
riodˆ2)
62 8 double epsilon Eccentricity at instant of t lambda
70 8 double rad omega Argument of perigee at instant of t lambda
78 Total Payload Length

Table 6.6.50: MSG ALMANAC GLO 0x0073 message structure

Version 2.6.3, June 10, 2019 72


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P

)
51
6 GPS L2P

6.
6.
le
ab
12 BDS2 B1
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.21: Signal constellation, band and code
(common.sid.code) Table 6.6.51: values (common.sid.code[0:7])

Version 2.6.3, June 10, 2019 73


Swift Navigation Swift Navigation Binary Protocol

MSG GLO BIASES — 0x0075 — 117

The GLONASS L1/L2 Code-Phase biases allows to perform GPS+GLONASS integer ambiguity resolu-
tion for baselines with mixed receiver types (e.g. receiver of different manufacturers)

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 boolean mask GLONASS FDMA signals mask
1 2 s16 m * 0.02 l1ca bias GLONASS L1 C/A Code-Phase Bias
3 2 s16 m * 0.02 l1p bias GLONASS L1 P Code-Phase Bias
5 2 s16 m * 0.02 l2ca bias GLONASS L2 C/A Code-Phase Bias
7 2 s16 m * 0.02 l2p bias GLONASS L2 P Code-Phase Bias
9 Total Payload Length

Table 6.6.52: MSG GLO BIASES 0x0075 message structure

Version 2.6.3, June 10, 2019 74


Swift Navigation Swift Navigation Binary Protocol

MSG SV AZ EL — 0x0097 — 151

Azimuth and elevation angles of all the visible satellites that the device does have ephemeris or almanac
for.

Offset Size (bytes) Format Units Name Description


(bytes)
4N + 0 1 u8 Constellation-specific satellite identifier.
azel[N].sid.sat
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
4N + 1 1 u8 Signal constellation, band and code
azel[N].sid.code
4N + 2 1 u8 deg * 2 azel[N].az Azimuth angle (range 0..179)
4N + 3 1 s8 deg azel[N].el Elevation angle (range -90..90)
4N Total Payload Length

Table 6.6.53: MSG SV AZ EL 0x0097 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
)
54

6 GPS L2P
6.
6.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.22: Signal constellation, band and code
(sid.code) Table 6.6.54: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 75


Swift Navigation Swift Navigation Binary Protocol

MSG OSR — 0x0640 — 1600

The OSR message contains network corrections in an observation-like format

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms header.t.tow Milliseconds since start of GPS week
4 4 s32 ns Nanosecond residual of millisecond-rounded
header.t.ns residual
TOW (ranges from -500000 to 500000)
8 2 u16 week header.t.wn GPS week number
10 1 u8 header.n obs Total number of observations. First nibble is
the size of the sequence (n), second nibble
is the zero-indexed counter (ith packet of
n)
19N + 11 4 u32 2 cm obs[N].P Pseudorange observation
19N + 15 4 s32 cycles obs[N].L.i Carrier phase whole cycles
19N + 19 1 u8 cycles / 256 obs[N].L.f Carrier phase fractional part
19N + 20 1 u8 obs[N].lock Lock timer. This value gives an indication
of the time for which a signal has main-
tained continuous phase lock. Whenever a
signal has lost and regained lock, this value
is reset to zero. It is encoded according to
DF402 from the RTCM 10403.2 Amend-
ment 2 specification. Valid values range
from 0 to 15 and the most significant nibble
is reserved for future use.
19N + 21 1 u8 obs[N].flags Correction flags.
19N + 22 1 u8 obs[N].sid.satConstellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or the
Slot ID in [1,28]
19N + 23 1 u8 Signal constellation, band and code
obs[N].sid.code
19N + 24 2 u16 5 mm Slant ionospheric correction standard devia-
obs[N].iono std
tion
19N + 26 2 u16 5 mm Slant tropospheric correction standard devi-
obs[N].tropo std
ation
19N + 28 2 u16 5 mm Orbit/clock/bias correction projected on
obs[N].range std
range standard deviation
19N + 11 Total Payload Length

Table 6.6.55: MSG OSR 0x0640 message structure

Version 2.6.3, June 10, 2019 76


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 Do not use signal
1 Valid signal

Table 6.6.56: Correction validity values (flags[0])

)
56
6. 7)
le 6.5
6.
ab 6. )
(Tble .58
ity Ta .6
lid ( e 6
Value Description

va ag bl
n fl a
io g (T
ct in g
re fix fla 0 Partial fixing unavailable
1 Partial fixing available
C rtia ing
x
or l
Pall fi
Fu

Table 6.6.57: Partial fixing flag values (flags[1])


2 1 0

Field 6.6.23: Correction flags. (flags)


Value Description
0 Full fixing unavailable
1 Full fixing available

Table 6.6.58: Full fixing flag values (flags[2])

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
9)

6 GPS L2P
6 .5
6.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 6.6.24: Signal constellation, band and code
(sid.code) Table 6.6.59: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 77


Swift Navigation Swift Navigation Binary Protocol

6.7 Settings
Messages for reading, writing, and discovering device settings. Settings with a ”string” field have multiple
values in this field delimited with a null character (the c style null terminator). For instance, when querying
the ’firmware version’ setting in the ’system info’ section, the following array of characters needs to
be sent for the string field in MSG SETTINGS READ: ”system info\0firmware version\0”, where the
delimiting null characters are specified with the escape sequence ’\0’ and all quotation marks should be
omitted.
In the message descriptions below, the generic strings SECTION SETTING and SETTING are used
to refer to the two strings that comprise the identifier of an individual setting.In firmware version example
above, SECTION SETTING is the ’system info’, and the SETTING portion is ’firmware version’.
See the ”Software Settings Manual” on support.swiftnav.com for detailed documentation about all
settings and sections available for each Swift firmware version. Settings manuals are available for each
firmware version at the following link: Piksi Multi Specifications. The latest settings document is also
available at the following link: Latest settings document . See lastly settings.py , the open source python
command line utility for reading, writing, and saving settings in the piksi tools repository on github as a
helpful reference and example.

MSG SETTINGS SAVE — 0x00A1 — 161

The save settings message persists the device’s current settings configuration to its onboard flash memory
file system.

Offset Size (bytes) Format Units Name Description


(bytes)

0 Total Payload Length

Table 6.7.1: MSG SETTINGS SAVE 0x00A1 message structure

Version 2.6.3, June 10, 2019 78


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS WRITE — 0x00A0 — 160

The setting message writes the device configuration for a particular setting via A NULL-terminated and
NULL-delimited string with contents ”SECTION SETTING\0SETTING\0VALUE\0” where the ’\0’
escape sequence denotes the NULL character and where quotation marks are omitted. A device will only
process to this message when it is received from sender ID 0x42. An example string that could be sent
to a device is ”solution\0soln freq\010\0”.

Offset Size (bytes) Format Units Name Description


(bytes)
0 N string setting A NULL-terminated and NULL-
delimited string with contents ”SEC-
TION SETTING\0SETTING\0VALUE\0”
N Total Payload Length

Table 6.7.2: MSG SETTINGS WRITE 0x00A0 message structure

Version 2.6.3, June 10, 2019 79


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS WRITE RESP — 0x00AF — 175

Return the status of a write request with the new value of the setting. If the requested value is rejected,
the current value will be returned. The string field is a NULL-terminated and NULL-delimited string with
contents ”SECTION SETTING\0SETTING\0VALUE\0” where the ’\0’ escape sequence denotes the
NULL character and where quotation marks are omitted. An example string that could be sent from
device is ”solution\0soln freq\010\0”.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 status Write status
1 N string setting A NULL-terminated and delim-
ited string with contents ”SEC-
TION SETTING\0SETTING\0VALUE\0”
N +1 Total Payload Length

Table 6.7.3: MSG SETTINGS WRITE RESP 0x00AF message structure

Value Description
0 Accepted; value updated
4)
7.

1 Rejected; value unparsable or out-of-range


6.
le

2 Rejected; requested setting does not exist


ab
(T

3 Rejected; setting name could not be parsed


us
at

4 Rejected; setting is read only


st
e
rit

5 Rejected; modification is temporarily disabled


W

10 6 Rejected; unspecified error

Field 6.7.1: Write status (status) Table 6.7.4: Write status values (status[0:1])

Version 2.6.3, June 10, 2019 80


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS READ REQ — 0x00A4 — 164

The setting message that reads the device configuration. The string field is a NULL-terminated and
NULL-delimited string with contents ”SECTION SETTING\0SETTING\0” where the ’\0’ escape se-
quence denotes the NULL character and where quotation marks are omitted. An example string that
could be sent to a device is ”solution\0soln freq\0”. A device will only respond to this message when it is
received from sender ID 0x42. A device should respond with a MSG SETTINGS READ RESP message
(msg id 0x00A5).

Offset Size (bytes) Format Units Name Description


(bytes)
0 N string setting A NULL-terminated and NULL-
delimited string with contents ”SEC-
TION SETTING\0SETTING\0”
N Total Payload Length

Table 6.7.5: MSG SETTINGS READ REQ 0x00A4 message structure

Version 2.6.3, June 10, 2019 81


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS READ RESP — 0x00A5 — 165

The setting message wich which the device responds after a MSG SETTING READ REQ is sent to de-
vice. The string field is a NULL-terminated and NULL-delimited string with contents ”SECTION SETTING\0SET
where the ’\0’ escape sequence denotes the NULL character and where quotation marks are omitted.
An example string that could be sent from device is ”solution\0soln freq\010\0”.

Offset Size (bytes) Format Units Name Description


(bytes)
0 N string setting A NULL-terminated and NULL-
delimited string with contents ”SEC-
TION SETTING\0SETTING\0VALUE\0”

N Total Payload Length

Table 6.7.6: MSG SETTINGS READ RESP 0x00A5 message structure

Version 2.6.3, June 10, 2019 82


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS READ BY INDEX REQ — 0x00A2 — 162

The settings message for iterating through the settings values. A device will respond to this message
with a ”MSG SETTINGS READ BY INDEX RESP”.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 index An index into the device settings, with values
ranging from 0 to length(settings)
2 Total Payload Length

Table 6.7.7: MSG SETTINGS READ BY INDEX REQ 0x00A2 message structure

Version 2.6.3, June 10, 2019 83


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS READ BY INDEX RESP — 0x00A7 — 167

The settings message that reports the value of a setting at an index.


In the string field, it reports NULL-terminated and delimited string with contents ”SECTION SETTING\0SETT
where the ’\0’ escape sequence denotes the NULL character and where quotation marks are omitted.
The FORMAT TYPE field is optional and denotes possible string values of the setting as a hint to the
user. If included, the format type portion of the string has the format ”enum:value1,value2,value3”. An
example string that could be sent from the device is ”simulator\0enabled\0True\0enum:True,False\0”

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 index An index into the device settings, with values
ranging from 0 to length(settings)
2 N string setting A NULL-terminated and delim-
ited string with contents ”SEC-
TION SETTING\0SETTING\0VALUE\0FORMAT TY
N +2 Total Payload Length

Table 6.7.8: MSG SETTINGS READ BY INDEX RESP 0x00A7 message structure

Version 2.6.3, June 10, 2019 84


Swift Navigation Swift Navigation Binary Protocol

MSG SETTINGS READ BY INDEX DONE — 0x00A6 — 166

The settings message for indicating end of the settings values.

Offset Size (bytes) Format Units Name Description


(bytes)

0 Total Payload Length

Table 6.7.9: MSG SETTINGS READ BY INDEX DONE 0x00A6 message structure

Version 2.6.3, June 10, 2019 85


Swift Navigation Swift Navigation Binary Protocol

6.8 System
Standardized system messages from Swift Navigation devices.

MSG STARTUP — 0xFF00 — 65280

The system start-up message is sent once on system start-up. It notifies the host or other attached
devices that the system has started and is now ready to respond to commands or configuration requests.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 cause Cause of startup
1 1 u8 startup type Startup type
2 2 u16 reserved Reserved
4 Total Payload Length

Table 6.8.1: MSG STARTUP 0xFF00 message structure


2)
8.
6.
le
ab
(T
up

Value Description
rt
s ta
of

0 Power on
se
au

1 Software reset
C

8 0 2 Watchdog reset

Field 6.8.1: Cause of startup (cause) Table 6.8.2: Cause of startup values (cause[0:8])

Value Description
3)
8.
6.

0 Cold start
le
ab
(T

1 Warm start
8 0 2 Hot start

Field 6.8.2: Startup type (startup type) Table 6.8.3: values (startup type[0:8])

Version 2.6.3, June 10, 2019 86


Swift Navigation Swift Navigation Binary Protocol

MSG DGNSS STATUS — 0xFF02 — 65282

This message provides information about the receipt of Differential corrections. It is expected to be sent
with each receipt of a complete corrections packet.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 flags Status flags
1 2 u16 deci-seconds latency Latency of observation receipt
3 1 u8 num signals Number of signals from base station
4 N string source Corrections source string
N +4 Total Payload Length

Table 6.8.4: MSG DGNSS STATUS 0xFF02 message structure


5)
8.
6.
le
ab
(T
e

Value Description
yp
lt
ia
nt
d

0 Invalid
ve

re
er

e
iff

1 Code Difference
es

D
R

7 4 3 0 2 RTK

Field 6.8.3: Status flags (flags) Table 6.8.5: Differential type values (flags[0:3])

Version 2.6.3, June 10, 2019 87


Swift Navigation Swift Navigation Binary Protocol

MSG HEARTBEAT — 0xFFFF — 65535

The heartbeat message is sent periodically to inform the host or other attached devices that the system
is running. It is used to monitor system malfunctions. It also contains status flags that indicate to the
host the status of the system and whether it is operating correctly. Currently, the expected heartbeat
interval is 1 sec.
The system error flag is used to indicate that an error has occurred in the system. To determine the
source of the error, the remaining error flags should be inspected.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 flags Status flags
4 Total Payload Length

Table 6.8.6: MSG HEARTBEAT 0xFFFF message structure

Version 2.6.3, June 10, 2019 88


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 System Healthy
1 An error has occurred

Table 6.8.7: System Error Flag values (flags[0])

Value Description
0 System Healthy
1 An IO error has occurred
10 1)

Table 6.8.8: IO Error values (flags[1])


)
8. .1
6. .8

r
be

be
le 6

7)
ab ble

nu

nu

8.
)
(T a

(T) .8.9
t (T

6.
n

n
io

io

le
ag .8 6
Value Description
or t

rs

rs
sh en

ab
Fl .8 le
ve

ve
a res

r 6 b
ro le Ta
ol

ol
nn p

0 System Healthy
oc

oc

Er b (
te na

Ta or
ot

ot
an en

em ( rr
pr

pr

1 An error has occurred in the SwiftNAP


al nt

st or E
or

or
rn a

Sy Er AP
aj

in
d

Sw d
te nal

ve

ve
m

IO ftN
r
Exter

er

er
P

Table 6.8.9: SwiftNAP Error values (flags[2])


es

es
SB

SB
Ex

31 30 29 24 23 16 15 8 7 3 2 1 0

Field 6.8.4: Status flags (flags) Value Description


0 No short detected
1 Short detected

Table 6.8.10: External antenna short values (flags[30])

Value Description
0 No external antenna detected
1 External antenna is present

Table 6.8.11: External antenna present values (flags[31])

Version 2.6.3, June 10, 2019 89


Swift Navigation Swift Navigation Binary Protocol

MSG INS STATUS — 0xFF03 — 65283

The INS status message describes the state of the operation and initialization of the inertial navigation
system.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 flags Status flags
4 Total Payload Length

Table 6.8.12: MSG INS STATUS 0xFF03 message structure

Value Description
0 Awaiting initialization
1 Dynamically aligning
2 Ready
3 GNSS Outage exceeds max duration

Table 6.8.13: Mode values (flags[0:2])


13 )
)
8. 14
ab ble 15
6. .8.
(T Ta .8.

)
6
6

Value Description
od Fix ble
Ta

le
(
N or (

0 No GNSS fix available


ed

r
Er
rv

SS

1 GNSS fix
e
e

S
es

IN

M
G
R

31 8 7 4 3 2 0
Table 6.8.14: GNSS Fix values (flags[3])
Field 6.8.5: Status flags (flags)
Value Description
0 Reserved
1 IMU Data Error
2 INS License Error
3 IMU Calibration Data Error

Table 6.8.15: INS Error values (flags[4:7])

Version 2.6.3, June 10, 2019 90


Swift Navigation Swift Navigation Binary Protocol

7 Draft Message Definitions


7.1 Acquisition
Satellite acquisition messages from the device.

MSG ACQ RESULT — 0x002F — 47

This message describes the results from an attempted GPS signal acquisition search for a satellite PRN
over a code phase/carrier frequency range. It contains the parameters of the point in the acquisition
search space with the best carrier-to-noise (CN/0) ratio.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 float dB Hz cn0 CN/0 of best point
4 4 float chips cp Code phase of best point
8 4 float hz cf Carrier frequency of best point
12 1 u8 sid.sat Constellation-specific satellite identifier. This
field for Glonass can either be (100+FCN)
where FCN is in [-7,+6] or the Slot ID in
[1,28]
13 1 u8 sid.code Signal constellation, band and code
14 Total Payload Length

Table 7.1.1: MSG ACQ RESULT 0x002F message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
2)

12 BDS2 B1
1.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.1.1: Signal constellation, band and code (sid.code) Table 7.1.2: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 91


Swift Navigation Swift Navigation Binary Protocol

MSG ACQ SV PROFILE — 0x002E — 46

The message describes all SV profiles during acquisition time. The message is used to debug and measure
the performance.

Offset Size Format Units Name Description


(bytes) (bytes)
33N + 0 1 u8 acq sv profile[N].job type SV search job type (deep, fallback,
etc)
33N + 1 1 u8 acq sv profile[N].status Acquisition status 1 is Success, 0 is
Failure
33N + 2 2 u16 dB-Hz*10 acq sv profile[N].cn0 CN0 value. Only valid if status is
’1’
33N + 4 1 u8 ms acq sv profile[N].int time Acquisition integration time
33N + 5 1 u8 acq sv profile[N].sid.sat Constellation-specific satellite iden-
tifier. This field for Glonass can
either be (100+FCN) where FCN
is in [-7,+6] or the Slot ID in
[1,28]
33N + 6 1 u8 acq sv profile[N].sid.code Signal constellation, band and code
33N + 7 2 u16 Hz acq sv profile[N].bin width Acq frequency bin width
33N + 9 4 u32 ms acq sv profile[N].timestamp Timestamp of the job complete
event
33N + 13 4 u32 us acq sv profile[N].time spent Time spent to search for sid.code
33N + 17 4 s32 Hz acq sv profile[N].cf min Doppler range lowest frequency
33N + 21 4 s32 Hz acq sv profile[N].cf max Doppler range highest frequency
33N + 25 4 s32 Hz acq sv profile[N].cf Doppler value of detected peak.
Only valid if status is ’1’
33N + 29 4 u32 chips*10 acq sv profile[N].cp Codephase of detected peak. Only
valid if status is ’1’
33N Total Payload Length

Table 7.1.3: MSG ACQ SV PROFILE 0x002E message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
4)

6 GPS L2P
1.
7.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 7.1.2: Signal constellation, band and code
(acq sv profile[N].sid.code) Table 7.1.4: values (acq sv profile[N].sid.code[0:7])

Version 2.6.3, June 10, 2019 92


Swift Navigation Swift Navigation Binary Protocol

7.2 File IO
Messages for using device’s onboard flash filesystem functionality. This allows data to be stored per-
sistently in the device’s program flash with wear-levelling using a simple filesystem interface. The file
system interface (CFS) defines an abstract API for reading directories and for reading and writing files.
Note that some of these messages share the same message type ID for both the host request and the
device response.

MSG FILEIO READ REQ — 0x00A8 — 168

The file read message reads a certain length (up to 255 bytes) from a given offset into a file, and returns
the data in a MSG FILEIO READ RESP message where the message length field indicates how many
bytes were succesfully read.The sequence number in the request will be returned in the response. If the
message is invalid, a followup MSG PRINT message will print ”Invalid fileio read message”. A device
will only respond to this message when it is received from sender ID 0x42.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 sequence Read sequence number
4 4 u32 bytes offset File offset
8 1 u8 bytes chunk size Chunk size to read
9 N string filename Name of the file to read from
N +9 Total Payload Length

Table 7.2.1: MSG FILEIO READ REQ 0x00A8 message structure

Version 2.6.3, June 10, 2019 93


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO READ RESP — 0x00A3 — 163

The file read message reads a certain length (up to 255 bytes) from a given offset into a file, and returns
the data in a message where the message length field indicates how many bytes were succesfully read.
The sequence number in the response is preserved from the request.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Read sequence number
4 N u8[N] contents Contents of read file
N +4 Total Payload Length

Table 7.2.2: MSG FILEIO READ RESP 0x00A3 message structure

Version 2.6.3, June 10, 2019 94


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO READ DIR REQ — 0x00A9 — 169

The read directory message lists the files in a directory on the device’s onboard flash file sys-
tem. The offset parameter can be used to skip the first n elements of the file list. Returns a
MSG FILEIO READ DIR RESP message containing the directory listings as a NULL delimited list. The
listing is chunked over multiple SBP packets. The sequence number in the request will be returned in the
response. If message is invalid, a followup MSG PRINT message will print ”Invalid fileio read message”.
A device will only respond to this message when it is received from sender ID 0x42.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Read sequence number
4 4 u32 offset The offset to skip the first n elements of the
file list
8 N string dirname Name of the directory to list
N +8 Total Payload Length

Table 7.2.3: MSG FILEIO READ DIR REQ 0x00A9 message structure

Version 2.6.3, June 10, 2019 95


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO READ DIR RESP — 0x00AA — 170

The read directory message lists the files in a directory on the device’s onboard flash file system. Message
contains the directory listings as a NULL delimited list. The listing is chunked over multiple SBP packets
and the end of the list is identified by an entry containing just the character 0xFF. The sequence number
in the response is preserved from the request.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Read sequence number
4 N u8[N] contents Contents of read directory
N +4 Total Payload Length

Table 7.2.4: MSG FILEIO READ DIR RESP 0x00AA message structure

Version 2.6.3, June 10, 2019 96


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO REMOVE — 0x00AC — 172

The file remove message deletes a file from the file system. If the message is invalid, a followup
MSG PRINT message will print ”Invalid fileio remove message”. A device will only process this message
when it is received from sender ID 0x42.

Offset (bytes) Size (bytes) Format Units Name Description


0 N string filename Name of the file to delete
N Total Payload Length

Table 7.2.5: MSG FILEIO REMOVE 0x00AC message structure

Version 2.6.3, June 10, 2019 97


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO WRITE REQ — 0x00AD — 173

The file write message writes a certain length (up to 255 bytes) of data to a file at a given offset.
Returns a copy of the original MSG FILEIO WRITE RESP message to check integrity of the write.
The sequence number in the request will be returned in the response. If message is invalid, a followup
MSG PRINT message will print ”Invalid fileio write message”. A device will only process this message
when it is received from sender ID 0x42.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Write sequence number
4 4 u32 bytes offset Offset into the file at which to start writing in
bytes
8 N string filename Name of the file to write to
9 N u8[N] data Variable-length array of data to write
N +9 Total Payload Length

Table 7.2.6: MSG FILEIO WRITE REQ 0x00AD message structure

Version 2.6.3, June 10, 2019 98


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO WRITE RESP — 0x00AB — 171

The file write message writes a certain length (up to 255 bytes) of data to a file at a given offset. The
message is a copy of the original MSG FILEIO WRITE REQ message to check integrity of the write.
The sequence number in the response is preserved from the request.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Write sequence number
4 Total Payload Length

Table 7.2.7: MSG FILEIO WRITE RESP 0x00AB message structure

Version 2.6.3, June 10, 2019 99


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO CONFIG REQ — 0x1001 — 4097

Requests advice on the optimal configuration for a FileIO transfer. Newer version of FileIO can support
greater throughput by supporting a large window of FileIO data that can be in-flight during read or write
operations.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Advice sequence number
4 Total Payload Length

Table 7.2.8: MSG FILEIO CONFIG REQ 0x1001 message structure

Version 2.6.3, June 10, 2019 100


Swift Navigation Swift Navigation Binary Protocol

MSG FILEIO CONFIG RESP — 0x1002 — 4098

The advice on the optimal configuration for a FileIO transfer. Newer version of FileIO can support
greater throughput by supporting a large window of FileIO data that can be in-flight during read or write
operations.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 sequence Advice sequence number
4 4 u32 window size The number of SBP packets in the data
in-flight window
8 4 u32 batch size The number of SBP packets sent in one
PDU
12 4 u32 fileio version The version of FileIO that is supported
16 Total Payload Length

Table 7.2.9: MSG FILEIO CONFIG RESP 0x1002 message structure

Version 2.6.3, June 10, 2019 101


Swift Navigation Swift Navigation Binary Protocol

7.3 Linux
Linux state monitoring.

MSG LINUX CPU STATE — 0x7F00 — 32512

This message indicates the process state of the top 10 heaviest consumers of CPU on the system.

Offset (bytes) Size (bytes) Format Units Name Description


0 1 u8 index sequence of this status message, values from
0-9
1 2 u16 pid the PID of the process
3 1 u8 pcpu percent of cpu used, expressed as a fraction of
256
4 15 string tname fixed length string representing the thread name
19 N string cmdline the command line (as much as it fits in the
remaining packet)
N + 19 Total Payload Length

Table 7.3.1: MSG LINUX CPU STATE 0x7F00 message structure

Version 2.6.3, June 10, 2019 102


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX MEM STATE — 0x7F01 — 32513

This message indicates the process state of the top 10 heaviest consumers of memory on the system.

Offset (bytes) Size (bytes) Format Units Name Description


0 1 u8 index sequence of this status message, values from
0-9
1 2 u16 pid the PID of the process
3 1 u8 pmem percent of memory used, expressed as a fraction
of 256
4 15 string tname fixed length string representing the thread name
19 N string cmdline the command line (as much as it fits in the
remaining packet)
N + 19 Total Payload Length

Table 7.3.2: MSG LINUX MEM STATE 0x7F01 message structure

Version 2.6.3, June 10, 2019 103


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX SYS STATE — 0x7F02 — 32514

This presents a summary of CPU and memory utilization.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 mem total total system memory
2 1 u8 pcpu percent of total cpu currently utilized
3 1 u8 pmem percent of total memory currently utilized
4 2 u16 procs starting number of processes that started during
collection phase
6 2 u16 procs stopping number of processes that stopped during
collection phase
8 2 u16 pid count the count of processes on the system
10 Total Payload Length

Table 7.3.3: MSG LINUX SYS STATE 0x7F02 message structure

Version 2.6.3, June 10, 2019 104


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX PROCESS SOCKET COUNTS — 0x7F03 — 32515

Top 10 list of processes with high socket counts.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 index sequence of this status message, values
from 0-9
1 2 u16 pid the PID of the process in question
3 2 u16 socket count the number of sockets the process is using
5 2 u16 socket types A bitfield indicating the socket types used:
0x1 (tcp), 0x2 (udp), 0x4 (unix stream),
0x8 (unix dgram), 0x10 (netlink), and
0x8000 (unknown)
7 2 u16 socket states A bitfield indicating the socket states: 0x1
(established), 0x2 (syn-sent), 0x4 (syn-
recv), 0x8 (fin-wait-1), 0x10 (fin-wait-
2), 0x20 (time-wait), 0x40 (closed), 0x80
(close-wait), 0x100 (last-ack), 0x200 (lis-
ten), 0x400 (closing), 0x800 (uncon-
nected), and 0x8000 (unknown)
9 N string cmdline the command line of the process in question
N +9 Total Payload Length

Table 7.3.4: MSG LINUX PROCESS SOCKET COUNTS 0x7F03 message structure

Version 2.6.3, June 10, 2019 105


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX PROCESS SOCKET QUEUES — 0x7F04 — 32516

Top 10 list of sockets with deep queues.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 index sequence of this status message, values
from 0-9
1 2 u16 pid the PID of the process in question
3 2 u16 recv queued the total amount of receive data queued
for this process
5 2 u16 send queued the total amount of send data queued for
this process
7 2 u16 socket types A bitfield indicating the socket types
used: 0x1 (tcp), 0x2 (udp), 0x4
(unix stream), 0x8 (unix dgram), 0x10
(netlink), and 0x8000 (unknown)
9 2 u16 socket states A bitfield indicating the socket states:
0x1 (established), 0x2 (syn-sent), 0x4
(syn-recv), 0x8 (fin-wait-1), 0x10
(fin-wait-2), 0x20 (time-wait), 0x40
(closed), 0x80 (close-wait), 0x100
(last-ack), 0x200 (listen), 0x400 (clos-
ing), 0x800 (unconnected), and 0x8000
(unknown)
11 64 string address of largest Address of the largest queue, remote or
local depending on the directionality of
the connection.
75 N string cmdline the command line of the process in ques-
tion
N + 75 Total Payload Length

Table 7.3.5: MSG LINUX PROCESS SOCKET QUEUES 0x7F04 message structure

Version 2.6.3, June 10, 2019 106


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX SOCKET USAGE — 0x7F05 — 32517

Summaries the socket usage across the system.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 avg queue depth average socket queue depths across all
sockets on the system
4 4 u32 max queue depth the max queue depth seen within the re-
porting period
8 32 u16[16] socket state counts A count for each socket type reported
in the ‘socket types reported‘ field, the
first entry corresponds to the first en-
abled bit in ‘types reported‘.
40 32 u16[16] socket type counts A count for each socket type reported
in the ‘socket types reported‘ field, the
first entry corresponds to the first en-
abled bit in ‘types reported‘.
72 Total Payload Length

Table 7.3.6: MSG LINUX SOCKET USAGE 0x7F05 message structure

Version 2.6.3, June 10, 2019 107


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX PROCESS FD COUNT — 0x7F06 — 32518

Top 10 list of processes with a large number of open file descriptors.

Offset (bytes) Size (bytes) Format Units Name Description


0 1 u8 index sequence of this status message, values from
0-9
1 2 u16 pid the PID of the process in question
3 2 u16 fd count a count of the number of file descriptors
opened by the process
5 N string cmdline the command line of the process in question
N +5 Total Payload Length

Table 7.3.7: MSG LINUX PROCESS FD COUNT 0x7F06 message structure

Version 2.6.3, June 10, 2019 108


Swift Navigation Swift Navigation Binary Protocol

MSG LINUX PROCESS FD SUMMARY — 0x7F07 — 32519

Summary of open file descriptors on the system.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 sys fd count count of total FDs open on the system
4 N string most opened A null delimited list of strings which
alternates between a string represen-
tation of the process count and the
file name whose count it being re-
ported. That is, in C string syntax
”32\0/var/log/syslog\012\0/tmp/foo\0”
with the end of the list being 2 NULL
terminators in a row.
N +4 Total Payload Length

Table 7.3.8: MSG LINUX PROCESS FD SUMMARY 0x7F07 message structure

Version 2.6.3, June 10, 2019 109


Swift Navigation Swift Navigation Binary Protocol

7.4 Orientation
Orientation Messages

MSG BASELINE HEADING — 0x020F — 527

This message reports the baseline heading pointing from the base station to the rover relative to True
North. The full GPS time is given by the preceding MSG GPS TIME with the matching time-of-week
(tow). It is intended that time-matched RTK mode is used when the base station is moving.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 ms tow GPS Time of Week
4 4 u32 mdeg heading Heading
8 1 u8 n sats Number of satellites used in solution
9 1 u8 flags Status flags
10 Total Payload Length

Table 7.4.1: MSG BASELINE HEADING 0x020F message structure

Value Description
2)
4.
7.

0 Invalid
le
ab

1 Reserved
(T
e
d

2 Differential GNSS (DGNSS)


od
ve

m
er

3 Float RTK
es

x
Fi
R

7 3 2 0 4 Fixed RTK

Field 7.4.1: Status flags (flags) Table 7.4.2: Fix mode values (flags[0:2])

Version 2.6.3, June 10, 2019 110


Swift Navigation Swift Navigation Binary Protocol

MSG ORIENT QUAT — 0x0220 — 544

This message reports the quaternion vector describing the vehicle body frame’s orientation with respect
to a local-level NED frame. The components of the vector should sum to a unit vector assuming that the
LSB of each component as a value of 2ˆ-31. This message will only be available in future INS versions
of Swift Products and is not produced by Piksi Multi or Duro.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 2ˆ-31 w Real component
8 4 s32 2ˆ-31 x 1st imaginary component
12 4 s32 2ˆ-31 y 2nd imaginary component
16 4 s32 2ˆ-31 z 3rd imaginary component
20 4 float N/A w accuracy Estimated standard deviation of w
24 4 float N/A x accuracy Estimated standard deviation of x
28 4 float N/A y accuracy Estimated standard deviation of y
32 4 float N/A z accuracy Estimated standard deviation of z
36 1 u8 flags Status flags
37 Total Payload Length

Table 7.4.3: MSG ORIENT QUAT 0x0220 message structure


4)
4.
7.
le
ab
(T
e
od
m
n
io
at

Value Description
ig
d

av
ve

N
er

0 Invalid
es

IN
R

7 3 2 0 1 Valid

Field 7.4.2: Status flags (flags) Table 7.4.4: INS Navigation mode values (flags[0:2])

Version 2.6.3, June 10, 2019 111


Swift Navigation Swift Navigation Binary Protocol

MSG ORIENT EULER — 0x0221 — 545

This message reports the yaw, pitch, and roll angles of the vehicle body frame. The rotations should
applied intrinsically in the order yaw, pitch, and roll in order to rotate the from a frame aligned with
the local-level NED frame to the vehicle body frame. This message will only be available in future INS
versions of Swift Products and is not produced by Piksi Multi or Duro.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 ms tow GPS Time of Week
4 4 s32 microdegrees roll rotation about the forward axis of the vehi-
cle
8 4 s32 microdegrees pitch rotation about the rightward axis of the ve-
hicle
12 4 s32 microdegrees yaw rotation about the downward axis of the ve-
hicle
16 4 float degrees roll accuracy Estimated standard deviation of roll
20 4 float degrees pitch accuracy Estimated standard deviation of pitch
24 4 float degrees yaw accuracy Estimated standard deviation of yaw
28 1 u8 flags Status flags
29 Total Payload Length

Table 7.4.5: MSG ORIENT EULER 0x0221 message structure


6)
4.
7.
le
ab
(T
e
od
m
n
atio

Value Description
ig
ed

av
N
v
er

0 Invalid
es

IN
R

7 3 2 0 1 Valid

Field 7.4.3: Status flags (flags) Table 7.4.6: INS Navigation mode values (flags[0:2])

Version 2.6.3, June 10, 2019 112


Swift Navigation Swift Navigation Binary Protocol

MSG ANGULAR RATE — 0x0222 — 546

This message reports the orientation rates in the vehicle body frame. The values represent the measure-
ments a strapped down gyroscope would make and are not equivalent to the time derivative of the Euler
angles. The orientation and origin of the user frame is specified via device settings. By convention, the
vehicle x-axis is expected to be aligned with the forward direction, while the vehicle y-axis is expected
to be aligned with the right direction, and the vehicle z-axis should be aligned with the down direction.
This message will only be available in future INS versions of Swift Products and is not produced by Piksi
Multi or Duro.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 ms tow GPS Time of Week
4 4 s32 microdegrees/s x angular rate about x axis
8 4 s32 microdegrees/s y angular rate about y axis
12 4 s32 microdegrees/s z angular rate about z axis
16 1 u8 flags Status flags
17 Total Payload Length

Table 7.4.7: MSG ANGULAR RATE 0x0222 message structure


8)
4.
7.
le
ab
(T
e
od
m
n
io
at

Value Description
ig
d

av
ve

N
er

0 Invalid
es

IN
R

7 2 2 0 1 Valid

Field 7.4.4: Status flags (flags) Table 7.4.8: INS Navigation mode values (flags[0:2])

Version 2.6.3, June 10, 2019 113


Swift Navigation Swift Navigation Binary Protocol

7.5 Piksi
System health, configuration, and diagnostic messages specific to the Piksi L1 receiver, including a variety
of legacy messages that may no longer be used.

MSG ALMANAC — 0x0069 — 105

This is a legacy message for sending and loading a satellite alamanac onto the Piksi’s flash memory from
the host.

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.1: MSG ALMANAC 0x0069 message structure

Version 2.6.3, June 10, 2019 114


Swift Navigation Swift Navigation Binary Protocol

MSG SET TIME — 0x0068 — 104

This message sets up timing functionality using a coarse GPS time estimate sent by the host.

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.2: MSG SET TIME 0x0068 message structure

Version 2.6.3, June 10, 2019 115


Swift Navigation Swift Navigation Binary Protocol

MSG RESET — 0x00B6 — 182

This message from the host resets the Piksi back into the bootloader.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 flags Reset flags
4 Total Payload Length

Table 7.5.3: MSG RESET 0x00B6 message structure

)
.4
5
7.
le
ab
(T
.
gs
in
tt

Value Description
se
d

t
ve

ul
er

a
ef

0 Preserve existing settings.


es

D
R

31 1 0 1 Resore default settings.

Field 7.5.1: Reset flags (flags) Table 7.5.4: Default settings. values (flags[0])

Version 2.6.3, June 10, 2019 116


Swift Navigation Swift Navigation Binary Protocol

MSG RESET DEP — 0x00B2 — 178

This message from the host resets the Piksi back into the bootloader.

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.5: MSG RESET DEP 0x00B2 message structure

Version 2.6.3, June 10, 2019 117


Swift Navigation Swift Navigation Binary Protocol

MSG CW RESULTS — 0x00C0 — 192

This is an unused legacy message for result reporting from the CW interference channel on the SwiftNAP.
This message will be removed in a future release.

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.6: MSG CW RESULTS 0x00C0 message structure

Version 2.6.3, June 10, 2019 118


Swift Navigation Swift Navigation Binary Protocol

MSG CW START — 0x00C1 — 193

This is an unused legacy message from the host for starting the CW interference channel on the SwiftNAP.
This message will be removed in a future release.

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.7: MSG CW START 0x00C1 message structure

Version 2.6.3, June 10, 2019 119


Swift Navigation Swift Navigation Binary Protocol

MSG RESET FILTERS — 0x0022 — 34

This message resets either the DGNSS Kalman filters or Integer Ambiguity Resolution (IAR) process.

Offset (bytes) Size (bytes) Format Units Name Description


0 1 u8 filter Filter flags
1 Total Payload Length

Table 7.5.8: MSG RESET FILTERS 0x0022 message structure

9)
5.
7.
le
ab
(T
t
se
re
to
ss

Value Description
e
oc
pr
ed

0 DGNSS filter
or
v

r
er

lte

1 IAR process
es

Fi
R

7 2 10 2 Inertial filter

Field 7.5.2: Filter flags (filter) Table 7.5.9: Filter or process to reset values (filter[0:1])

Version 2.6.3, June 10, 2019 120


Swift Navigation Swift Navigation Binary Protocol

MSG INIT BASE DEP — 0x0023 — 35

Deprecated

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.10: MSG INIT BASE DEP 0x0023 message structure

Version 2.6.3, June 10, 2019 121


Swift Navigation Swift Navigation Binary Protocol

MSG THREAD STATE — 0x0017 — 23

The thread usage message from the device reports real-time operating system (RTOS) thread usage
statistics for the named thread. The reported percentage values must be normalized.

Offset Size (bytes) Format Units Name Description


(bytes)
0 20 string name Thread name (NULL terminated)
20 2 u16 cpu Percentage cpu use for this thread. Values
range from 0 - 1000 and needs to be renor-
malized to 100
22 4 u32 bytes stack free Free stack space for this thread
26 Total Payload Length

Table 7.5.11: MSG THREAD STATE 0x0017 message structure

Version 2.6.3, June 10, 2019 122


Swift Navigation Swift Navigation Binary Protocol

MSG UART STATE — 0x001D — 29

The UART message reports data latency and throughput of the UART channels providing SBP I/O.
On the default Piksi configuration, UARTs A and B are used for telemetry radios, but can also be host
access ports for embedded hosts, or other interfaces in future. The reported percentage values must
be normalized. Observations latency and period can be used to assess the health of the differential
corrections link. Latency provides the timeliness of received base observations while the period indicates
their likelihood of transmission.

Offset Size Format Units Name Description


(bytes) (bytes)
0 4 float kB/s uart a.tx throughput UART transmit throughput
4 4 float kB/s uart a.rx throughput UART receive throughput
8 2 u16 uart a.crc error count UART CRC error count
10 2 u16 uart a.io error count UART IO error count
12 1 u8 uart a.tx buffer level UART transmit buffer percentage
utilization (ranges from 0 to 255)
13 1 u8 uart a.rx buffer level UART receive buffer percentage uti-
lization (ranges from 0 to 255)
14 4 float kB/s uart b.tx throughput UART transmit throughput
18 4 float kB/s uart b.rx throughput UART receive throughput
22 2 u16 uart b.crc error count UART CRC error count
24 2 u16 uart b.io error count UART IO error count
26 1 u8 uart b.tx buffer level UART transmit buffer percentage
utilization (ranges from 0 to 255)
27 1 u8 uart b.rx buffer level UART receive buffer percentage uti-
lization (ranges from 0 to 255)
28 4 float kB/s uart ftdi.tx throughput UART transmit throughput
32 4 float kB/s uart ftdi.rx throughput UART receive throughput
36 2 u16 uart ftdi.crc error count UART CRC error count
38 2 u16 uart ftdi.io error count UART IO error count
40 1 u8 uart ftdi.tx buffer level UART transmit buffer percentage
utilization (ranges from 0 to 255)
41 1 u8 uart ftdi.rx buffer level UART receive buffer percentage uti-
lization (ranges from 0 to 255)
42 4 s32 ms latency.avg Average latency
46 4 s32 ms latency.lmin Minimum latency
50 4 s32 ms latency.lmax Maximum latency
54 4 s32 ms latency.current Smoothed estimate of the current la-
tency
58 4 s32 ms obs period.avg Average period
62 4 s32 ms obs period.pmin Minimum period
66 4 s32 ms obs period.pmax Maximum period
70 4 s32 ms obs period.current Smoothed estimate of the current
period
74 Total Payload Length

Table 7.5.12: MSG UART STATE 0x001D message structure

Version 2.6.3, June 10, 2019 123


Swift Navigation Swift Navigation Binary Protocol

MSG UART STATE DEPA — 0x0018 — 24

Deprecated

Offset Size Format Units Name Description


(bytes) (bytes)
0 4 float kB/s uart a.tx throughput UART transmit throughput
4 4 float kB/s uart a.rx throughput UART receive throughput
8 2 u16 uart a.crc error count UART CRC error count
10 2 u16 uart a.io error count UART IO error count
12 1 u8 uart a.tx buffer level UART transmit buffer percentage
utilization (ranges from 0 to 255)
13 1 u8 uart a.rx buffer level UART receive buffer percentage uti-
lization (ranges from 0 to 255)
14 4 float kB/s uart b.tx throughput UART transmit throughput
18 4 float kB/s uart b.rx throughput UART receive throughput
22 2 u16 uart b.crc error count UART CRC error count
24 2 u16 uart b.io error count UART IO error count
26 1 u8 uart b.tx buffer level UART transmit buffer percentage
utilization (ranges from 0 to 255)
27 1 u8 uart b.rx buffer level UART receive buffer percentage uti-
lization (ranges from 0 to 255)
28 4 float kB/s uart ftdi.tx throughput UART transmit throughput
32 4 float kB/s uart ftdi.rx throughput UART receive throughput
36 2 u16 uart ftdi.crc error count UART CRC error count
38 2 u16 uart ftdi.io error count UART IO error count
40 1 u8 uart ftdi.tx buffer level UART transmit buffer percentage
utilization (ranges from 0 to 255)
41 1 u8 uart ftdi.rx buffer level UART receive buffer percentage uti-
lization (ranges from 0 to 255)
42 4 s32 ms latency.avg Average latency
46 4 s32 ms latency.lmin Minimum latency
50 4 s32 ms latency.lmax Maximum latency
54 4 s32 ms latency.current Smoothed estimate of the current la-
tency
58 Total Payload Length

Table 7.5.13: MSG UART STATE DEPA 0x0018 message structure

Version 2.6.3, June 10, 2019 124


Swift Navigation Swift Navigation Binary Protocol

MSG IAR STATE — 0x0019 — 25

This message reports the state of the Integer Ambiguity Resolution (IAR) process, which resolves un-
known integer ambiguities from double-differenced carrier-phase measurements from satellite observa-
tions.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 num hyps Number of integer ambiguity hypotheses re-
maining
4 Total Payload Length

Table 7.5.14: MSG IAR STATE 0x0019 message structure

Version 2.6.3, June 10, 2019 125


Swift Navigation Swift Navigation Binary Protocol

MSG MASK SATELLITE — 0x002B — 43

This message allows setting a mask to prevent a particular satellite from being used in various Piksi
subsystems.

Offset (bytes) Size (bytes) Format Units Name Description


0 1 u8 mask Mask of systems that should ignore this satel-
lite.
1 1 u8 sid.sat Constellation-specific satellite identifier. This
field for Glonass can either be (100+FCN)
where FCN is in [-7,+6] or the Slot ID in
[1,28]
2 1 u8 sid.code Signal constellation, band and code
3 Total Payload Length

Table 7.5.15: MSG MASK SATELLITE 0x002B message structure

Value Description
)
16
7. 7)
5.

0 Enabled
e .1
bl .5
Ta e 7

1 Skip this satellite on future acquisitions


l ( bl
ne Ta
an (
ch els

Table 7.5.16: Acquisition channel values (mask[0])


n n
io an
sit ch
ui g
d

cq in
ve

A ck
er

a
es

Tr

Value Description
R

7 2 1 0
0 Enabled
Field 7.5.3: Mask of systems that should ignore this satellite. 1 Drop this PRN if currently tracking
(mask)
Table 7.5.17: Tracking channels values (mask[1])

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
)
18

12 BDS2 B1
5.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.5.4: Signal constellation, band and code (sid.code) Table 7.5.18: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 126


Swift Navigation Swift Navigation Binary Protocol

MSG DEVICE MONITOR — 0x00B5 — 181

This message contains temperature and voltage level measurements from the processor’s monitoring
system and the RF frontend die temperature if available.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 s16 V / 1000 dev vin Device V in
2 2 s16 V / 1000 cpu vint Processor V int
4 2 s16 V / 1000 cpu vaux Processor V aux
6 2 s16 degrees C / cpu temperature Processor temperature
100
8 2 s16 degrees C / fe temperature Frontend temperature (if available)
100
10 Total Payload Length

Table 7.5.19: MSG DEVICE MONITOR 0x00B5 message structure

Version 2.6.3, June 10, 2019 127


Swift Navigation Swift Navigation Binary Protocol

MSG COMMAND REQ — 0x00B8 — 184

Request the recipient to execute an command. Output will be sent in MSG LOG messages, and the exit
code will be returned with MSG COMMAND RESP.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Sequence number
4 N string command Command line to execute
N +4 Total Payload Length

Table 7.5.20: MSG COMMAND REQ 0x00B8 message structure

Version 2.6.3, June 10, 2019 128


Swift Navigation Swift Navigation Binary Protocol

MSG COMMAND RESP — 0x00B9 — 185

The response to MSG COMMAND REQ with the return code of the command. A return code of zero
indicates success.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Sequence number
4 4 s32 code Exit code
8 Total Payload Length

Table 7.5.21: MSG COMMAND RESP 0x00B9 message structure

Version 2.6.3, June 10, 2019 129


Swift Navigation Swift Navigation Binary Protocol

MSG COMMAND OUTPUT — 0x00BC — 188

Returns the standard output and standard error of the command requested by MSG COMMAND REQ.
The sequence number can be used to filter for filtering the correct command.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 sequence Sequence number
4 N string line Line of standard output or standard error
N +4 Total Payload Length

Table 7.5.22: MSG COMMAND OUTPUT 0x00BC message structure

Version 2.6.3, June 10, 2019 130


Swift Navigation Swift Navigation Binary Protocol

MSG NETWORK STATE REQ — 0x00BA — 186

Request state of Piksi network interfaces. Output will be sent in MSG NETWORK STATE RESP
messages

Offset (bytes) Size (bytes) Format Units Name Description

0 Total Payload Length

Table 7.5.23: MSG NETWORK STATE REQ 0x00BA message structure

Version 2.6.3, June 10, 2019 131


Swift Navigation Swift Navigation Binary Protocol

MSG NETWORK STATE RESP — 0x00BB — 187

The state of a network interface on the Piksi. Data is made to reflect output of ifaddrs struct returned
by getifaddrs in c.

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u8[4] ipv4 address IPv4 address (all zero when unavailable)
4 1 u8 ipv4 mask size IPv4 netmask CIDR notation
5 16 u8[16] ipv6 address IPv6 address (all zero when unavailable)
21 1 u8 ipv6 mask size IPv6 netmask CIDR notation
22 4 u32 rx bytes Number of Rx bytes
26 4 u32 tx bytes Number of Tx bytes
30 16 string interface name Interface Name
46 4 u32 flags Interface flags from SIOCGIFFLAGS
50 Total Payload Length

Table 7.5.24: MSG NETWORK STATE RESP 0x00BB message structure

Version 2.6.3, June 10, 2019 132


Swift Navigation Swift Navigation Binary Protocol

MSG NETWORK BANDWIDTH USAGE — 0x00BD — 189

The bandwidth usage, a list of usage by interface.

Offset Size Format Units Name Description


(bytes) (bytes)
40N + 0 8 u64 ms interfaces[N].duration Duration over which the measure-
ment was collected
40N + 8 8 u64 interfaces[N].total bytes Number of bytes handled in total
within period
40N + 16 4 u32 interfaces[N].rx bytes Number of bytes transmitted
within period
40N + 20 4 u32 interfaces[N].tx bytes Number of bytes received within
period
24 16 string interfaces[N].interface name Interface Name
40N Total Payload Length

Table 7.5.25: MSG NETWORK BANDWIDTH USAGE 0x00BD message structure

Version 2.6.3, June 10, 2019 133


Swift Navigation Swift Navigation Binary Protocol

MSG CELL MODEM STATUS — 0x00BE — 190

If a cell modem is present on a piksi device, this message will be send periodically to update the host on
the status of the modem and its various parameters.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 s8 dBm signal strength Received cell signal strength in dBm, zero
translates to unknown
1 4 float signal error rate BER as reported by the modem, zero
translates to unknown
5 N u8[N] reserved Unspecified data TBD for this schema
N +5 Total Payload Length

Table 7.5.26: MSG CELL MODEM STATUS 0x00BE message structure

Version 2.6.3, June 10, 2019 134


Swift Navigation Swift Navigation Binary Protocol

MSG SPECAN — 0x0051 — 81

Spectrum analyzer packet.

Offset Size (bytes) Format Units Name Description


(bytes)
0 2 u16 channel tag Channel ID
2 4 u32 ms t.tow Milliseconds since start of GPS week
6 4 s32 ns t.ns residual Nanosecond residual of millisecond-
rounded TOW (ranges from -500000 to
500000)
10 2 u16 week t.wn GPS week number
12 4 float MHz freq ref Reference frequency of this packet
16 4 float MHz freq step Frequency step of points in this packet
20 4 float dB amplitude ref Reference amplitude of this packet
24 4 float dB amplitude unit Amplitude unit value of points in this
packet
28 N u8[N] amplitude value Amplitude values (in the above units) of
points in this packet
N + 28 Total Payload Length

Table 7.5.27: MSG SPECAN 0x0051 message structure

Version 2.6.3, June 10, 2019 135


Swift Navigation Swift Navigation Binary Protocol

MSG FRONT END GAIN — 0x00BF — 191

This message describes the gain of each channel in the receiver frontend. Each gain is encoded as a
non-dimensional percentage relative to the maximum range possible for the gain stage of the frontend.
By convention, each gain array has 8 entries and the index of the array corresponding to the index of the
rf channel in the frontend. A gain of 127 percent encodes that rf channel is not present in the hardware.
A negative value implies an error for the particular gain stage as reported by the frontend.

Offset (bytes) Size (bytes) Format Units Name Description


0 8 s8[8] percent rf gain RF gain for each frontend channel
8 8 s8[8] percent if gain Intermediate frequency gain for each frontend
channel
16 Total Payload Length

Table 7.5.28: MSG FRONT END GAIN 0x00BF message structure

Version 2.6.3, June 10, 2019 136


Swift Navigation Swift Navigation Binary Protocol

7.6 Sbas
SBAS data

MSG SBAS RAW — 0x7777 — 30583

This message is sent once per second per SBAS satellite. ME checks the parity of the data block and
sends only blocks that pass the check.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 sid.sat Constellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or
the Slot ID in [1,28]
1 1 u8 sid.code Signal constellation, band and code
2 4 u32 ms tow GPS time-of-week at the start of the data
block.
6 1 u8 message type SBAS message type (0-63)
7 27 u8[27] data Raw SBAS data field of 212 bits (last byte
padded with zeros).
34 Total Payload Length

Table 7.6.1: MSG SBAS RAW 0x7777 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
2)

12 BDS2 B1
6.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.6.1: Signal constellation, band and code (sid.code) Table 7.6.2: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 137


Swift Navigation Swift Navigation Binary Protocol

7.7 Ssr
Precise State Space Representation (SSR) corrections format

MSG SSR ORBIT CLOCK — 0x05DD — 1501

The precise orbit and clock correction message is to be applied as a delta correction to broadcast
ephemeris and is typically an equivalent to the 1060 and 1066 RTCM message types

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s time.tow Seconds since start of GPS week
4 2 u16 week time.wn GPS week number
6 1 u8 sid.sat Constellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or
the Slot ID in [1,28]
7 1 u8 sid.code Signal constellation, band and code
8 1 u8 s update interval Update interval between consecutive cor-
rections
9 1 u8 iod ssr IOD of the SSR correction. A change of
Issue Of Data SSR is used to indicate a
change in the SSR generating configura-
tion
10 4 u32 iod Issue of broadcast ephemeris data or IOD-
CRC (Beidou)
14 4 s32 0.1 mm radial Orbit radial delta correction
18 4 s32 0.4 mm along Orbit along delta correction
22 4 s32 0.4 mm cross Orbit along delta correction
26 4 s32 0.001 mm/s dot radial Velocity of orbit radial delta correction
30 4 s32 0.004 mm/s dot along Velocity of orbit along delta correction
34 4 s32 0.004 mm/s dot cross Velocity of orbit cross delta correction
38 4 s32 0.1 mm c0 C0 polynomial coefficient for correction of
broadcast satellite clock
42 4 s32 0.001 mm/s c1 C1 polynomial coefficient for correction of
broadcast satellite clock
46 4 s32 0.00002 c2 C2 polynomial coefficient for correction of
mm/sˆ-2 broadcast satellite clock
50 Total Payload Length

Table 7.7.1: MSG SSR ORBIT CLOCK 0x05DD message structure

Version 2.6.3, June 10, 2019 138


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P

)
12 BDS2 B1
2
7.
7.
13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.7.1: Signal constellation, band and code (sid.code) Table 7.7.2: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 139


Swift Navigation Swift Navigation Binary Protocol

MSG SSR ORBIT CLOCK DEP A — 0x05DC — 1500

The precise orbit and clock correction message is to be applied as a delta correction to broadcast
ephemeris and is typically an equivalent to the 1060 and 1066 RTCM message types

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s time.tow Seconds since start of GPS week
4 2 u16 week time.wn GPS week number
6 1 u8 sid.sat Constellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or
the Slot ID in [1,28]
7 1 u8 sid.code Signal constellation, band and code
8 1 u8 s update interval Update interval between consecutive cor-
rections
9 1 u8 iod ssr IOD of the SSR correction. A change of
Issue Of Data SSR is used to indicate a
change in the SSR generating configura-
tion
10 1 u8 iod Issue of broadcast ephemeris data
11 4 s32 0.1 mm radial Orbit radial delta correction
15 4 s32 0.4 mm along Orbit along delta correction
19 4 s32 0.4 mm cross Orbit along delta correction
23 4 s32 0.001 mm/s dot radial Velocity of orbit radial delta correction
27 4 s32 0.004 mm/s dot along Velocity of orbit along delta correction
31 4 s32 0.004 mm/s dot cross Velocity of orbit cross delta correction
35 4 s32 0.1 mm c0 C0 polynomial coefficient for correction of
broadcast satellite clock
39 4 s32 0.001 mm/s c1 C1 polynomial coefficient for correction of
broadcast satellite clock
43 4 s32 0.00002 c2 C2 polynomial coefficient for correction of
mm/sˆ-2 broadcast satellite clock
47 Total Payload Length

Table 7.7.3: MSG SSR ORBIT CLOCK DEP A 0x05DC message structure

Version 2.6.3, June 10, 2019 140


Swift Navigation Swift Navigation Binary Protocol

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P

)
12 BDS2 B1
4
7.
7.
13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.7.2: Signal constellation, band and code (sid.code) Table 7.7.4: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 141


Swift Navigation Swift Navigation Binary Protocol

MSG SSR CODE BIASES — 0x05E1 — 1505

The precise code biases message is to be added to the pseudorange of the corresponding signal to get
corrected pseudorange. It is typically an equivalent to the 1059 and 1065 RTCM message types

Offset Size (bytes) Format Units Name Description


(bytes)
0 4 u32 s time.tow Seconds since start of GPS week
4 2 u16 week time.wn GPS week number
6 1 u8 sid.sat Constellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or
the Slot ID in [1,28]
7 1 u8 sid.code Signal constellation, band and code
8 1 u8 s update interval Update interval between consecutive cor-
rections
9 1 u8 iod ssr IOD of the SSR correction. A change of
Issue Of Data SSR is used to indicate a
change in the SSR generating configura-
tion
3N + 10 1 u8 biases[N].code Signal constellation, band and code
3N + 11 2 s16 0.01 m biases[N].value Code bias value
3N + 10 Total Payload Length

Table 7.7.5: MSG SSR CODE BIASES 0x05E1 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
6)

12 BDS2 B1
7.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.7.3: Signal constellation, band and code (sid.code) Table 7.7.6: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 142


Swift Navigation Swift Navigation Binary Protocol

MSG SSR PHASE BIASES — 0x05E6 — 1510

The precise phase biases message contains the biases to be added to the carrier phase of the corresponding
signal to get corrected carrier phase measurement, as well as the satellite yaw angle to be applied to
compute the phase wind-up correction. It is typically an equivalent to the 1265 RTCM message types

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
8)

12 BDS2 B1
7.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.7.4: Signal constellation, band and code (sid.code) Table 7.7.8: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 143


Swift Navigation Swift Navigation Binary Protocol

Offset Size Format Units Name Description


(bytes) (bytes)
0 4 u32 s time.tow Seconds since start of GPS
week
4 2 u16 week time.wn GPS week number
6 1 u8 sid.sat Constellation-specific satel-
lite identifier. This field
for Glonass can either be
(100+FCN) where FCN is
in [-7,+6] or the Slot ID in
[1,28]
7 1 u8 sid.code Signal constellation, band and
code
8 1 u8 s update interval Update interval between con-
secutive corrections
9 1 u8 iod ssr IOD of the SSR correction. A
change of Issue Of Data SSR
is used to indicate a change
in the SSR generating con-
figuration
10 1 u8 dispersive bias Indicator for the dispersive
phase biases property.
11 1 u8 mw consistency Consistency indicator for
Melbourne-Wubbena linear
combinations
12 2 u16 1 / 256 yaw Satellite yaw angle
semi-
circle
14 1 s8 1 / 8192 yaw rate Satellite yaw angle rate
semi-
circle /
s
8N + 15 1 u8 biases[N].code Signal constellation, band and
code
8N + 16 1 u8 biases[N].integer indicator Indicator for integer property
8N + 17 1 u8 biases[N].widelane integer indicator Indicator for two groups of
Wide-Lane(s) integer prop-
erty
8N + 18 1 u8 biases[N].discontinuity counter Signal phase discontinuity
counter. Increased for every
discontinuity in phase.
8N + 19 4 s32 0.1 mm biases[N].bias Phase bias for specified signal
8N + 15 Total Payload Length

Table 7.7.7: MSG SSR PHASE BIASES 0x05E6 message structure

Version 2.6.3, June 10, 2019 144


Swift Navigation Swift Navigation Binary Protocol

MSG SSR STEC CORRECTION — 0x05EB — 1515

The STEC per space vehicle, given as polynomial approximation for a given grid. This should be combined
with SSR-GriddedCorrection message to get the state space representation of the atmospheric delay.

Offset Size Format Units Name Description


(bytes) (bytes)
0 4 u32 ms header.time.tow Milliseconds since start of
GPS week
4 4 s32 ns header.time.ns residual Nanosecond residual of
millisecond-rounded TOW
(ranges from -500000 to
500000)
8 2 u16 week header.time.wn GPS week number
10 1 u8 header.num msgs Number of messages in the
dataset
11 1 u8 header.seq num Position of this message in
the dataset
12 2 u16 seconds header.ssr update interval update interval in seconds
14 1 u8 header.iod ssr range 0 - 15
11N + 1 u8 stec sat list[N].sv id.satId ID of the space vehicle within
15 its constellation
11N + 1 u8 stec sat list[N].sv id.constellation Constellation ID to which
16 the SV belongs
11N + 1 u8 encoded stec sat list[N].stec quality indicator quality of STEC data
17 value
- see
spec for
details
18 8 s16[4] stec sat list[N].stec coeff coefficents of the STEC
polynomial
11N + Total Payload Length
15

Table 7.7.9: MSG SSR STEC CORRECTION 0x05EB message structure

Version 2.6.3, June 10, 2019 145


Swift Navigation Swift Navigation Binary Protocol

MSG SSR GRIDDED CORRECTION — 0x05F0 — 1520

STEC residuals are per space vehicle, tropo is not.

Version 2.6.3, June 10, 2019 146


Swift Navigation Swift Navigation Binary Protocol

Offset Size Format Units Name Description


(bytes) (bytes)
0 4 u32 ms header.time.tow Milliseconds since start
of GPS week
4 4 s32 ns header.time.ns residual Nanosecond residual of
millisecond-rounded
TOW (ranges from
-500000 to 500000)
8 2 u16 week header.time.wn GPS week number
10 2 u16 header.num msgs Number of messages in
the dataset
12 2 u16 header.seq num Position of this message
in the dataset
14 2 u16 seconds header.ssr update interval update interval in sec-
onds
16 1 u8 header.iod ssr range 0 - 15
17 1 u8 encoded header.tropo quality troposphere quality indi-
value cator
- see
spec
for
details
18 2 u16 element.index index of the grid point
20 2 s16 0.4 element.tropo delay correction.hydro hydrostatic vertical delay
mm
(add
2.3 m
to get
actual
vert
hydro
delay)
22 1 s8 0.4 element.tropo delay correction.wet wet vertical delay
mm
(add
0.252
m to
get
actual
vert
wet
delay)
4N+23 1 u8 element.STEC residuals[N].sv id.satId ID of the space vehicle
within its constellation
4N+24 1 u8 element.STEC residuals[N].sv id.constellation Constellation ID to
which the SV belongs
4N+25 2 s16 0.04 element.STEC residuals[N].residual STEC residual
TECU
4N+23 Total Payload Length

Table 7.7.10: MSG SSR GRIDDED CORRECTION 0x05F0 message structure

Version 2.6.3, June 10, 2019 147


Swift Navigation Swift Navigation Binary Protocol

MSG SSR GRID DEFINITION — 0x05F5 — 1525

Definition of the grid for STEC and tropo messages

Offset Size Format Units Name Description


(bytes) (bytes)
0 1 u8 coded header.region size inverse inverse of region size
value - see
spec
1 2 u16 coded header.area width area width; see spec for details
value - 0
means not
present
(Swift
conven-
tion)
3 2 u16 header.lat nw corner enc encoded latitude of the northwest
corner of the grid
5 2 u16 header.lon nw corner enc encoded longitude of the northwest
corner of the grid
7 1 u8 header.num msgs Number of messages in the dataset
8 1 u8 header.seq num Postion of this message in the
dataset
9 N u8[N] rle list Run Length Encode list of quadrants
that contain valid data. The spec
describes the encoding scheme in
detail, but essentially the index of
the quadrants that contain transi-
tions between valid and invalid (and
vice versa) are encoded as u8 inte-
gers.
N +9 Total Payload Length

Table 7.7.11: MSG SSR GRID DEFINITION 0x05F5 message structure

Version 2.6.3, June 10, 2019 148


Swift Navigation Swift Navigation Binary Protocol

7.8 Tracking
Satellite code and carrier-phase tracking messages from the device.

MSG TRACKING STATE — 0x0041 — 65

The tracking message returns a variable-length array of tracking channel states. It reports status and
carrier-to-noise density measurements for all tracked satellites.

Offset Size (bytes) Format Units Name Description


(bytes)
4N + 0 1 u8 states[N].sid.sat Constellation-specific satellite identifier.
This field for Glonass can either be
(100+FCN) where FCN is in [-7,+6] or
the Slot ID in [1,28]
4N + 1 1 u8 states[N].sid.code Signal constellation, band and code
4N + 2 1 u8 states[N].fcn Frequency channel number (GLONASS
only)
4N + 3 1 u8 dB Hz / 4 states[N].cn0 Carrier-to-Noise density. Zero implies in-
valid cn0.
4N Total Payload Length

Table 7.8.1: MSG TRACKING STATE 0x0041 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
2)

12 BDS2 B1
8.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.8.1: Signal constellation, band and code (sid.code) Table 7.8.2: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 149


Swift Navigation Swift Navigation Binary Protocol

MSG MEASUREMENT STATE — 0x0061 — 97

The tracking message returns a variable-length array of tracking channel states. It reports status and
carrier-to-noise density measurements for all tracked satellites.

Offset Size (bytes) Format Units Name Description


(bytes)
3N + 0 1 u8 states[N].mesid.sat Constellation-specific satellite identi-
fier. This field for Glonass can ei-
ther be (100+FCN) where FCN is in
[-7,+6] or the Slot ID in [1,28]
3N + 1 1 u8 states[N].mesid.code Signal constellation, band and code
3N + 2 1 u8 dB Hz / 4 states[N].cn0 Carrier-to-Noise density. Zero implies
invalid cn0.
3N Total Payload Length

Table 7.8.3: MSG MEASUREMENT STATE 0x0061 message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
4)

6 GPS L2P
8.
7.

12 BDS2 B1
le
ab
(T

13 BDS2 B2
7 0 14 GAL E1B
20 GAL E7I
Field 7.8.2: Signal constellation, band and code
(mesid.code) Table 7.8.4: values (mesid.code[0:7])

Version 2.6.3, June 10, 2019 150


Swift Navigation Swift Navigation Binary Protocol

MSG TRACKING IQ — 0x002D — 45

When enabled, a tracking channel can output the correlations at each update interval.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 channel Tracking channel of origin
1 1 u8 sid.sat Constellation-specific satellite identifier. This
field for Glonass can either be (100+FCN)
where FCN is in [-7,+6] or the Slot ID in
[1,28]
2 1 u8 sid.code Signal constellation, band and code
4N + 3 2 s16 corrs[N].I In-phase correlation
4N + 5 2 s16 corrs[N].Q Quadrature correlation
4N + 3 Total Payload Length

Table 7.8.5: MSG TRACKING IQ 0x002D message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
6)

12 BDS2 B1
8.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.8.3: Signal constellation, band and code (sid.code) Table 7.8.6: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 151


Swift Navigation Swift Navigation Binary Protocol

MSG TRACKING IQ DEP B — 0x002C — 44

When enabled, a tracking channel can output the correlations at each update interval.

Offset Size (bytes) Format Units Name Description


(bytes)
0 1 u8 channel Tracking channel of origin
1 1 u8 sid.sat Constellation-specific satellite identifier. This
field for Glonass can either be (100+FCN)
where FCN is in [-7,+6] or the Slot ID in
[1,28]
2 1 u8 sid.code Signal constellation, band and code
8N + 3 4 s32 corrs[N].I In-phase correlation
8N + 7 4 s32 corrs[N].Q Quadrature correlation
8N + 3 Total Payload Length

Table 7.8.7: MSG TRACKING IQ DEP B 0x002C message structure

Value Description
0 GPS L1CA
1 GPS L2CM
2 SBAS L1CA
3 GLO L1CA
4 GLO L2CA
5 GPS L1P
6 GPS L2P
8)

12 BDS2 B1
8.
7.

13 BDS2 B2
le
ab
(T

14 GAL E1B
7 0 20 GAL E7I

Field 7.8.4: Signal constellation, band and code (sid.code) Table 7.8.8: values (sid.code[0:7])

Version 2.6.3, June 10, 2019 152


Swift Navigation Swift Navigation Binary Protocol

7.9 User
Messages reserved for use by the user.

MSG USER DATA — 0x0800 — 2048

This message can contain any application specific user data up to a maximum length of 255 bytes per
message.

Offset (bytes) Size (bytes) Format Units Name Description


0 N u8[N] contents User data payload
N Total Payload Length

Table 7.9.1: MSG USER DATA 0x0800 message structure

Version 2.6.3, June 10, 2019 153


Swift Navigation Swift Navigation Binary Protocol

7.10 Vehicle
Messages from a vehicle.

MSG ODOMETRY — 0x0903 — 2307

Message representing the x component of vehicle velocity in the user frame at the odometry reference
point(s) specified by the user. The offset for the odometry reference point and the definition and origin
of the user frame are defined through the device settings interface. There are 4 possible user-defined
sources of this message which are labeled arbitrarily source 0 through 3.

Offset (bytes) Size (bytes) Format Units Name Description


0 4 u32 ms tow Time field representing either milliseconds in
the GPS Week or local CPU time from the
producing system in milliseconds. See the
tow source flag for the exact source of this
timestamp.
4 4 s32 mm/s velocity The signed forward component of vehicle ve-
locity.
8 1 u8 flags Status flags
9 Total Payload Length

Table 7.10.1: MSG ODOMETRY 0x0903 message structure

Value Description
0 None (invalid)
1 GPS Solution (ms in week)
)
7. 0.3

2 Processor Time
)
.2
1
7.
10
(T ble
ce (Ta

le

Table 7.10.2: Time source values (flags[0:2])


ab
so rce
ou
ur
T ty S
Ve ed
v
ci

e
er

Value Description
lo
im
es
R

7 5 43 2 0 0 Source 0
1 Source 1
Field 7.10.1: Status flags (flags) 2 Source 2
3 Source 3

Table 7.10.3: Velocity Source values (flags[3:4])

Version 2.6.3, June 10, 2019 154

You might also like