I’ve flown the same Pixhawk + GPS and external compass setup for years. I moved it to a new wing and updated to the latest Arduplane version a couple days ago. The old version was a NuttX version so… it’s from awhile ago.
The Pixhawk is mounted with the arrow facing the back of the plane, “Yaw 180”. GPS/compass puck facing forward, “normal”. The puck is tilted up at about 30 degrees on the wing. The same issues were happening with the puck sitting on the fuselage right behind the Pixhawk, at “Yaw 180” as well.
The stabilization works, the GPS works, the wing flies well. It will loiter and RTH. The left and right elevons are properly assigned. I had to reverse my pitch stick input for some reason - I’m not sure if this is part of the problem, if “yaw 180” is not correct? The transmitter sends a low value when I pull back on the stick, high value when I push forward.
It’s very hard to arm unless I disable the compass check due to throwing “compass variance”, and the compass values sent back to my ground station are garbage.
I’ve calibrated the compasses many times, it always succeeds. I even tried the old style calibration and the graphs filled in properly. Yet compass variance grows from a low value pointing south to over 2 pointing north, then back to a low value pointing south. The heading value sometimes works, then takes on an offset and doesn’t come back to a true heading.
If I disable one of the compasses, it’s worse. The external compass will randomly reorient - for example, it is working fine pointing south and reading 180. I turn the plane to face north. It turns fine to 0 degrees - then suddenly flips to 180 and throws “compass variance”. Now it is 180 degrees out until I turn it back south, when it suddenly will flip back to 180. Is something trying to detect the orientation and changing it?
The internal compass is broken in a different way. If I unplug the external compass, the internal compass works perfectly - until I power cycle the autopilot. Then it starts up with a random offset. However, rotating it works properly and it will make a full circle and come back to the original value - except for the offset which wrecks everything.
I’m getting sick of flipping and twisting around a 6’ wing in my office attached to my computer with a long USB cable! Any ideas on what has gone wrong?