Icd-gps-153 Protocol Apr 2026
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). | 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) | icd-gps-153 protocol
All multi-byte fields are transmitted in 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: Initially released in the 1990s and updated multiple
| 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 | 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: Below are the most frequently used: 4
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 .