CUAV V5 Nano / NEO V2 Pro GPS compass calibration not possible


I purchased a CUAV V5 Nano with the CUAV NEO V2 Pro GPS. The gps/compass module is over CAN (UAVCAN) conntected to the flight controller. I set the parameters according to this instruction:

I’m neighter able to calibrate the internal compass nor the compass from the external module. The calibration process never ends…

I have no clue why… Can somebody help?

BTW, I use Copter 4.0.3. attached the parameter file from the V5 Nano

Quad_CUAV V5 Nano.param (17.7 KB)

I have a couple crafts with this exact config. I have 5 of the Neo V2 Pro GPSs, my last one would never calibrate. I ended up RMAing it and the replacement works perfect.

I am curious though… Every time I did my calibrations the internal compass had zero issues calibrating. I wonder if something else is going on with yours as you are saying
that the internal wont calibrate either.

Also are you seeing the compass every time you boot up? I have found that I needed to add in BRD_BOOT_DELAY=5000 in order for the compass to reliably get discovered every boot

Have you tried a fresh load of AC?

Also can we get a little more detail your craft? Possible a pic of how everything is mounted?

Hi Dave

Yes, I can see both compass, the internal and the external. I also flash ardurover and the back arducopter to be sure that no old parameters will be copied over. I also ty to disable one of the two compass for a calibration, it doesn’t help…

Here is a picture from the aircraft (without canopy):

I will upload a video from the compass calibration tomorrow.

One thing to keep in mind is that the Nano has no internal IMU dampening. That FC should be mounted on an Anti Vibration plate

Respectfully I think isolation should be on a case by case instal and not a de facto. I never isolate my frames unless I use 3m tape that has some absorbing qualities . But I do have issues with Compass calibration. I been using auto offsets seems to work. Mro FC does not need isolation as an example.

Try auto offsets, also i been told it best to take the craft outside to get a GPS lock and then calibrate.

1 Like

Thanks, I will try auto offsets.

As I told yesterday, here is the video from the “standard” compass calibration:
Does it look the same with your CUAV flight controllers?

BTW, is this behavior not a software bug?

If you can, try the in-flight calibration. I get the best results that way.

1 Like

The video is exactly how my calibrations work with my CUAV nanos and Neo V2 Pro GPSs

Yes, I will try the inflight calibration. Is there a difference in quality between the inflight calibration vs. the “standard” calibration?

Yes definitely. An in-flight calibration takes into account all of the magnetic fields generated by your aircraft during operation. For best results I would perform a compass motor calibration first.

I would also only use the compass on the Neo. The RM3100 is far superior to anything in the FC.

I did the compass motor calibration and after that the inflight compass calibration. Unfortunately the performance is very bad… The copter has the “toilet bowl” effect in Loiter. A sign of bad compass calibration… I can’t believe that the inflight calibration is as precise as the “standard” calibration…

BTW, her ar 2 logs from today…

We generally do not recommend doing the “compassmot” calibration unless the vehicle only has an internal compass and there is a lot of interference from the motors and ESCs. You can turnoff the compass mot by setting COMPASS_MOTCT = 0.

Re the failed compass calibration, there’s a “Fitness” drop-down that can be set to “Relaxed” that may help. If that fails then try disabling the internal compass (although it seems to be the internal compass that is failing).

Looking at the parameters it looks like the 1st compass (normally the external one) has been disabled (i.e. COMPASS_USE = 0, COMPASS_USE2 = 1). This is probably not correct. It probably should be COMPASS_USE=1, COMPASS_USE2=0.

1 Like

Hi Randy

Ok, thanks, I didn’t know that the compassmot is intended for the internal compass.

It’s strange, I did a lot of variation for the calibration:

  • I turned on both compasses
  • I only turned on the internal compass
  • I only turned on the external compass
  • I also set the quality to “Relaxed”…

It didn’t help, it seems that the calibration goes to a endless loop…You can see this on this video:

I also contact the customer support from CUAV… It seems that the support isn’t the best… Still no answer…

I will have a look at the parameters this evening and see if this issue can be fixed.


If changing the fitness to relaxed doesn’t work then you can make it super relaxed by setting COMPASS_CAL_FIT = 64.

Another thing that may help is to disable the compass rotation detection code by setting COMPASS_AUTO_ROT = 0. It would be best to double check that the compass is pointing in the correct direction before setting this parameter though.

You could also increase the COMPASS_OFFS_MAX to 3000 to allow for really big offsets.

Beyond this, I think it’s a frame or hardware issue. I.e. too much metal near the compass, maybe magnetic screws have been used in the compass itself or in the frame near the GPS/compass module. Maybe the GPS/compass unit itself is faulty.

Did you contact Lindy at CUAV? That is your best route

@smartdave Today I wrote Lindy the 4th email for help…

I find out, that the problem is not only CUAV related… Arduopter set the parameter COMPASS_EXTERN2 automaticly to 1. so we have COMPASS_EXTERNAL and COMPASS_EXTERN2 both set to 1 which cause a problem. If I set the COMPASS_EXTERN2 to 0, I can perform the compass calibration (but only in “Relaxed”.

Here is a screenshot after booting arducopter:

and after I set COMPASS_EXTERN2 to 0

bad news… the drone doesn’t fly with the calibrated values… It was even worse than the inflight calibration.

Is it normal, that I also can’t calibrate the internal compass? I can’t believe that both compass are faulty?