Dual GPS with Here2 and Pixhawk2.1

I had an issue with the Here2 where it would appear to reboot in flight, same as this thread:


The best fix seemed to be installing dual GPS on our aircraft. We had this reboot issue occur on two separate aircraft both running the Here2 GPS and after examining the wiring we ruled that out as the issue.

At the end of the day I found two good ways to configure dual GPS. If you’ve recently bought a Here2 GPS they come configured to be used on the CAN bus which is an interesting choice because I could not get it to work in stable version(3.6.10) using the CAN bus. However, upgrading to copter 4.0(dev) made it so I could get the GPS working on CAN bus.

Setup 1 had the Primary GPS connected to GPS1 with the Here2 in I2C mode. Secondary GPS was in CAN1, (labeled CAN2 on my Pixhawk2.1) I believe the mislabeling has been fixed on newer pixhawk 2.1s. Running copter 4.0 dev.

Params that needed to be changed/updated:
CAN_D1_PROTOCOL:1
CAN_D2_PROTOCOL:1
CAN_P1_DRIVER:1
CAN_P2_DRIVER:1
GPS_TYPE2:9
NTF_LED_TYPES:231

I also set
GPS_AUTO_SWITCH: 1 which chooses the best GPS instead of blending, if you want to blend GPS then you would need a value of 2 here.

After taking the aircraft outside and rebooting I verified that I was getting dual GPS by monitoring Satcount and Satcount2, it worked great on the ground and in flight, however, considering this is an aircraft I use at work I was not thrilled using the dev version of copter so I came up with setup 2.

Setup 2 had the primary GPS still connected to GPS1, secondary GPS connected to GPS2 (I had to but the 6 pin cable from IR Lock). Arducopter version was reverted to 3.6.10.

For Params:
GPS_TYPE2: 2
CAN protocols and drivers are not essential for this set up and can be set back to default or left as is.
I also found it handy to check Serial 4 to make sure the protocol is set to 5/GPS.

Note: If you recently bought a Here2 it comes set up for CAN protocol and if you just swap the cable and plug it into GPS2 like I did it won’t work. While you are in there swapping out the can cable to the 6 pin cable, take the other two screws holding the bottom plate on the Here puck. Inside you’ll find a little switch with I2C and CAN labeled, switch it to I2C in order for the GPS to work plugged into GPS2.

From what I can tell dual GPS works just as well in this setup as it does with the CAN bus, but I was looking for a solution in stable version. Didn’t find a whole lot on setting this up on the forums so I thought I’d share my experience.

1 Like

I think the can version can work on 3.6 too, you just have to manually set canbus id. New version 4.0 dev has dinamic id allocation, that why it works.

Yes, I believe so as well but I could never get the Here to show up in the SLCAN/UAVCAN menu. Could be I just wasn’t doing it right.

I am using a Zubax uavcan gps module on 3.6.x and i had to manually set id for it before it could work. I guess Here2 is the same.

Every time I try to set it manually with the Here, mission planner freezes up on the SLCAN page and never detects the GPS. I’ve tried on dev version, and stable version with three different GPS pucks and two carrier boards. Honestly not worth the struggle considering it works with GPS 2 on stable version.

Great feedback thank you Jake!