Integration Solution for Septentrio GNSS Receiver with Pixhawk Standard Flight Controller-based ArduPilot Autopilot System

Abstract

A professional integration solution that easily achieves deep adaptation of Septentrio high-precision GNSS receivers with Pixhawk standard flight controllers! This article details how to seamlessly interface an AsteRx-m3 Pro+ receiver with a Pixhawk 4 flight controller via the ArduPilot autopilot, covering the entire process of hardware connection, firmware configuration, SBF data stream setup, and dual-antenna heading functionality. Whether for basic positioning or high-precision heading calculation, only simple parameter adjustments are required for quick deployment, providing stable and reliable centimeter-level positioning support for unmanned aerial systems. Follow our steps immediately to unlock the full potential of your professional equipment!

AI Q&A

Q: When integrating the Septentrio GNSS receiver with Pixhawk 4, why must the COM2 interface on the RIB board be used?

A: According to the integration guide, only the voltage level output by the COM2 interface on the RIB board meets the input requirements of the autopilot, ensuring signal compatibility and preventing hardware damage. Other interfaces may cause communication anomalies or device failure due to voltage mismatch.

Q: How to ensure the Septentrio receiver’s configuration does not get lost after power-off?

A: In the receiver’s web user interface, copy the current configuration to the “Startup” configuration via the “Management > Configuration” menu. This operation saves the settings to the receiver’s non-volatile memory, allowing the configuration to remain effective after power cycling.

Q: If simultaneous use of GNSS position and heading information is needed, what key settings are required on the ArduPilot and receiver sides respectively?

A: To use both GNSS position and heading information simultaneously, a two-step operation is required on both the ArduPilot and receiver sides:

Receiver side: Add “AuxAntPositions” and “AttCovEuler” messages to the SBF data stream on the COM2 port.

ArduPilot side: Modify key parameters, including enabling EKF3 (AHRS_EKF_TYPE=3), setting the yaw source to GPS (EK3_SRC1_YAW=2 or 3), and changing the second GPS type to heading mode (GPS_TYPE2=26).

Q: During the integration process, how to verify that Pixhawk 4 is successfully receiving and parsing SBF data from Septentrio?

A: In Mission Planner’s Flight Data interface, if the GPS2 status shows “3D Fix” and a position indicator appears on the map, it indicates that Pixhawk 4 is normally receiving and parsing the SBF data stream from the COM2 port. If dual-antenna heading functionality is enabled, also check if heading angle data is displayed synchronously.

High-Precision GNSS Technology Empowers UAV Flight Control Systems

High-precision GNSS technology unlocks centimeter-level positioning and real-time heading calculation capabilities for the UAV flight control domain by deeply integrating professional-grade receivers with open-source flight control systems. This technical solution achieves system integration of centimeter-level real-time positioning and dual-antenna heading functionality. Through standardized hardware interfaces and automated configuration processes, laboratory-level positioning accuracy is directly migrated to industrial application scenarios. Its core advantages are: providing stable and reliable spatiotemporal reference information, significantly enhancing navigation robustness in complex environments; supporting multi-source data fusion architecture, enabling the flight control system to simultaneously obtain full-dimensional perception capabilities for position, velocity, and attitude; adopting a modular design philosophy, balancing the convenience of plug-and-play with the flexibility for deep customization, constructing scalable high-precision navigation solutions for professional fields such as surveying and mapping, precision agriculture, and power line inspection.

ArduPilot Overview

ArduPilot is a leading open-source autopilot system, providing core autonomous flight/driving control capabilities for various unmanned vehicles (including multicopters, fixed-wing aircraft, ground vehicles, underwater robots, and antenna trackers). It is not just firmware, but a complete technology stack consisting of open-source firmware, a rich hardware ecosystem, powerful ground control station (GCS) software, and a global user and developer community. ArduPilot is dedicated to creating and using trusted, autonomous unmanned vehicle systems for the peaceful well-being of all humanity. It provides a comprehensive set of tools suitable for almost any vehicle and application. As an open-source project, ArduPilot continuously evolves based on rapid feedback from a vast user community. The development team collaborates with the community and commercial partners to add features that benefit everyone. While ArduPilot does not manufacture hardware, its firmware can run on a wide variety of hardware to control different unmanned vehicles. Combined with GCS software, vehicles running ArduPilot can possess advanced capabilities, including real-time communication with the operator. ArduPilot has a large online community dedicated to helping users solve problems, providing solutions, and offering support.

Core Components

-Hardware Platform (Controller & Sensors): As the “brain and senses” of the system, ArduPilot supports an extremely wide range of hardware platforms, from classic APM, Pixhawk series to Linux-based boards (like Raspberry Pi), offering great flexibility to users.

-Firmware: This is the core software running on the controller, divided by vehicle type into ArduCopter (multicopter), ArduPlane (fixed-wing), ArduRover (ground vehicle), ArduSub (underwater), and AntennaTracker. The firmware processes sensor data, executes navigation algorithms, and controls actuators to achieve autonomous flight, mission execution, and stable control.

-Ground Control Station (GCS): The primary interface for user-vehicle interaction, represented by Mission Planner (Windows), alongside others like QGroundControl, MAVProxy. Core functions include: initial setup and parameter configuration, firmware flashing, sensor calibration, waypoint mission planning, real-time telemetry data display, flight log analysis, and advanced simulation.

-Community & Support: Features a large and active global open-source community communicating and collaborating via forums, Wiki documentation, and developer conferences. Offers a Commercial Partner program providing in-depth technical support, prioritized development influence, and joint roadmap planning for enterprise users.

Core Features & Advantages

-Mature & Reliable: Project started in 2007, with over 15 years of continuous development history, code proven through countless practical applications and extreme environments (e.g., winning international drone challenges, polar flights).

-Open Source & Open: Follows open-source licenses, allowing users to freely use, modify, and distribute. All development is public on GitHub, promoting rapid innovation and transparent collaboration.

-Comprehensive & Advanced Features: Supports from basic stable flight to complex autonomous missions, swarm coordination, visual obstacle avoidance, precision landing, dynamic positioning, etc. Continuously integrates state-of-the-art algorithms (like EKF).

-Highly Customizable & Modular: Thanks to the Hardware Abstraction Layer (HAL) design, easily adapts to new hardware. Modular code architecture facilitates customization for specific applications (e.g., agriculture, mapping, search and rescue).

-Complete Toolchain: Provides complete development and debugging support from Hardware-in-the-Loop (HITL) simulation, automated testing to log analysis tools.

Getting Started & Usage

Important Prerequisite: Users must carefully read and follow the “First Time Setup” and “First Flight/Tuning” guides in the official documentation. This is the foundation for safe and successful operation.

Standard Process:

-Choose Hardware: Select appropriate flight controller and sensor suite based on mission requirements and budget.

-Installation & Configuration: Assemble the vehicle, connect hardware, use GCS for firmware flashing, sensor calibration, and basic parameter setup.

-Testing & Tuning: Conduct first flight/drive in a safe environment, and perform PID tuning as needed to optimize performance.

-Mission Execution: Plan waypoint missions, execute autonomous flights, and analyze logs for improvement.

Summary

ArduPilot is a powerful, highly flexible, open-source autopilot ecosystem driven by a global community. It democratizes cutting-edge autonomous control technology, enabling developers, enterprises, and enthusiasts to build reliable unmanned systems for various innovative applications. Its open-source nature ensures transparency, auditability, and continuous evolution, making it the preferred platform for numerous projects in academia and industry.

Step Guide for Integrating the Latest Septentrio GNSS Receiver with ArduPilot Autopilot Based on Pixhawk Standard Flight Controller Boards

In the following specific operational guide, we will use the Pixhawk 4 flight controller as an example, but this method is also compatible with all other Pixhawk-standard flight controllers. This configuration was completed in a laboratory environment using an AsteRx-m3 Pro+ receiver mounted on a RIB board, without installing it on an actual Unmanned Aircraft System (UAS). All instructions are tailored for this specific hardware, receiver, and wiring combination, and therefore may require corresponding adjustments in different configurations.

Materials required for integration:

-Windows Laptop/Desktop PC

-AsteRx GNSS OEM Receiver

-RIB Board (Note: Only the COM2 interface outputs voltage levels suitable for the autopilot)

-Pixhawk 4 Flight Controller flashed with the latest ArduPilot firmware

-CBL_UAS_44-pin to Autopilot Cable (Septentrio Part No. 215947)

-Latest version of Mission Planner Ground Control Station software installed on any laptop/desktop

-Dual-Frequency GNSS Antenna(s) (one or two)

-Adapters and cables for connecting to MMCX interfaces

-2 Micro-USB Cables

First of all you need to make sure that the receiver is powered with at least 3.3V. You can use the micro USB connector or the open ended supply (labeled “PWR & GND”) on the 44 pin cable for this. Connect one or two GNSS antennas to the external antenna ports on the AsteRx-m3 Pro+ board as shown in Figure 1.

Figure 1: External Antenna Ports

Now connect the 44-pin cable to the 44-pin connector on the RIB and connect the 6 pin

JST GH connector to the UART & I2C B port on the Pixhawk 4 as shown in Figure 2.

Figure 2: AsteRx-m3 Pro+ board on RIB and Pixhawk 4 connected through Cable

On a Windows Laptop/PC, download and install Mission Planner from the Ardupilot Website. The drivers for the Pixhawk 4 will be installed, along with the Mission Planner software. Using a Micro-USB cable, connect the Pixhawk 4 to the Laptop/PC and it should automatically detect the device. You can install the official firmware by going to Setup and selecting the correct firmware according to your vehicle/UAV. Currently PVT SBF blocks are supported by the official ArduPilot software. If you are also interested to use GNSS attitude information from the receiver, you can download custom firmware from the Septentrio GitHub release page.

In Mission Planner, select the port which corresponds to the Pixhawk 4 as shown in Figure 3 and then click connect (please note that port enumeration will be different for different connections).

Figure 3: Selection of Pixhawk 4 port in the Mission Planner

After successfully connecting to the Pixhawk 4, select the “CONFIG” tab from the top and open the Full Parameter List (highlighted on the left in figure 4). Parameters are divided into groups by the content that it is regarding. Find the “GPS” sub-section and open it to reveal all the GPS specific parameters. Search for “GPS_TYPE2” and set its value to 10 to select SBF as the incoming data format.

Figure 4: Setting second GPS parameters for input data as SBF

Also make sure that the “SERIAL4_BAUD” parameter is set to 115 and that “SERIAL4_PROTOCOL” is configured as value 5 for GPS as shown in Figure 5.

Figure 5: Setting second GPS parameters for the serial port

Finally, you can verify that the Ardupilot automatic configuration is turned on by setting “GPS_AUTO_CONFIG” to 1. Or you can keep it turned of and bypass the Septentrio receiver configuration and do it manually as will be shown below.

Figure 6: Disabling automatic GPS configuration by Ardupilot

After applying all the above settings click on “Write Params” (on the right hand side of the screen in above figures) to save the settings to memory.

Now, open the receiver’s webUI (or another interface) and define an SBF data stream on COM2 with an output rate of 10Hz for the AsteRx-m3 Pro(+). In the webUI, you can do this via NMEA/SBF Out as shown in figure 7. The required SBF messages are “PVTGeodetic”, “DOP”, “VelCovGeodetic”, “BaseVectorGeod” and “ReceiverStatus”.

Figure 7: Setting an Output SBF stream on COM2

After this, you can save the current configuration in the non-volatile memory of the receiver to make sure that the receiver does not lose its configuration after power cycling. This can be done by going Admin > Configurations and copying the “current” config to “boot” as shown below.

Figure 8: Saving current configuration in non-volatile memory of the receiver

Now the Pixhawk 4 should be able to receive SBF data through serial COM2 port of the receiver. On the Flight Data screen, the GPS2 status should now be displayed, along with a location indicator on the map. In this case, the screen reports 3D Fix for GPS2 to indicate a standalone solution as shown in Figure 9.

Figure 9: GPS2 status displayed in Mission Planner

Dual Antenna settings:

Similarly, if you are interested to use both GNSS position and heading then you need to output AuxAntPositions and AttCovEuler SBF messages through the same COM2 port.

Figure 10: Setting an Output SBF stream on COM2 with Attitude SBF messages

Similarly, on the Ardupilot side you need to modify these extra settings:

AHRS_EKF_TYPE = 3 (to use EKF3)

EK2_ENABLE = 0 (to disable EKF2)

EK3_ENABLE = 1 (to enable EKF3)

EK3_MAG_CAL is not used for this feature so it can be left at its default value (“0” for Plane, “3” for Copter, “2” for Rover)

EK3_SRC1_YAW = 2 (“GPS”) or 3 (“GPS with Compass Fallback”) if a compass(es) is also in the system

GPS_TYPE2 = 26 (SBF-Heading)

GPS_MB1_OFS_X, GPS_MB1_OFS_Y, GPS_MB1_OFS_Z = Set accordingly to the application

After applying all the above settings click on “Write Params” to save the settings to memory. Now you should be able to see both position and Heading on your Ardupilot.

Figure 11: GPS status and Heading input from Septentrio receiver displayed in Mission Planner

 

Similar Posts