Skip to content

UBX Protocol

UBX Protocol

u-blox receivers support a u-blox-proprietary protocol (UBX) to communicate with a host computer. This protocol has the following key features:

  • Compact - uses 8-bit binary data
  • Checksum protected - uses a low-overhead checksum algorithm
  • Modular - uses a two-stage message identifier (Class and Message ID)

Message Structure

The structure of a basic UBX frame is shown in the following diagram.

UBX message framework

The structure of a basic UBX message.

  • Every frame starts with a 2-byte preamble consisting of two synchronization characters: 0xb5 and 0x62.
  • A 1-byte message class field follows. A class is a group of messages that are related to each other.
  • A 1-byte message ID field defines the message that is to follow.
  • A 2-byte length field follows. The length is defined as being that of the payload only. It does not include the preamble, message class, message ID, length, or UBX checksum fields. The number format of the length field is an unsigned little-endian 16-bit integer (a "U2" in UBX data types).
  • The payload field contains a variable number (= length) of bytes.
  • The two 1-byte CK_A and CK_B fields hold a 16-bit checksum whose calculation is defined in UBX checksum section. This concludes the frame.

Acknowledgement

When messages from the class CFG are sent to the receiver, the receiver will send an acknowledge (UBX-ACK-ACK) or a not acknowledge (UBX-ACK-NAK) message back to the sender, depending on whether or not the message was processed correctly.

Common UBX Messages

UBX-ACK - Acknowledgement and negative acknowledgement messages

Message Class/ID Description (Type)
UBX-ACK-ACK 0x05 0x01 Message acknowledged (Output)
UBX-ACK-NAK 0x05 0x00 Message not acknowledged (Output)

UBX-CFG - Configuration and command messages

Message Class/ID Description (Type)
UBX-CFG-CFG 0x06 0x09 Clear, save, and load configurations (Command)
UBX-CFG-OTP 0x06 0x41 Write file 0xA4: receiver configuration items (Set)
UBX-CFG-RST 0x06 0x04 Reset receiver/Clear backup data structures (Command)
UBX-CFG-VALDEL 0x06 0x8c - Delete configuration item values (Set)
- Delete configuration item values (with transaction) (Set)
UBX-CFG-VALGET 0x06 0x8b - Get configuration items (Poll request)
- Configuration items (Polled)
UBX-CFG-VALSET 0x06 0x8a - Set configuration item values (Set)
- Set configuration item values (with transaction) (Set)

UBX-MON - Monitoring messages

Message Class/ID Description (Type)
UBX-MON-SYS 0x0A 0x39 Current system performance information for monitoring purposes
UBX-MON-VER 0x0a 0x04 - Poll receiver and software version (Poll request)
- Receiver and software version (Polled)

UBX-NAV - Navigation solution messages

Message Class/ID Description (Type)
UBX-NAV-HPPOSECEF 0x01 0x13 High precision position solution in ECEF (Periodic/polled)
UBX-NAV-HPPOSLLH 0x01 0x14 High precision geodetic position solution (Periodic/polled)
UBX-NAV-POSECEF 0x01 0x01 Position solution in ECEF (Periodic/polled)
UBX-NAV-POSLLH 0x01 0x02 Geodetic position solution (Periodic/polled)
UBX-NAV-PVT 0x01 0x07 Navigation position velocity time solution (Periodic/polled)
UBX-NAV-STATUS 0x01 0x03 Receiver navigation status (Periodic/polled)
UBX-NAV-SVIN 0x01 0x3b Survey-in data (Periodic/polled)

UBX-UPD - Firmware update messages

Message Class/ID Description (Type)
UBX-UPD-SOS 0x09 0x14 - Poll backup restore status (Poll request)
- Create backup in flash (Command)
- Clear backup in flash (Command)
- Backup creation acknowledge (Output)
- System restored from backup (Output)