Understanding compass calibration

I am at the point where I need to perform a compass calibration and of course found issues.

I am using a Matek H743 slim and have an external M10 GPS/compass module.

  1. I thought I read that when Ardupilot starts all of the compasses are listed in the compass priority page. However I only see one of hem. Since it has an I2C interface, I assume this is the external compass. Why do I not see the internal compass. Also the line “do you want to disable any of the first three…” is confusing. If I check the box that says use compass 1 then does it use compass one even though it is not listed in the priority page or does it mean to not use compass one?

The compass(s) seem to work as the direction on the HUD starts pointing at 0 deg and moves right/left as I turn the copter. This seems to work with or without the external compass.

??

The Matek H743 series do not have onboard (internal) compasses. See specs here.

The autopilot defaults to a north (0) orientation without a compass reference. The gyros alone are enough to rotate the orientation within the earth frame, even if it’s misaligned with the real world.

Calibrate the compass per the steps linked below. Read the entire page. You can leave all three “use” checkmarks in place. Often, we disable internal compasses when an external one is connected. In your case, just leave everything enabled and proceed.

Compass Calibration — Copter documentation (ardupilot.org)

Thereafter, it should align to real world heading.

I have an external gps/compass a flywoo M10. The gps works so I assume the compass is OK. However I cannot get the compass to consistently appear in the priority list. Sometimes it is there, other times NO. I keep rebooting and nothing happens, then all of a sudden I do something and it appears.

When it does appear, it shows an I2C interface and I think this is good, i.e. showing it is wired correctly.

But even then, If I check all three boxes and hit “start” on the onboard cal box, nothing happens. I thought I would see the green bars move around but no??

Is there a button to scan for the compass?

That sounds like a loose/poor connection.

Well, good news, bad news. I double checked the connector and indeed a pin was pushed out. Good diagnosis on your part. I fixed it and then plugged the 6 pin connector to the FC but 1 pin off!. I think I burned out my GPS/compass as it gets really hot now. I’ll get another one.

Another unfortunate lesson learned. Can’t let the magic smoke out.

I know, learning is sometimes expensive.

How was I to know the H7 did not have a compass? I have since looked at other FCs and none seem to list a compass. Is the compass part of the gyro/accelerometer, or is there a compass chip I should be looking for? I ordered the H7 on a recommendation and did not know enough at the time, even now, to look for the compass.

While I wait for my new M10, I will start studying Mavlink :slight_smile:

Hi Yuri,

Not related to this but, if you don’t mind I’ll ask anyway. I’m using a trigger style rc transmitter with ppm encoder works fine. Now I’m trying a joystick style looks like a (wii controller). The issue is when I try to calibrate all the channels green bars move the same way, almost as if they’re all
Connected to each other. So weird. Any feedback will be appreciated. (I have the 6 channel one not the 4+2)

Don’t you already have a topic started for this?

RC radio input problems - Hardware / Rovers and boats - ArduPilot Discourse

I don’t have an answer.

I don’t know what to tell you. The specs make it pretty clear what hardware is available on that board. ArduPilot’s own documentation even specifically states that a compass is not available onboard.

Gyros and accelerometers measure angular and linear acceleration, respectively. They are the sensors within the IMUs (inertial measurement units) on an autopilot.

What we typically call a “compass” is actually a magnetometer that senses changes in magnetic field.

ArduPilot’s software EKF fuses all sensor measurements to estimate position and orientation.

Easy enough to find that out on the Matek website. No “H7” (MCU) has a magnetometer, the IMU on some boards have one if they use a so called 9-axis chip. None of the IMU’s used on the Matek H743 boards have one of those.
Further, the magnetometer on boards that have them integrated perform poorly and in many cases have to be disabled due to local (on board) interference. Some are worse than others.

I do. Ok. Thanks anyways.

So Dave, do I even need a compass if I just want to takeoff and land and do manual maneuvers?

Is there a way to disable the need for the compass, so I can ARM without the GCS being hooked up? I think some ARM options might allow this.

Also, do I even need a GPS for manual flying?

Seems like in stabilize mode I should be ok flying manually.

Also, my HUD display seems to indicate direction, normally 0 deg on boot up and the HUD follows the rotation of the drone. Assuming I can disable the compass, can I just point the drone North when I boot and let the H7 do its thing with whatever it is using for the HUD display?

I did the accelerometer cal with no issues.

What say ye?

Technically yes but you need heading information from something. So in your case the answer is practically no. GPS for Yaw is the most common of these but that doesn’t help you.
Compass-less Operation
You really need a GPS/compass module.

Right, for the reason Yuri gave. The Z-axis Gyro is doing that. But that’s not a stable signal for heading.

I am just trying to figure out a way I can lift off and fly the drone manually under visual control. Seems like I really do not need either.

OK, then disable the pre-arm checks and go for it.

Yes, you can set ARMING_CHECKS=0 and probably get airborne in STABILIZE mode.

At that point, you have an expensive, overcomplicated gyro stabilizing flight controller with few failsafes.

It might feel good to get it airborne, and you may be able to accomplish some very basic tuning steps, but ArduPilot is going to be very unhappy without position and heading sources.

Well, I just don’t want to sit on my hands until a new gps/compass arrives.I set Arming Checks to 0 and the drone arms without the usb being connected and all motors turn in the proper direction. Tilting and yawing the drone causes expected performance. We’ll see.