Skip to content

GPS와 나침반

A GNSS system is needed for missions, and some other automatic and manual/assisted modes. PX4는 u-blox, MTK Ashtech 또는 Emlid 프로토콜이나 UAVCAN 통신 수신기를 사용하여 글로벌 내비게이션 위성시스템(GNSS)(GPS, GLONASS, Galileo, BeiDou, QZSS 및 SBAS 포함)을 지원합니다.

Up to two GPS modules can be connected using either a UART or the CAN bus:

GPS와 나침반

PX4 also supports Real Time Kinematic (RTK) and Post-Processing Kinematic (PPK) GNSS Receivers, which extend GNSS systems to centimetre-level precision.

지원되는 GNSS와 나침반

PX4는 u-blox, MTK Ashtech 또는 Emlid 프로토콜 또는 UAVCAN 통신 장치에서 작동합니다.

This table contains non-RTK GNSS units (most of which also have a compass). These have been tested by the PX4 dev team, or which are popular within the PX4 community.

장치GPS나침반CANBuzzer / SafeSw / LEDNotes
ARK GPSM9NICM42688p+ Baro, IMU
Avionics Anonymous UAVCAN GNSS/MagSAM-M8QMMC5983MA
CUAV NEO 3 Pro GPSM9NRM3100+ Baro
CUAV NEO 3X GPSM9NRM3100✗✓✓+ Baro.
CubePilot Here2 GNSS GPS (M8N)M8NICM20948Superseded by HERE3
Emlid Reach M+Supports PPK. RTK expected.
Holybro DroneCAN M8N GPSM8NBMM150+ Baro
Holybro Micro M8N GPSM8NIST8310
Holybro Nano Ublox M8 5883 GPSUBX-M8030QMC5883
Holybro M8N GPSM8NIST8310
Holybro M9N GPSM9NIST8310
Holybro DroneCAN M9N GPSM9NBMM150
Hobbyking u-blox Neo-M8N GPS with CompassM8N
LOCOSYS Hawk A1 GNSS receiverMC-1612-V2boptional✗✗✓
LOCOSYS Hawk R1MC-1612-V2b✗✗✓
LOCOSYS Hawk R2MC-1612-V2bIST8310✗✗✓
mRo GPS u-blox Neo-M8N Dual CompassM8NLIS3MDL, IST8308
Sky-Drones SmartAP GPSM8NHMC5983, IST8310, LIS3MDL+ Baro


  • ✓ 또는 특정 부품 번호는 기능이 지원되는 것을 나타내며, ✗ 또는 비어 있으면 해당 기능이 지원되지 않는 것을 나타냅니다. "?"는 "알 수 없음"을 나타냅니다.
  • 가능하고 관련성이있는 경우 부품 이름이 사용됩니다 (예 : GPS 열의 ✓ GPS 모듈이 있지만 부품을 알 수 없음을 나타냄).
  • The list may omit some discontinued hardware that is still supported (check earlier versions for info about discontinued modules). Removed items include:
    • Here GPS
    • Drotek DP0804

Mounting the GNSS/Compass

PX4는 Bosch BMM 150 MEMS (I2C 버스를 통해), HMC5883/HMC5983 (I2C 또는 SPI), IST8310 (I2C) 및 LIS3MDL (I2C 또는 SPI)과 같은 나침반 부품(자기계)과 함께 사용할 수 있습니다. 최대 4 개의 내외부 자력계를 연결할 수 있지만, 실제로는 하나만 헤딩 소스로 사용됩니다.

Mounting the Compass explains how to mount a GNSS module that has a compass.

하드웨어 설정

The hardware setup depends on the flight controller, the GNSS module, and the connection bus it supports - UART/I2C or CAN.

Pixhawk Standard Connectors

Connecting GNSS/Compass modules is easiest when using a flight controller that supports the Pixhawk connector standard. All flight controllers that follow this standard, including most Pixhawk Standard controllers (and many others) use the same port connectors and wiring for connecting GNSS modules. Because of this standardization, many popular GNSS/Compass modules plug directly into the flight controller "out of the box".

If you're using GNSS/Compass modules that connect via generic UARTs and serial protocols like I2C:

  • The primary GNSS/Compass module should be connected to the 10-pin port labelled GPS1, GPS&SAFETY, or GPS (this is port described as "Full GPS + Safety Switch Port" in the connector standard). The GPS should incorporate a buzzer, safety switch, and UI LED.
  • An (optional) secondary module can be connected to the 6-pin GPS2 port, if present (this is "Basic GPS Port" in the standard).
  • The ports are generally plug-n-play for u-blox modules (only).

The ports include a UART for the GNSS and an I2C port for connecting the Compass. The "Full GPS + Safety Switch Port" includes additional I2C connectors for LEDs, buzzer and safety switch. There is nothing to stop you from connecting the GPS pins to any other free UART as a GNSS port, and the compass or buzzer to an I2C port. However if you do this then you will need to configure the ports.

For DroneCAN GNSS/compass modules:

  • DroneCan GPS modules are connected to CAN-bus ports, which are 4-pin ports labeled CAN1 or CAN2.

Other Flight Controllers/GNSS Modules

If you're working with a flight controller and GNSS module combination that does not comply with the Pixhawk connector standard then you will need to pay particular attention to the connector pinouts on the flight controller and the module. You may need to rewire/solder the connectors.


Some flight controllers use ports that are software-compatible but not connector compatible (even if they use the same connector!) because they use different pin orderings.

The pinouts for the connector standard are documented in the standard. Pinouts for other controllers and the GNSS modules should be included in their manufacturer documentation.


The default configuration for GPS module connected via the GPS serial port is provided below. 추가 장치 설정은 PX4 또는 제조업체 장치설명서에서 제공될 수 있습니다 (예 : Trimble MB-Two > 설정).

Primary GPS Configuration (UART)

Primary GPS configuration on Pixhawk is handled transparently for U-Blox GPS modules — simply connect the GPS module to the port labeled GPS1, GPS&SAFETY, or GPS (if there is only one GPS port), and everything should work.

The default Serial Port Configuration configures GPS1 as a GPS port using GPS_1_CONFIG, sets the protocol to u-blox with GPS_1_PROTOCOL, and a baud rate of 0: Auto with SER_GPS1_BAUD.

For GPS types like Trimble, Emlid, MTK, you will need to change the GPS_1_PROTOCOL appropriately. For Trimble MB-Two you will also need to modify SER_GPS1_BAUD to set the rate to 115200 baud.

Secondary GPS Configuration (UART)

To use a secondary GPS, you will generally attach it to the port named GPS2, if present, and otherwise attach it to any free UART port. The port may be pre-configured, but unlike the primary port, this is not guaranteed.

To ensure the port is set up correctly perform a Serial Port Configuration to assign GPS_2_CONFIG to the selected port.

The following steps show how to configure a secondary GPS on the GPS 2 port in QGroundControl:

  1. Find and set the parameter GPS_2_CONFIG to GPS 2.

    • QGroundControl에서 기체 설정 > 매개변수 섹션으로 이동합니다.

    • Select the GPS tab, then open the GPS_2_CONFIG parameter and select GPS 2 from the dropdown list.

      QGC Serial 예시

  2. 다른 매개변수를 표시하려면 기체를 재부팅하십시오.

  3. Select the Serial tab, and open the SER_GPS2_BAUD parameter (GPS 2 port baud rate): set it to Auto (or 115200 for the Trimble).

    QGC Serial Baudrate 예시

보조 GPS 포트를 설정 후 :

  1. 두 GPS 시스템의 데이터를 혼합하도록 ECL/EKF2 추정기를 설정합니다. 자세한 지침은 ECL EKF 사용 > 이중 수신기를 참고하십시오.

DroneCAN GNSS Configuration

DroneCAN GNSS configuration is covered in the linked document (and in the documentation for specific modules).

GPS를 Yaw/Heading 소스로 설정

GPS can be used as a source for yaw fusion when using modules where yaw output is supported by the device. This is documented in RTK GPS > Configuring GPS as Yaw/Heading Source.

나침반 설정

Compass calibration for an included compass part is covered in: Compass Configuration.

개발자 정보