As already adressed here, I noticed several issues with the “GPS for yaw” functionality in copter 4.1.0-beta1. I am using a double F9P setup which antennas have a distance of 70 cm.
I followed the configuration instructions given here: https://ardupilot.org/copter/docs/common-gps-for-yaw.html
First problem is, that it is currently a “fall-back only”. This means, you must have a successful heading reading from double-GPS before it can fall back to compass source. As an after-affect this means, the vehicle can not be armed indoors (e.g. for a motor test) without disabling pre-arm-checks or setting EK3_SRC1_YAW = 1.
As long as you do not have a good GPS signal on both F9P modules, you will see the message “PreArm: EKF attitude is bad” and it will prevent you from arming.
You can download a short dataflash log from such an indoor situation here: https://kopterkraft.com/downloads-static/89%2001.01.1980%2001-00-00.bin
Second problem(?) may be, that it propably seems to fall back to compass only when the GPS reception completely disappears (which I never tested), but not, when the yaw seems to be too inconsistent. When I was testing yesterday, it looked like GPS signal was interferenced by an onboard device (a single board computer) with a CPU frequency also in the 1.5 GHz range. As a result, GPS2 fix status quite often went down form “rtk fixed” to “rtk float” or even “3dgps” although the number of satellites received still was 28 and hdop was 0.5.
In these situations, heading began to drift continously. Mission Planner issued warnings like “Yaw is inconsistent by xy degrees” where xy was something like 24, 52, 153 …
The question here is for me: What are the conditions that will trigger a fall-back from GPS based heading to compass based heading?
I understand, that it is difficult to decide, if the inconsistency between GPS heading and compass heading is caused by strong magnetic interference or by GPS errors. But when GPS2 only has status rtk float or 3dgps, the cause of the inconsistency is more likely the GPS quality.