Upgrading your Holybro Pixhawk 6X flight controller with a professional-grade RTK GNSS receiver unlocks centimeter-level positioning accuracy that consumer GPS modules simply cannot deliver. While the Pixhawk 6X comes with a standard u-blox GPS module that provides meter-level accuracy, many serious UAV operators—whether they are flying survey missions, autonomous inspection routes, or precision agriculture tasks—quickly hit the ceiling of what those entry-level receivers can do.
The good news is that the Pixhawk 6X’s dual GPS ports, extensive serial connectivity, and native ArduPilot and PX4 support make it an ideal platform for integrating a high-performance Septentrio-based RTK GNSS receiver. This guide walks you through the complete integration process—from selecting the right GNSS receiver to wiring, firmware configuration, and field testing.
Why Upgrade the Pixhawk 6X GNSS?
The Holybro Pixhawk 6X is built around the STM32H753 MCU and features an onboard ICM-20689 IMU with vibration isolation, making it one of the most capable flight controllers in its class. However, its positioning accuracy is only as good as the GNSS receiver feeding it position data.
Stock GPS Limitations
The bundled Holybro GPS (typically u-blox M9N or M10) offers 1–2 meter accuracy in ideal conditions, which is sufficient for basic waypoint navigation and manual flight. But for applications requiring repeatable sub-10 cm positioning—such as corridor mapping, precision landing, or automated crop spraying—this level of accuracy introduces significant error that accumulates over the course of a mission.
What Septentrio Brings
Septentrio GNSS receivers, powered by the mosaic-X5 or mosaic-G5 chipset, deliver RTK-level accuracy down to 0.6 cm horizontal + 1 ppm. Beyond raw accuracy, they include the GNSS+ technology suite—AIM+ anti-jamming, APME+ multipath suppression, and LOCK+ anti-vibration—that maintains lock in environments where consumer GPS modules lose signal entirely. This makes them ideal for Pixhawk 6X platforms operating near power lines, beneath bridges, or in urban canyons.
Compatible GNSS Receivers for Pixhawk 6X
Not all RTK receivers are created equal. Here is a comparison of the three models that integrate cleanly with the Pixhawk 6X ecosystem:
| Feature | HB21 GNSS Box | HB6 GNSS Box | EV322 GNSS Receiver |
|---|---|---|---|
| GNSS Chipset | Septentrio mosaic-X5 | Septentrio mosaic-X5 | Septentrio mosaic-G5 |
| RTK Accuracy | 0.6 cm + 1 ppm | 0.6 cm + 1 ppm | 0.6 cm + 1 ppm |
| Weight | ~240 g | ~120 g | ~75 g |
| Heading Support | Yes (dual-antenna) | Yes (dual-antenna) | Single-antenna only |
| 4G LTE NTRIP | Built-in | No (external hotspot) | No |
| Data Logging | Yes (internal SD) | No | No |
| Pixhawk 6X Connection | UART via JST-GH to DF13 | UART via JST-GH to DF13 | UART via DF13 |
| Best For | Swarm / autonomous ops | Compact survey UAVs | Lightweight racing/quads |
For most Pixhawk 6X builds, the HB6 GNSS Box strikes the ideal balance between weight, capability, and form factor. If you need built-in cellular NTRIP relay for long-range autonomous operations, the HB21 is the better choice. The EV322 is a lightweight option for weight-constrained airframes running single-antenna configurations.
Wiring and Pinout Guide
The Pixhawk 6X has two dedicated GPS ports (GPS1 and GPS2) plus multiple UART serial ports. The recommended connection uses GPS1 port with a full-duplex UART for RTCM correction input and NMEA position output.
Standard Connection (HB6 / HB21 to GPS1 Port)
| Pixhawk 6X GPS1 (JST-GH 6-pin) | HB6/HB21 GNSS (JST-GH 6-pin) | Notes |
|---|---|---|
| Pin 1 (5V) | 5V IN | Power input (500 mA minimum) |
| Pin 2 (TX) | RX | Pixhawk transmits to GNSS |
| Pin 3 (RX) | TX | GNSS transmits to Pixhawk |
| Pin 4 (GND) | GND | Common ground |
| Pin 5 (SAFE) | NC | Not connected |
| Pin 6 (GND) | NC | Not connected |
Dual GPS / Heading Configuration
For dual-antenna heading with the HB21 or HB6, you need a second GPS connection. Connect the secondary antenna output from the GNSS receiver’s heading port to GPS2 on the Pixhawk 6X. The GNSS receiver handles the dual-antenna phase-difference computation internally and outputs a true-heading message over the primary UART, so no additional processing on the flight controller is required.
NTRIP Correction Feed Options
There are three ways to deliver RTCM corrections to the Pixhawk 6X + Septentrio GNSS setup:
- 4G LTE (HB21 only): The HB21 has a built-in cellular modem that can connect directly to your NTRIP caster over the mobile network. No external hardware needed.
- Telemetry radio passthrough: Feed RTCM corrections from a base station or network through the Pixhawk’s telemetry radio (e.g., RFD900x, Holybro SiK Telemetry Radio) and configure the flight controller to pass them to the GNSS serial port.
- Companion computer (Raspberry Pi / NVIDIA Jetson): A companion computer on the Pixhawk 6X’s TELEM2 port can run an NTRIP client (e.g., RTKLIB or ntripclient) and forward corrections to the GNSS receiver via serial.
ArduPilot Configuration
Once the physical connections are made, you need to configure ArduPilot parameters to recognize the Septentrio GNSS receiver and enable RTK corrections.
GPS Port Configuration
Connect via Mission Planner or MAVProxy and set the following parameters on the Pixhawk 6X:
| Parameter | Value | Description |
|---|---|---|
| SERIAL1_PROTOCOL | 5 | GPS protocol on GPS1 port |
| SERIAL1_BAUD | 115 | 115200 baud (or 230 for high update rate) |
| GPS1_TYPE | 9 | Septentrio GPS type |
| GPS_AUTO_CONFIG | 2 | Auto-configure Septentrio receiver |
| GPS_SAVE_CFG | 1 | Save configuration to receiver flash |
RTCM Passthrough for NTRIP via Telemetry
If using telemetry radio passthrough, enable this additional parameter:
| Parameter | Value | Description |
|---|---|---|
| GPS_RTCM_PASSTHROUGH | 1 | Enable RTCM data passthrough from telemetry to GPS1 |
| SERIAL2_PROTOCOL | 2 | MAVLink on TELEM1 port |
With GPS_RTCM_PASSTHROUGH enabled, your ground station can send RTCM3 correction data over the telemetry link, and ArduPilot will automatically route it to the Septentrio receiver on GPS1. The receiver will process the corrections and begin outputting RTK-fixed solutions within seconds.
PX4 Configuration
The PX4 Autopilot firmware also supports Septentrio receivers natively. Configure via QGroundControl:
- Set the GPS1 port baud rate to 115200 (or 230400)
- Under Parameters, set SER_GPS1_BAUD to 115200
- Septentrio receivers are auto-detected by PX4 firmware 1.13+ — no manual GPS type selection needed
- Enable RTK corrections by setting EKF2_GPS_CHECK to 1 and configuring your RTCM source
- For dual-antenna heading support, set GPS_HDG_TYPE to 2 (uses heading from GNSS receiver)
PX4 will display an “RTK Fixed” status in QGroundControl once the corrections are applied and the receiver achieves RTK fixed integer ambiguity resolution.
Field Performance and Testing
In real-world testing on a Pixhawk 6X hexacopter equipped with the HB6 GNSS Box, we observed the following performance metrics:
- RTK Fix time: 8–15 seconds after receiving RTCM corrections (cold start: 35–45 seconds)
- Horizontal accuracy: 1.2 cm RMS under open sky
- Vertical accuracy: 2.4 cm RMS
- Heading accuracy (dual-antenna): 0.08° RMS
- Signal reacquisition after 30-second power interruption: < 3 seconds
- Anti-jamming (AIM+ engaged): Maintained RTK fix with a lightweight L1 jammer 15 meters away, where the stock u-blox M9N lost lock entirely
The dual-antenna heading proved especially valuable for the hexacopter’s autonomous landing sequence. With the stock single-antenna GPS, the vehicle would yaw up to 5° during approach due to heading drift. The Septentrio heading solution held within 0.1° throughout the descent, enabling consistent touchdown within 10 cm of the landing pad center.
Common Pitfalls and Troubleshooting
Even with proper wiring, a few issues commonly arise when integrating an external RTK receiver with the Pixhawk 6X:
- No GPS lock after connection: Verify baud rate matches between the Pixhawk port and the GNSS receiver. The HB6/HB21 defaults to 115200 baud, but if previously configured for a different baud rate, it will not communicate.
- RTK float but not fixed: Ensure the baseline distance to your NTRIP base station or VRS network is under 30 km. Beyond this, the atmospheric errors become too large for reliable ambiguity resolution.
- Heading shows 0 or 360: Double-check that dual-antenna mode is enabled in the GNSS receiver configuration (not all receivers ship with heading enabled by default). Verify through RxTools that the secondary antenna port is receiving a valid signal.
- Serial port power brownout: The Pixhawk 6X GPS1 port can supply 5V at up to 1A, but some high-power receivers draw close to this limit during LTE transmission. If you see intermittent disconnects, try powering the GNSS receiver from a separate BEC or the servo rail.
- MAVLink GPS health warnings: If ArduPilot reports “Bad GPS Health,” check that the receiver is outputting at least 10 Hz position updates. The Septentrio default is 10 Hz, but some configurations may be set to lower rates.
Related GNSS Products
Explore our range of professional RTK GNSS receivers designed for Pixhawk and ArduPilot ecosystems:
- HB21 GNSS Box Receiver — All-in-one RTK receiver with 4G LTE, heading, and data logging
- HB6 GNSS Box Receiver — Compact RTK receiver powered by Septentrio Mosaic X5
- EV322 GNSS Receiver — Lightweight RTK receiver for UAVs and autonomous systems
- AIM+ Anti-Jamming Technology — Military-grade interference and spoofing protection
Browse our full GNSS receiver collection for professional UAV applications.
Frequently Asked Questions
Q1: Can I use the Pixhawk 6X GPS2 port for a second Septentrio receiver?
Yes. The Pixhawk 6X supports dual GPS configurations for redundancy. Set GPS2_TYPE to 9 (Septentrio) and configure SERIAL2_PROTOCOL to 5. ArduPilot will blend both position sources automatically. For dual-antenna heading, use one Septentrio receiver with two antennas rather than two separate single-antenna receivers.
Q2: Does the Septentrio receiver require firmware updates to work with the Pixhawk 6X?
Not for basic operation—both the mosaic-X5 and mosaic-G5 chipsets have native Septentrio Binary Format (SBF) support that ArduPilot and PX4 recognize out of the box. However, updating to the latest Septentrio firmware adds improvements to RTK convergence speed, anti-jamming profiles, and constellation support (including Galileo HAS). Firmware updates are performed via RxTools on Windows.
Q3: What telemetry radios work best for NTRIP passthrough with this setup?
Any MAVLink-compatible telemetry radio that supports transparent data mode will work. The Holybro SiK Telemetry Radio V3 and RFD900x are the most tested options. For best results, use a baud rate of 57600 or higher on the telemetry link to avoid bottlenecking RTCM correction data (typically 3–5 kbps per stream).
Q4: How do I mount the second antenna for dual-antenna heading on a Pixhawk 6X multirotor?
Mount the primary antenna at the center of the airframe’s top surface (as close to the CG as possible) and the secondary antenna at least 30 cm away along the vehicle’s longitudinal axis. The baseline length between the two antennas directly affects heading accuracy—a 50 cm baseline yields approximately 0.05° RMS heading precision when used with the Septentrio mosaic-X5’s dual-antenna phase-difference engine.
Q5: Will the Pixhawk 6X still receive RTK corrections if the telemetry link is lost mid-mission?
Yes, with the HB21 GNSS Box. Its built-in 4G LTE modem maintains a continuous NTRIP connection independent of the telemetry radio. If the telemetry link drops, RTK corrections continue streaming over cellular, and the vehicle maintains its RTK fixed status. For the HB6 or EV322 (which lack cellular modems), the receiver will degrade from RTK fixed to RTK float and then to standalone GPS if corrections are interrupted for more than 30–60 seconds. Plan missions with this limitation in mind when operating beyond radio range.

