This complete guide integrates the official PX4 driver documentation and Septentrio factory manuals to cover the full setup of Septentrio mosaic-G5 series GNSS receivers with Pixhawk flight controllers — including UART and DroneCAN wiring, PX4 and ArduPilot configuration, RTK centimeter-level differential positioning, and dual-antenna GNSS heading calibration. It is designed for UAV surveying and mapping, power-line inspection, and low-altitude autonomous driving developers.
1. Supported Hardware & Firmware Overview
This guide applies to the following Septentrio GNSS modules and Pixhawk flight controller integrations:
Hardware List
| Module | Description |
|---|---|
| mosaic-G5 P3 | Single-antenna high-precision RTK positioning module, full constellation, full frequency band |
| mosaic-G5 P3H | Dual-antenna heading module with native GNSS heading output — no magnetometer required |
| mosaic-go G5 Evaluation Kit | Serial direct-connect version with COM1/COM2 interfaces |
| ARK G5 RTK GPS | DroneCAN bus version with integrated IMU, barometer, and magnetometer |
| AsteRx-m3 Pro / Pro+ | Industrial-grade dual-antenna receivers, switchable between rover and base station modes |
Firmware Requirements
| Firmware | Requirement |
|---|---|
| PX4 | v1.15 or newer (Septentrio driver built in by default) |
| ArduPilot | 4.5.0 or newer (SBF protocol driver) |
Core Technical Specifications
| Parameter | Specification |
|---|---|
| Positioning accuracy | RTK fixed solution ≤ 2.5 cm |
| Data update rate | Up to 20 Hz (DroneCAN) / configurable output rate |
2. Hardware Wiring (Serial vs. DroneCAN)
Option 1: Direct UART Serial Connection (mosaic-go G5)
COM1 interface pinout (6-pin JST GH):
| Pin | Signal | Description | Connect to Pixhawk |
|---|---|---|---|
| 1 | VCC | 5V power input | 5V |
| 2 | TXD | Serial transmit (to flight controller RX) | RX |
| 3 | RXD | Serial receive (from flight controller TX) | TX |
| 4 | GND | Ground | GND |
| 5 | nRST | Reset (optional) | — |
Important warning: The mosaic-go G5 wiring is NOT compatible with standard Pixhawk GPS modules. Never plug a standard 6-pin GPS cable directly into it — this may burn out the module.
Wiring essentials:
- Connect the receiver to the Pixhawk GPS1 or GPS2 hardware serial port
- Must disable the native GPS driver:
GPS_1_CONFIG = Disabled(prevents port conflicts) - Main receiver port parameter:
SEP_PORT1_CFG = GPS1 - Secondary receiver port parameter:
SEP_PORT2_CFG = GPS2
Option 2: DroneCAN Bus Connection (ARK G5)
Use the Pixhawk standard 4-pin JST GH CAN cable and connect to the flight controller CAN1/CAN2 ports.
ARK G5 hardware parameters:
| Parameter | Specification |
|---|---|
| Built-in module | mosaic-G5 P3, 20 Hz positioning update rate |
| Integrated auxiliary sensors | IIS2MDC magnetometer, BMP390 barometer, ICM-42688-P 6-axis IMU |
| Power | 5V / 270 mA |
| Dimensions | 48 x 40 x 15.4 mm, weight 13 g |
| Included accessories | Full-band GNSS helical antenna + CAN cable |
3. PX4 Flight Controller Configuration (Serial)
3.1 Firmware Pre-Check
PX4 v1.15+ includes the Septentrio driver by default. To verify: connect the flight controller in QGroundControl, then search for the Septentrio parameter group in the parameter list.
If the group is not found, enable CONFIG_DRIVERS_GNSS_SEPTENTRIO=y in the board-level Kconfig and recompile the firmware.
3.2 Core Parameter Configuration
| Parameter | Value | Description |
|---|---|---|
| GPS_1_CONFIG | Disabled | Disable the native GPS driver to free the port |
| SEP_PORT1_CFG | GPS1 | Main receiver mount port |
| SEP_PORT2_CFG | GPS2 | Second receiver (optional) |
| SEP_AUTO_CONFIG | Enabled (default) | Automatically configure receiver parameters |
| SEP_OUTP_HZ | 10 | Positioning data output rate; 10–20 recommended for RTK |
| SEP_HARDW_SETUP | Default / Moving base | Hardware mode selection |
| SEP_STREAM_MAIN | 1 | Main navigation data stream number |
| SEP_STREAM_LOG | 2 | Log data stream number (must differ from MAIN) |
3.3 Serial Baud Rate Configuration
The driver automatically detects the receiver baud rate, or you can set it manually.
| Scenario | Recommended baud rate | Description |
|---|---|---|
| Basic positioning | 115200 | Minimum reliable communication rate |
| RTK differential positioning | 460800 | Ensures differential data is not lost |
| High update rate (20 Hz) | 921600 | First choice for high-bandwidth scenarios |
| Fallback default | 230400 | Used when automatic driver detection fails |
Non-standard baud rates (500000, 1000000) are supported but not recommended. On error, the driver automatically degrades to 230400.
4. PX4 Flight Controller Configuration (DroneCAN — ARK G5)
| Parameter | Value | Description |
|---|---|---|
| UAVCAN_ENABLE | 2 | Enable DroneCAN sensors (set to 3 if also using CAN ESCs) |
| UAVCAN_SUB_GPS | Enabled | Subscribe to DroneCAN GPS data |
| UAVCAN_SUB_MAG | Enabled | Subscribe to magnetometer data |
| UAVCAN_SUB_BARO | Enabled | Subscribe to barometer data |
| SENS_GPS0_OFFX/Y/Z | Relative to CG | 3-axis mounting offset |
5. ArduPilot Flight Controller Configuration (Serial)
| Parameter | Value | Description |
|---|---|---|
| GPS_TYPE | 26 | Septentrio SBF protocol driver |
| SERIALx_PROTOCOL | 5 | Set the corresponding serial port to GPS protocol |
| GPS_AUTO_CONFIG | 0 | Disable auto-configuration to avoid conflicts |
Dual-Antenna Heading Mode (P3H)
| Parameter | Value | Description |
|---|---|---|
| GPS_MB1_TYPE | 1 | Enable dual-antenna heading mode |
| GPS_MB1_OFS_X/Y/Z | meters | 3-axis antenna baseline offsets |
| EK3_SRC1_YAW | 2 | Prioritize GNSS heading, override the magnetometer |
6. Dual-Antenna GNSS Heading Deployment
Option 1: Integrated Dual-Antenna Receiver (mosaic-G5 P3H)
Connect both antennas and the flight controller auto-detects. Only these settings are required:
SEP_HARDW_SETUP = DefaultSEP_YAW_OFFS= heading angle offsetSEP_PITCH_OFFS= pitch angle offset
Option 2: Dual Single-Antenna Moving Base
Connect two single-antenna receivers to the GPS1 and GPS2 ports:
SEP_HARDW_SETUP = Moving baseSEP_PORT1_CFG= rover (main antenna, rear)SEP_PORT2_CFG= base station (auxiliary antenna, front)
Mandatory Antenna Mounting Rules
| Item | Requirement |
|---|---|
| Baseline distance | ≥ 30 cm, ≥ 50 cm recommended (longer baseline = higher heading accuracy) |
| Mounting height | Phase centers of both antennas should be as level as possible |
| Mounting direction | Along the fuselage longitudinal axis, main antenna rear, auxiliary antenna front |
| Offset compensation | Configure SEP_YAW_OFFS / SEP_PITCH_OFFS when mounting direction is off-axis |
| Electromagnetic shielding | Keep away from motors, ESCs, and high-voltage cables |
| Obstruction control | Avoid antenna obstruction and multipath reflection |
Core advantage: GNSS heading is completely independent of the magnetometer — ideal for strong magnetic field environments such as power-line inspection and heavy UAVs.
7. RTK Centimeter-Level Differential Positioning
7.1 Differential Link Options
| Option | Description | Best for |
|---|---|---|
| Ground base station | Same-model receiver outputs RTCM3 differential data, sent over the telemetry link | Local operations within controlled range |
| NTRIP network | Flight controller telemetry connects to an NTRIP server for differential data | Wide-area operations with network coverage |
7.2 Positioning Status Levels
Single-point positioning (2–5 m) → RTK float solution (decimeter-level) → RTK fixed solution (centimeter-level)
8. Log Configuration & Troubleshooting (FAQ)
Q1: Septentrio parameter group not visible in QGC?
Check: PX4 firmware is older than v1.15, or the driver was not compiled into the firmware.
Fix: Upgrade to the latest stable firmware, or enable CONFIG_DRIVERS_GNSS_SEPTENTRIO=y in Kconfig and recompile.
Q2: No GPS positioning data on the flight controller?
Check: TX/RX reversed, no common ground, receiver not outputting SBF protocol, or the port is occupied by the native GPS driver.
Fix: Verify the wiring (RX↔TX crossover); confirm GPS_1_CONFIG = Disabled; check that the receiver has SBF output enabled.
Q3: RTK cannot reach a fixed solution?
Check: Differential link packet loss, severe antenna obstruction, insufficient satellite count, or mismatched differential data format.
Fix: Raise the telemetry baud rate to 460800 or above; optimize antenna placement; confirm the base station and rover use matching frequency bands.
Q4: GNSS heading drifts or is inaccurate?
Check: Antenna baseline too short, antennas not level, mounting direction offset, or antenna phase centers not aligned.
Fix: Extend the baseline to ≥ 50 cm; mount antennas at equal height; correct with the SEP_YAW_OFFS offset parameter.
Log Configuration Parameters
| Parameter | Values | Description |
|---|---|---|
| SEP_LOG_HZ | 0–10 | Logging frequency (0 = disabled) |
| SEP_LOG_FORCE | Enabled / Disabled | Enabled = overwrite old logs, Disabled = append |
| SEP_LOG_LEVEL | Lite / Basic / Default / Full | Log detail level |
| SEP_DUMP_COMM | Enabled / Disabled | Record all serial traffic between flight controller and receiver |
MAVLink Console Debug Commands
| Command | Function |
|---|---|
| septentrio status | View receiver health, satellite count, positioning accuracy |
| septentrio start | Start the Septentrio driver |
| septentrio stop | Stop the driver |
| septentrio reset cold | Cold reset (restore factory ephemeris, reset all parameters) |
| septentrio reset warm | Warm reset (clear cached positioning data) |
9. Companion Tools & Official Resources
| Tool | Purpose | How to get it |
|---|---|---|
| RxTools / RxControl | Septentrio receiver configuration, monitoring, and data analysis | Official website customer support download page |
| QGroundControl | PX4 official ground station | Open source, free |
| Mission Planner | ArduPilot official ground station | Community maintained |
10. SEO Structured Data Recommendations
To improve display in Google featured snippets and search results, embed the following schema markup on this page:
Image Alt Text Recommendations
alt="mosaic-go G5 COM1 6-pin JST GH pinout wiring diagram"alt="PX4 Septentrio core parameter configuration table — GPS_1_CONFIG, SEP_PORT1_CFG and more"alt="Dual-antenna GNSS heading mounting rules — 50 cm baseline along the fuselage longitudinal axis"

