Can't Calibrate Compass. Message : CompassCalibration : Cannot start compass thread

i have a problem calibrating the compass, both internal and external. Here are the components I use:
1.GNSS M10-L4-3100
2. Mission planner 4.3.0
3. Black Pixhawk Cube

At first, calibration was successful. However, for the past few days, I have had trouble calibrating the compass and the message appears: CompassCalibration : Cannot start compass thread

I have done several things, starting from updating firmware, changing the type of CAN used, and others. Calibration can only be carried out only a limited number of times.
What’s the solution?

1 Like

Mission Planner’s latest version is 1.3.80. You should probably update to that.

4.3.0 is the Arducopter firmware on your cube. You should also update that to at least the latest stable (4.3.5) since I understand there’s been some updates for the Cubes.

If the compass was calibrated why are you doing it again?

My suggestion, is once you’ve updated your firmware and software is to try and do a basic calibration again, outside with a good GPS lock and away form interference. Don’t worry about how “good” it is, just get it done. Then once you’re flying run Magfit and update your parameters based on that. Then forget about it unless you change parts or move something.

https://ardupilot.org/copter/docs/common-magfit.html

what is meant by the message CompassCalibration : Cannot start compass thread?

this is the first time i got this message.

I’ve not seen that message. Can you post a screen shot? Also make sure you double check that the compass is properly connected and working.

How are you trying to calibrate the compass? You just need to use the Compass Calibration in Mission Planner.

https://ardupilot.org/copter/docs/common-compass-calibration-in-mission-planner.html

I’m guessing if you’re seeing that message there you’ve either left the compass calibration too early or you are trying to trigger COMPASS_LEARN before you’re armed and flying.

Do the basic calibration in Mission Planner, and if you need to improve it then use magfit.

It means there was not enough RAM to start the thread. You may be able to avoid this by turning off other features.

2 Likes

I recall one method that worked. Disable logging, calibrate the compass and then re-enable it.

3 Likes

I think I’ve solved it. I have to disable the external compass first. and maybe the condition for compass calibration is that the internal compass must be detected first.

Try using Qgroundcontrol. I ran into this yesterday on a F405-WSE. Mission Planner gave me the same error as the OP, but I was able to use QGC to get the calibration done.

1 Like

After upgrading the GPS/compass on an older copter, I’m having the same problem, the message is now: “CompassCalibrator: Cannot start compass thread.”

I tried disabling logging but it didn’t help. Any other features I could switch off temporarily?

I also tried calibrating with QGC, only to find out it flips my board orientation without asking for confirmation, won’t be trying that again, who knows what else it might mess up.

Additionally I’m getting repeating errors of “failed to initialize MAVFTP” (and slow parameter download).

FC: F405-CTR
AC 4.6.0-dev

Thanks for any hints.

EDIT: Solved, turns out disabling logging alone is not enough, log buffer size has to be reduced as well. This also solves the MAVFTP problem, and after re-enabling logging with buffer size 12 instead of 16, it seems to have permanently disappeared.

1 Like