Last updated
Last updated
PX4 supports global navigation satellite systems (GNSS) (including GPS, GLONASS, Galileo, BeiDou, QZSS and SBAS) using receivers that communicate via the u-blox, MTK Ashtech or Emlid protocols, or via UAVCAN. It also supports and Post-Processing Kinematic (PPK) GPS Receivers, which extend GPS systems to centimetre-level precision.
PX4 can be used with the following compass parts (magnetometers): Bosch BMM 150 MEMS (via I2C bus), HMC5883 / HMC5983 (I2C or SPI), IST8310 (I2C) and LIS3MDL (I2C or SPI). Up to 4 internal or external magnetometers can be connected, though only one will actually be used as a heading source.
The system automatically chooses the best available compass based on their priority (external magnetometers have a higher priority than internal magnetometers). If the primary compass fails in-flight, it will failover to the next one. If it fails before flight, arming will be denied.
PX4 should work with any unit that communicates via the u-blox, MTK Ashtech or Emlid protocols, or via UAVCAN.
This list contains 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.
Notes:
✓ or a specific part number indicate that a features is supported, while ✗ or empty show that the feature is not supported. "?" indicates "unknown".
Where possible and relevant the part name is used (i.e. ✓ in the GPS column indicates that a GPS module is present but the part is not known).
Some RTK modules can only be used in a particular role (base or rover), while others can be used interchangeably.
This list contains compasses (magnetometers) without GNSS.
Note:
✓ or a specific part number indicate that a features is supported, while ✗ or empty show that the feature is not supported. "?" indicates "unknown".
:::warning Pay attention to pinout when connecting the GPS module. While these are all software-compatible, there are several different pin orderings. :::
GPS configuration on Pixhawk is handled transparently for the user - simply connect the GPS module to the port labeled GPS and everything should work.
The following steps show how to configure a secondary GPS on the TELEM 2
port in QGroundControl:
Open QGroundControl and navigate to the Vehicle Setup > Parameters section.
Reboot the vehicle in order to make the other parameters visible.
After setting up the second GPS port:
When using GPS for yaw fusion you will need to configure the following parameters:
GPS/RTK-GPS
Compass
:::tip When using flight controllers, we recommend using a combined GPS + Compass mounted as far away from the motor/ESC power supply lines as possible - typically on a pedestal or wing (for fixed-wing). The internal compass may be useful on larger vehicles (e.g. VTOL) where it is possible to reduce electromagnetic interference by mounting the Pixhawk a long way from power supply lines. On small vehicles an external compass is almost always required. :::
and is a compass (not a GPS).
The list may omit some discontinued hardware that is still supported. For example is discontinued and may be removed from the list in a future release. The original Here has already been removed. Check earlier versions if a discontinued module is not mentioned here.
Instructions for connecting the GPS (and compass, if present) are usually provided by the manufacturer (at least for more common ).
controllers typically have a clearly labeled port for connecting the GPS, and the compass is connected to either the I2C or SPI port/bus (depending on the device).
The , , , , , and can also be connected via .
The "standard" GPS configuration is provided below. Additional device-specific configuration may be provided in PX4 or manufacturer device documentation (e.g. ).
:::warning The GPS protocol expected by PX4 defaults to u-blox (by default other GPS types like Trimble, Emlid, MTK, will not be detected) The protocol can be configured with . :::
:::note The default works for most devices. If you are using the Trimble MB-Two you will need to modify the configuration to explicitly set the rate to 115200 baud. :::
To use a secondary GPS, attach it to any free port, and then perform a to assign to the selected port.
the parameter to TELEM 2.
Select the GPS tab (1), then open the parameter (2) and select TELEM 2 from the dropdown list (3).
Select the Serial tab, and open the parameter (TELEM 2
port baud rate): set it to Auto.
Configure the ECL/EKF2 estimator to blend data from both GPS systems. For detailed instructions see: .
GPS can be used as a source for yaw fusion when using modules where yaw output is supported by the device (e.g. ) or when using some .
:::tip If using this feature, all other configuration should be setup up as normal (e.g. ). :::
Compass calibration is covered in: . The process is straightforward and will autodetect, , calibrate, and prioritise, all connected magnetometers.
(Compasses)
Device
GPS
Compass
PPK
M9N
ICM42688p
F9P
ICM42688p
✓
✓
SAM-M8Q
MMC5983MA
M8P/M8N
✓
✓
F9P
RM3100
✓
✓
F9P
RM3100
✓
✓
M8N
ICM20948
M8P
HMC5983
✓
M8P
ICM20948
✓
Drotek DP0804 (and other Drotek u-blox GPS/Compasses)
M9N
LIS3MDL
F9P
RM3100
✓
✓
Emlid Reach M+ - PX4 only supports "ordinary" GPS with this module. RTK support is expected in the near future.
✓
✗
FB672, FB6A0
✓
✓
F9P
IST8310
✓
M8N
BMM150
M8N
IST8310
UBX-M8030
QMC5883
M8N
IST8310
M9N
IST8310
M9N
BMM150
F9P
IST8310
✓
✓
F9P
BMM150
✓
✓
F9P
IST8310
✓
F9P
BMM150
✓
✓
M8P
IST8310
✓
UM982
IST8310
✓
✓
M8N
✓
MC-1612-V2b
optional
✗
MC-1612-V2b
✗
MC-1612-V2b
IST8310
✗
M8N
LIS3MDL, IST8308
F9P
✗
✓
✓
AsteRx
✓
✓
✓
Septentrio dual antenna heading
✓
mosaic X5 / mosaic H
✓
✓
✓
Septentrio dual antenna heading
✓
M8N
HMC5983, IST8310, LIS3MDL
F9P
✗
✓
✓
F9P
✗
✓
✓
MAX-M8Q
LIS3MDL
?
RM3100
✓
The angle made by the baseline (the line between the two GPS antennas) relative to the vehicle x-axis (front/back axis, as shown here).
Set bit position 3 "Dual antenna heading" to 1
(i.e. add 8 to the parameter value).