CubePilot CubeOrange is one of the most popular Pixhawk-style flight controllers used in custom drone builds, R&D platforms, and professional UAV systems. While the CubeOrange comes with an internal u-blox NEO-M8N or ZED-F9P GPS module, many advanced users quickly outgrow its capabilities — especially when building drones that demand centimeter-level RTK positioning, multi-frequency GNSS support, or anti-jamming protection for GNSS-denied environments.
Upgrading to a Septentrio-powered GNSS receiver gives your CubeOrange build access to the same GNSS technology used by the DJI M300/M350 RTK and other high-end industrial drones. This guide walks through exactly how to integrate a Septentrio Mosaic-X5 or Mosaic-G5 receiver with the CubeOrange flight controller — covering wiring, telemetry, dual-antenna heading, configuration in ArduPilot and PX4, and real-world performance benchmarks.
Why Replace the CubeOrange’s Internal GNSS?
The CubeOrange flight controller includes an internal GPS module paired with the standard 6-pin JST connector. For basic Waypoint navigation or loiter modes, this works fine. But if you need:
- RTK centimeter-level accuracy for precision landing, mapping, or survey-grade data collection
- Multi-band reception (L1/L2/L5) for reliability in tree cover or urban canyons
- Heading without a compass via dual-antenna GNSS for difficult magnetic environments
- Anti-jamming and anti-spoofing for security-sensitive or commercial operations
Then the internal GPS simply cannot deliver. The Septentrio Mosaic-X5 module, for example, provides RTK accuracy to 1 cm + 1 ppm, supports all four global constellations (GPS, GLONASS, Galileo, BeiDou), and offers the AIM+ anti-jamming technology that filters out more than 99% of interference signals before they reach the position engine.
CubeOrange GNSS Limitations at a Glance
| Feature | CubeOrange Internal GPS | Septentrio Mosaic-X5 |
|---|---|---|
| Accuracy (Single Point) | ~2.5 m CEP | ~1.2 m CEP |
| RTK Accuracy | ~2.5 cm (ZED-F9P) | 1 cm + 1 ppm |
| Constellations | GPS + GLONASS | GPS + GLONASS + Galileo + BeiDou |
| Bands | L1 only (or L1/L2 for F9P) | L1/L2/L5/E1/E5a/E5b/E6/B1I/B2I |
| Heading via Dual Antenna | No (requires external compass) | Yes (single module, true North heading) |
| Anti-Jamming Protection | None | AIM+ (military-grade) |
| Update Rate | 10 Hz | Up to 100 Hz |
Wiring the Septentrio GNSS Receiver to CubeOrange
The CubeOrange provides several serial ports and a CAN bus interface. For GNSS integration, the recommended approach is using one of the dedicated GPS UART ports (GPS1 or GPS2), or the CAN bus if your GNSS receiver supports CAN output.
UART Connection (Recommended)
For all UFOFACTORY GNSS receivers (HB6, EV322, HB21), the standard 10-pin ST6 connector maps directly to the CubeOrange’s GPS port pinout:
| CubeOrange GPS Port (JST-GH 10-pin) | Septentrio GNSS Receiver (ST6 10-pin) | Signal |
|---|---|---|
| Pin 1 (5V) | Pin 1 (VCC) | Power — 5V DC |
| Pin 2 (TX) | Pin 2 (RX) | GPS → Flight Controller data |
| Pin 3 (RX) | Pin 3 (TX) | Flight Controller → GPS config |
| Pin 4 (GND) | Pin 4 (GND) | Ground |
| Pin 7 (SAFE) | Pin 8 (nRST) | Safe-to-arm signal (optional) |
| Pin 9 (SCL) | N/C | I²C compass (not used) |
| Pin 10 (SDA) | N/C | I²C compass (not used) |
Important notes:
- Use GPS1 port (the one labeled MODE 1 on the CubeCarrier) for the primary GNSS receiver. This maps to serial port
Serial 3in ArduPilot andTELEM2/GPS1in PX4. - If using a dual-antenna heading receiver (EV322 with Mosaic-G5 P3H), connect the primary GNSS to GPS1 and configure a second serial port to receive the heading NMEA sentences — or use CAN bus for a single-cable solution.
- The SAFE signal from the CubeOrange allows the GNSS receiver to indicate it has a valid 3D fix before the flight controller will arm. This is a critical safety feature for autonomous operations.
Power Considerations
The CubeOrange’s GPS port provides regulated 5V output at up to 1A. Septentrio Mosaic-X5 modules draw approximately 350-500 mA under full load with RTK corrections active. The internal regulator on the CubeOrange carrier board (the 5V rail from servo rail or USB power) can handle this, but ensure:
- You are using the CNC aluminum case version of the GNSS receiver for proper heat dissipation
- Total current draw from the GPS port (including any additional peripherals) stays under 1A
- For cold starts or reacquisition, the Mosaic-X5 may briefly draw up to 750 mA — still within spec
ArduPilot Configuration for Septentrio GNSS
ArduPilot is the preferred firmware for the CubeOrange, and configuring an external Septentrio GNSS receiver requires only a few parameter changes.
Step 1: Set GPS Protocol and Baud Rate
GPS_TYPE = 1 (Auto)
GPS_AUTO_CONFIG = 1 (Automatically detect and configure)
SERIAL3_PROTOCOL = 5 (GPS)
SERIAL3_BAUD = 115 (115200 baud or 230 for higher update rates)
Septentrio receivers output NMEA and a proprietary SBF (Septentrio Binary Format). ArduPilot can parse SBF natively with GPS_TYPE = 9 (Septentrio) for the best performance. This enables dual-antenna heading parsing without a separate compass.
Step 2: Enable RTK Corrections (NTRIP)
With the HB21 GNSS Box Receiver, RTK corrections can come via its integrated 4G LTE modem — no tethering or base station needed. For the HB6 or EV322 without cellular, corrections arrive through the CubeOrange’s telemetry link:
- Connect the CubeOrange to QGroundControl or Mission Planner via telemetry radio (or USB)
- In QGC, navigate to Application Settings → RTK GPS → NTRIP Client
- Enter your NTRIP caster credentials (e.g., from RTK2go, Emlid Caster, or a local base station)
- The flight controller forwards the RTCM corrections to the GNSS receiver over the serial link
The GNSS receiver’s LED indicator will show a RTK FIX (solid green) when corrections are applied and the system has locked to centimeter-level accuracy.
Step 3: Compass-Free Heading with Dual Antenna
If using a dual-antenna configuration (Mosaic-G5 P3H or the EV322 receiver with two antennas), set the compass source:
COMPASS_TYPEMASK = 6 (disable internal and external compasses, use GNSS heading)
AHRS_EKF_TYPE = 3 (use EKF3 which supports GNSS yaw)
EK3_SRC1_YAW = 3 (GPS yaw as primary yaw source)
GPS_TYPE = 9 (Septentrio — includes heading data)
This configuration is particularly valuable for drones operating near high-voltage power lines, steel structures, or underground mines where magnetic compass calibration drifts or becomes impossible.
PX4 Configuration for Septentrio GNSS
PX4 users on CubeOrange can also integrate Septentrio receivers with straightforward parameter changes.
GPS Configuration
GPS_1_CONFIG = TELEM2 (Serial 3)
GPS_1_BAUD = 115200
GPS_1_PROTOCOL = 1 (NMEA)
GPS_1_GNSS_ID = -1 (Auto-detect)
SENS_EN_GPS = 1 (Enable GPS)
For best performance in PX4, set GPS_1_PROTOCOL = 0 (Auto) or 4 (Septentrio Binary) which directly parses the SBF messages for richer data (signal-to-noise ratio per satellite, raw ephemeris, and heading information).
RTK Corrections in PX4
PX4 supports a built-in NTRIP client:
- Set
GPS_UBX_DYNMODEL = 6 (Airborne on autopilot with > 1g wingspan / multi-rotor)for UAV use - Configure NTRIP via the PX4 Parameters or through QGroundControl Data Link settings
- Enable
EKF2_GPS_CTRL = 3 (Enable GPS horizontal + vertical position) - For heading, enable
EKF2_GPS_CTRL = 7 (Add GPS yaw)when using dual-antenna
PX4’s ECL (Estimation and Control Library) processes the RTK corrections and provides 1 cm + 1 ppm positioning to the flight control system in real time.
Dual-Antenna Heading: Real-World Performance
One of the strongest reasons to integrate a Septentrio GNSS receiver with the CubeOrange is the ability to get true GNSS-based heading without any magnetic compass. This is achieved through the P3H firmware variant of the Mosaic-G5 module, which calculates heading from the carrier-phase difference between two antennas spaced 30-60 cm apart on the drone.
Heading Accuracy Specifications
| Antenna Baseline | Heading Accuracy (1σ) | Typical Application |
|---|---|---|
| 30 cm | 0.30° | Compact quadcopters, inspection drones |
| 50 cm | 0.18° | Mid-size UAVs, mapping platforms |
| 100 cm | 0.09° | Large VTOL, fixed-wing, robotic platforms |
Real flight tests with a CubeOrange-equipped hexacopter show that GNSS-based heading eliminates the compass calibration drift that plagues multi-rotor drones with high current draw (60+ A). Compass errors in these scenarios can exceed 15° during aggressive maneuvers, while the GNSS heading maintains sub-0.5° accuracy throughout the flight envelope.
Antenna Placement Guidelines for CubeOrange Builds
- Mount the primary antenna (Antenna 1 / Port A) on the aft of the drone, or wherever gets the clearest sky view
- Mount the secondary antenna (Antenna 2 / Port B) forward along the drone’s longitudinal axis
- Maintain a minimum 20 cm baseline — 50 cm is optimal for most 450-700 mm class quadcopters
- Use matched antennas with identical gain patterns (we recommend Tallysman VSP6900 or similar dual-band GNSS antennas)
- Cable length differences between the two antennas should not exceed 10 cm to avoid phase center bias
Mounting and Mechanical Integration
The UFOFACTORY GNSS receiver lineup offers form factors that fit different build types:
| Receiver Model | Dimensions (mm) | Weight | Best For |
|---|---|---|---|
| HB6 | 82 × 70 × 30 | 95 g | Compact builds, 450-550 mm frames |
| EV322 | 66 × 56 × 18 | 108 g | Dual-antenna builds, maximum precision |
| HB21 | 95 × 72 × 35 | 181 g | Industrial builds with 4G LTE RTK |
Each receiver comes with a CNC aluminum enclosure and vibration-dampening mounting holes matching the 30 mm standard M3 hole pattern used by most flight controller stacks. For CubeOrange builds, we recommend:
- Top-mounting the GNSS receiver on the drone’s top plate for optimal sky view
- Placing the CubeOrange underneath in the standard stack position
- Using the provided 10-pin JST-GH cable (30 cm included) for clean routing
- Adding ferrite beads on the power lines if running high-power ESCs nearby
Related GNSS Products
- 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
GPS_TYPE = 1 and the Septentrio receiver on GPS1 port (Serial 3) with GPS_TYPE = 9. Set GPS_BLEND_MASK = 3 to blend velocity and position. The flight controller automatically prefers the more accurate RTK solution and falls back to the internal GPS if RTK lock is lost — ideal for safety-critical missions.COMPASS_TYPEMASK to prefer the GNSS yaw over the compass for heading, and use the compass only as a backup.SERIAL3_BAUD = 230 in ArduPilot or GPS_1_BAUD = 230400 in PX4 and update the receiver’s baud rate via RxControl or the SBF command interface.
