Pixhawk 2.1 2 GPS Configuration

Hello,

I’m interested in a dual GPS receiver channels (for full redundancy purpose), and would appreciate if someone can explain if this option is available with Pixhawk 2.1.

Does the cube have two separated GPS receivers or just two antenna inputs feeding the same receiver?

Hello @itziks

I am not sure if there is some kind of limitation in Pixhawk 2.1, but the modern cubes support dual GPS configuration with Here3 receivers. Check this out:

There’s no real limitation.
The port labeled as GPS is really just a serial port and I2C port combined. For a second GPS unit you just need to connect it to another serial port and set the correct parameters. Could require some cabling/connector work.

You wont need another compass, traditionally connected via I2C. The CAN GPS units provide the compass data over CAN.

You could have either of these set up

  • a traditional GPS unit with GPS and compass, and a 2nd CAN GPS via a CAN port
  • two traditional GPS units, the 2nd one connected via serial port (no compass)

So it really depends on what hardware you have available.

Use the latest stable Ardupilot firmware, there’s numerous fixes for blended GPS and GPS fail-over.
Normally you would select “Use Best”
https://ardupilot.org/copter/docs/parameters.html#gps-auto-switch-automatic-switchover-setting

1 Like

Using two Here3:
You need the latest Ardupilot firmware to manually assign different node ids to Here3 to work properly (node ids are 0-125).
After manually setting the two Here3 node ids in turn, Connect the two Here3 interfaces to the flight controller CAN 1 and CAN 2, respectively.
Turn on the flight controller and connect it to Mission Planner. Go to “Config/Tuning > Full Parameter List” and modify the following parameters:
*CAN_D1_PROTOCOL: 1
*CAN_D2_PROTOCOL: 1
*CAN_P1_DRIVER: 1
*CAN_P2_DRIVER: 1
*GPS_TYPE: 9
*GPS_TYPE2: 9
*NTF_LED_TYPES: 231
Click “Write Params” when done. CAN functions will be available after rebooting the flight controller.

This helps when using some CAN devices that may (or may not) take some time to boot and be ready.
BRD_BOOT_DELAY,5000
This means that Ardupilot will delay booting for 5 seconds to allow external devices to boot first, so Ardupilot is ready to communicate with those devices right away.
If the CAN or other devices take a long time to boot, and Ardupilot boots quicker, their detection can be skipped over before they are ready.
There’s no detriment to having this boot delay even if you dont need it.

1 Like