My set up:
MP 1.3.7
Rover 4.0
Pixracer with buzzer
Compass+GPS Matek M8Q-5883 mounted externally 8 inches above FC.
Many attempts to calibrate with onboard mag calibration never go above 99% before restarting.
Tried using “relaxed”, setting COMPASS_OFFS_MAX to 2000, using different locations, Qgroundcontrol, and even RTFM with no joy.
Wiring checks OK and GPS works fine even indoors. Flight data screen responds to vehicle movement but is almost 45 degrees CCW from vehicle position. Compass and FC arrows are pointing in same direction.
Suspect I2C on this unit is not set up properly or is not being read properly. Have looked at U-Center software to tune this unit, but would rather no go down that rabbit hole if there is a simpler solution.
This makes me think the arrow on either the FC or the Compass/GPS is wrong.
You might need to unplug the compass/GPS and calibrate the FC by itself and see if orientation works out OK for that - and experiment from there.
If I calibrate only the internal compass relaxed, when I go to flight data I get “bad compass health”, the heading shows due N when vehicle is pointed due S, and I cannot arm.
I have no way to set COMPASS_AUTO_ROT to a value of 2. See screen shot below:
I did learn something new though…if I randomly roll the vehicle continuously during calibration, I can get past 99/%. When I read the docs, I assumed they meant to hold the vehicle fixed in each position (normal, left, etc.). Here is what the docs say: “hold the vehicle in the air and rotate it so that each side (front, back, left, right, top and bottom) points down towards the earth for a few seconds in turn.”
Update 2: I finally succeeded in calibrating internal compass 2 after setting all params to default. GPS works fine, but external 1 is not recognized on either unit for reasons unknown. By eliminating all pre arm checks, I can now ARM, but still have no steering or ESC. Still in pursuit of Nirvana…
Hmm. Post a parameter file let’s check that out. Or enable disarmed logging and post a link to the last log after trying to arm. You will want to disable this after doing so or you can accumulate a lot of large logs.