Comapass/Mag calibration refuses to work

I am attempting to build my first copter using Ardupilot, but I ran into an issue that I am not able to solve. My compass wont calibrate; the green bar for compass/mag calibration refuses to move no matter what I try.

What I am using:

        * Speedybee f405 v4 FC
        * HGLRC M100-5883 compass and mag

I have reset the software on my FC multiple times and redid the whole thing over too. I am following this tutorial by Painless360 to calibrate everything, and this tutorial also by Painless360 to flash my FC.

I searched the internet, but couldn’t find anything that would help.
Did anyone run into this issue?

i think that can happen when the board/compass degree offset is not set correctly or the compass is bad or not supported

No point in posting links to those videos here. Post a parameter file.

Are the compass and FC mounted in the frame together so they move at the same time?

2 Likes

Yes they are, but I am not sure that the compass is set in the same direction as the FC (couldn’t find out how to check, so I assumed). I also don’t know how to turn the compass in mission planner because I couldn’t find how. Do you know how to check if the compass is facing the right way?

This is probably the error. I didn’t check if the compass is set the correct way because I couldn’t find how to do so. Do you know how to check if the compass is facing the right way?

Ceramic is up. Normally there’s an arrow or something on the unit to give some hint as to it’s direction, but looking on their website I don’t see anything to even hint. Silly.

Generally I would say the connector is either the front or the back. Pick one.

Use can use COMPASS_AUTO_ROT and it will figure out the direction for you.

https://ardupilot.org/copter/docs/common-compass-setup-advanced.html#orientation

Check in the hardware ID that you’re getting the compass data before getting too far down the path.

It also helps to do compass calibrations with a GPS lock. It will automatically correct for the local declination.

1 Like

I find you will be able to tell by looking at the hud, if the comp is backwards pitch is reversed ect… google your compass/mag, even if the manufacturer has no doc’s it may be out there.
$40+ gps’s usually have an arrow. but with a known good one you can easily figure any gps/comp out, consider it a tool

270 flip was common a few years ago

Thank you for the reply. I visited the website you linked and got confused on the COMPASS_AUTO_ROT part. The website says that compass offsets are determined automatically, but the COMPASS_AUTO_ROT says you have to enable auto offset determination, so I tried them both. Except the COMPASS_AUTO_ROT, which I don’t know if I did correctly since I could not find how to enable/ change the value to 2.

As for the the GPS lock part, when I visit the failsafe tab it confirms that I have 3D fix. Also the position on the map shows exactly where I am at.

I would also assume that I am getting compass data since I have flown by GPS in INAV before with this exact setup.

Firstly I tried to just calibrate the compass without doing anything extra. I sat there twisting the drone for 8 minutes, but the bar or percentage did not move at all.

Secondly I attempted to enable ‘auto compass offset’ in the same compass calibration tab, again I sat there for about 8 minutes turning the drone on all axis’s, however, nothing budget.

Thirdly I tried to find how to enable COMPASS_AUTO_ROT, but there was no success.

Sorry for the very noob question; I am really struggling with this. Thank you for helping me out.

It’s enabled by default, you don’t have to do anything.
Sounds like the compass isn’t being recognized at all. Post a screen shot of the HWID screen in Mission Planner.

The screenshot above happens when I connect the quad without waiting for satellite connection.
The second image is when I wait for satellite connection then connect the drone to Mission Planner.

Not sure why Mission planner doesn’t see it in one scenario.

Could it be that the compass broke? It worked with INAV, so not sure how it would’ve broken, but maybe a it did.

do you have any other device to connect to I2C bus? if have, remove it and try agasin

Thank you for the suggestion. My flight controller only supports one I2C and I have the GPS/compass connected to it, nothing else. I am ordering a different GPS/compass and flight controller that I got recommended. Hopefully something was wrong with either or both of those two. Other than getting different hardware, I have no other ideas on what could possibly be wrong.

Both of your screenshots show the Baro also on the I2C so “nothing else” is not correct. Also the second screenshot shows that the externall compass was detected. As it knows details like type and device ID the HW is working and it is probably not an HW issue

Oh, I didn’t check for anything other than the GPS/compass on the HWID page. My FC has a built in Barometer.

Other than HW, I have no idea what to try. Do you have any ideas?

If my computer fails to do what I want in most cases I have to accept that the error is mainly in front of the computer.

So without detailed information like log files, parameter files and a clear HW description it is hard to say

Then try something new to you. ArduPilot methodic configurator software.

Try setting BRD_BOOT_DELAY,2000 to see if that GPS and compass is reliably detected then.
Also some of the small flight controllers dont power up the accessories (like GPS) until a battery is connected - USB wont do the job.