ICD-GPS-153 is a specialized communication protocol and Interface Control Document (ICD) used primarily by the U.S. Department of Defense (DoD) to define how military GPS receivers communicate with external systems . Unlike the common civilian NMEA 0183 protocol, ICD-GPS-153 is designed for the rigorous requirements of military-grade hardware. Purpose and Function The primary goal of ICD-GPS-153 is to establish a standardized functional data transfer interface between DoD Standard GPS User Equipment (UE) and the platforms they are integrated into, such as aircraft, naval vessels, or ground vehicles. Standardization: It provides a common set of commands and data formats, ensuring that different GPS receivers can be swapped or upgraded without needing to rewrite the host system's software. Military Specifics: It supports features unique to military GPS, such as Selective Availability Anti-Spoofing Module (SAASM) operations and cryptographic key loading (e.g., for P(Y) code or M-Code). Bidirectional Control: While most consumer GPS protocols only "push" data to a screen, ICD-GPS-153 allows for full duplex communication where the host system can send commands back to the receiver. Technical Characteristics Physical Layer: It typically operates over serial interfaces, specifically Protocol Name: It is often referred to as the GPS Standard Serial Interface Protocol (GSSIP) Data Content: The protocol handles various data types, including: 3D Position (Latitude, Longitude, Altitude). Velocity and Time of Day. Satellite health and status. Waypoints and mission-specific parameters. Common Applications You will find this protocol in hardware such as the Precision Lightweight GPS Receiver (PLGR) Defense Advanced GPS Receiver (DAGR) . Modern military systems, like the GX-110 naval navigation set, use ICD-GPS-153 as an optional interface to maintain compatibility with existing defense infrastructure. Note on Availability: Because this document is "For Official Use Only" (FOUO), the full technical manual is not publicly available for download and generally requires approval from the GPS Joint Program Office (JPO). hardware that uses it? NMEA Protocol - Mapit GIS

Title: The Silent Backbone of Precision Navigation: Understanding the ICD-GPS-153 Protocol In the modern world, the Global Positioning System (GPS) is often taken for granted. We assume that the blue dot on our smartphone map is accurate to within a few meters, and that our delivery drones, agricultural machinery, and military assets know exactly where they are at all times. However, this seamless user experience relies on a complex, rigid, and highly technical infrastructure of data communication. While the signals beaming down from satellites are governed by documents like IS-GPS-200, the critical link between the GPS receiver hardware and the host application is governed by a different standard entirely. This is the domain of ICD-GPS-153 . For developers, systems integrators, and engineers working in the field of navigation, the ICD-GPS-153 protocol is not just a reference document; it is the blueprint for interoperability. This article provides a deep dive into the ICD-GPS-153 standard, exploring its history, technical architecture, message structure, and its enduring relevance in the age of multi-constellation navigation. What is ICD-GPS-153? ICD-GPS-153 stands for Interface Control Document for the NAVSTAR Global Positioning System Standard Positioning Service (SPS) Signal Specification . While that sounds like a mouthful, its purpose is succinct: it defines the interface between the GPS receiver (the hardware decoding the satellite signals) and the host system (the computer, vehicle computer, or software application using that data). In simpler terms, satellites speak "RF" (Radio Frequency). The receiver translates that RF into digital data. ICD-GPS-153 dictates the language that the receiver uses to speak to the computer. It standardizes the "inputs and outputs" of the receiver module, ensuring that a GPS chip manufactured by one vendor can be swapped with a chip from another vendor without rewriting the entire software stack. It is crucial to distinguish ICD-GPS-153 from its famous sibling, IS-GPS-200.

IS-GPS-200 defines how the satellites transmit data to the receiver (the RF interface). ICD-GPS-153 defines how the receiver outputs that processed data to the user (the data interface).

The Historical Context: The Rise of the "DAGR" To understand ICD-GPS-153, one must look at its origins. In the 1990s and early 2000s, the U.S. military recognized the need for a standardized, encrypted GPS receiver to replace the bulky, inefficient models of the past. This led to the development of the DAGR (Defense Advanced GPS Receiver) . The DAGR became the standard handheld GPS device for the U.S. military and its allies. To allow third-party manufacturers to build devices that could interface with the DAGR—such as integrating the receiver into a tank, an aircraft, or a radio—the government released ICD-GPS-153. Consequently, ICD-GPS-153 is often synonymous with the "DAGR protocol." It specified how the DAGR outputted Position, Velocity, and Time (PVT) solutions. Over time, because the military market required strict adherence to this standard, the protocol became a de facto standard for high-reliability GPS receivers in the commercial sector as well, particularly those used in aviation and autonomous systems. Technical Architecture of the Protocol The ICD-GPS-153 protocol is designed with a philosophy of efficiency and reliability. Unlike modern internet protocols which often use verbose formats like JSON or XML, ICD-GPS-153 uses binary messaging. Why binary? In environments with limited bandwidth (such as legacy radio links) or where processing power is at a premium (embedded systems), binary is king. It minimizes transmission time and parsing overhead. 1. Transmission Layers The standard typically defines two primary transmission methods:

RS-232 Serial Interface: The traditional physical layer. It specifies baud rates (often 9600, 19200, or higher), parity bits, and stop bits. This ensures legacy hardware compatibility. Network / USB Interfaces: Modern revisions of the protocol allow for encapsulation of these messages over TCP/IP or USB bulk transfers, acknowledging the decline of the serial port in modern computing.

2. Message Structure The heart of ICD-GPS-153 is its message frame. A typical message frame consists of three parts:

Header: Identifies the start of the message and the specific message type. Data Payload: The actual navigation data (Latitude, Longitude, Altitude, Velocity, etc.). Checksum/CRC: A cyclic redundancy check to ensure data integrity. If a single bit is corrupted during transmission, the checksum allows the receiver to discard the message rather than plotting a false position.

The protocol defines a suite of specific Message IDs (MIDs). Each MID corresponds to a specific type of data. For example:

MID 6: Often used for raw measurement data (pseudorange and carrier phase). MID 41: Often associated with PVT (Position, Velocity, Time) solutions.

ICD-GPS-153: The Standard for High-Precision GPS Receivers 1. Introduction ICD-GPS-153 (Interface Control Document for GPS User Equipment) is a technical standard published by the U.S. Space and Missile Systems Center (SMC). It defines the electrical, mechanical, and data protocol interfaces between a GPS receiver and an external host system (e.g., a navigation computer, weapon system, or display unit). Unlike consumer-oriented NMEA 0183, ICD-GPS-153 is designed for high-integrity, high-update-rate military and aviation applications . Initially released in the 1990s and updated multiple times (e.g., IRN-153C-004, IRN-153D-001), the protocol supports both the legacy GPS L1 C/A-code and the encrypted P(Y)-code for precise positioning (PPS). It is the foundation for many military aviation receivers (e.g., DAGR, PLGR, and embedded GPS/INS systems). 2. Key Characteristics | Feature | Specification | |---------|----------------| | Physical layer | RS-422 (differential) or RS-232 (single-ended) | | Data rate | 4,800, 9,600, 19,200, 38,400, 115,200 baud (default 9,600) | | Data bits | 8 | | Parity | None | | Stop bits | 1 | | Message format | Binary (not ASCII) | | Update rate | Up to 20 Hz (depending on message type) | | Time synchronization | 1 PPS (pulse per second) output | | Security | Supports selective availability (SA) and anti-spoofing (A/S) modes | 3. Message Structure All ICD-GPS-153 messages are binary packets with a consistent frame structure: | Field | Size (bytes) | Description | |-------|--------------|-------------| | Sync (Header) | 2 | Always 0xAA 0x55 (start of message) | | Message ID | 2 | Unique identifier for data type (e.g., 0x0010 = position) | | Length | 2 | Number of data bytes following this field | | Data | Variable | Payload per message ID | | Checksum | 2 | 16-bit CRC (CCITT polynomial: X^16 + X^12 + X^5 + 1) | All multi-byte fields are transmitted in little-endian byte order (least significant byte first). 4. Common Message Types (Examples) The protocol defines dozens of messages, categorized as output (receiver to host) and input (host to receiver). Below are the most frequently used: 4.1 Output Messages (Receiver → Host) | ID (hex) | Name | Description | |----------|------|-------------| | 0x0010 | Position/Status | Latitude, longitude, altitude, fix type, number of satellites | | 0x0012 | Velocity | East, north, up velocities (m/s) | | 0x0015 | Time | UTC/GPST time, date, time-of-week, leap seconds | | 0x0016 | Satellite Info | PRN, elevation, azimuth, SNR, health for up to 12 satellites | | 0x0019 | PPS Status | 1PPS synchronization accuracy (ns) | | 0x0024 | Raw Measurement | Pseudorange, carrier phase, Doppler (for external RTK/post-processing) | 4.2 Input Messages (Host → Receiver) | ID (hex) | Name | Description | |----------|------|-------------| | 0x0401 | Initialization | Set receiver mode (2D/3D), datum, altitude hold | | 0x0402 | Datum Selection | Select WGS84, NAD27, local geodetic datums | | 0x0410 | Position Mask | Disable/enable output of specific message IDs | | 0x0412 | Output Rate | Define update rate for each message (e.g., 1 Hz, 5 Hz, 20 Hz) | | 0x041E | Almanac Request | Force upload of satellite almanac | 5. Position Data Example (Message 0x0010) The payload for Message 0x0010 (Position/Status) is structured as follows: | Offset | Type | Value Range | Description | |--------|------|-------------|-------------| | 0 | int32 | ±90° (scaled by 1e7) | Latitude (degrees * 10^7) | | 4 | int32 | ±180° (scaled by 1e7) | Longitude (degrees * 10^7) | | 8 | int32 | -1000 to 50000 m | Height above ellipsoid (m) | | 12 | int16 | 0–65535 | Time of week (ms) | | 14 | uint8 | bitmask | Fix quality: 0=no fix, 2=2D, 3=3D | | 15 | uint8 | 0–12 | Number of satellites used | | 16 | float32 | -1.0 to +1.0 | Horizontal dilution of precision (HDOP) | | 20 | uint8 | — | System status (reserved) | | 21 | uint8 | — | Altitude source flag | Encoding Example (latitude 37.1234567° N): Value = 37.1234567 × 10^7 = 371,234,567 → stored as 0x1A 0x5F 0x1F 0x16 (little-endian). 6. Command Example: Set Output Rate to 10 Hz To request position updates at 10 Hz, the host sends Message 0x0412: Payload:

Message ID to configure: 0x0010 Update interval in milliseconds: 100 ms → 0x64 Reserved fields: 0

Complete frame (hex): AA 55 12 04 04 00 10 00 64 00 00 00 00 00 62 3F Breakdown: