Skip to content

RTK GPS Heading with Dual u-blox F9P

Two u-blox F9P RTK GPS modules mounted on a vehicle can be used to accurately compute a heading angle (i.e. an alternative to compass-based heading estimation). The two GPS devices in this scenario are referred to as the Moving Base and Rover.

Supported Devices

This feature works on F9P devices that support CAN or expose the GPS UART2 port.

The following devices are supported:



Ideally the two antennas should be identical, on the same level/horizontal plane and oriented the same way, and on an identical ground plane size and shape (Application note, section System Level Considerations).

  • The application note does not state the minimal required separation between modules (50cm has been used in test vehicles running PX4).
  • The antennas can be positioned as needed, but the GPS_YAW_OFFSET must be configured: RTK GPS > GPS as Yaw/Heading Source.

UART Setup

  • The UART2 of the GPS devices need to be connected together (TXD2 of the "Moving Base" to RXD2 of the "Rover")
  • Connect UART1 on each of the GPS to (separate) unused UART's on the autopilot, and configure both of them as GPS with baudrate set to Auto. The mapping is as follows:
    • Main GPS = Rover
    • Secondary GPS = Moving Base
  • Set GPS_UBX_MODE to Heading (1)
  • EKF2_GPS_CTRL parameter bit 3 must be set (see RTK GPS > GPS as Yaw/Heading Source).
  • GPS_YAW_OFFSET may need to be set (see RTK GPS > GPS as Yaw/Heading Source).
  • Reboot and wait until both devices have GPS reception. gps status should then show the Main GPS going into RTK mode, which means the heading angle is available.

CAN Setup

Refer to the CAN RTK GPS documentation for each specific device for the setup instructions (such as ARK RTK GPS > Setting Up Moving Baseline & GPS Heading)


If using RTK with a fixed base station the secondary GPS will show the RTK state w.r.t. the base station.

Further Information