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.

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.

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.


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


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