Copter-3.6.12-rc1 has been released for beta testing. The changes are in the ReleaseNotes and copied below. The upgrade from 3.6.11 should be painless, no re-calibrations or tuning should be required.
This release has two fixes:
Fix ChibiOS I2C DMA error
COMPASS_SCALE param to allow manual correction of compass scaling
The first fix resolves a rare case where the flight controller could lock up if there was excessive noise on I2C bus. We have one report of this happening from a core developer who accidentally connected a serial sensor to an I2C port.
The second issue allows users to work around a compass scaling issue with the Hex Here2 GPS/compass unit. The Here2 compass unit’s scaling is off by about 17% meaning setting COMPASS_SCALING = 1.17 should improve accuracy. The accuracy can be checked before and after this change by:
fly the vehicle in any mode but ensure the flight includes chaning the vehicle’s heading
download the dataflash log and check the NKF4.SM values which are the compass’s “innovations” (the difference between the expected values and actual values). Lower is better so hopefully Here2 users will see lower values after setting the COMPASS_SCALING value to 1.17.
Note: we can only run a single beta at a time so Copter-4.0.0 beta testing is suspended for about a week. We will be releasing Copter-4.0.0-rc3 by next monday (Dec 16th).
In the compass scaling PR, it is mentioned that we should have a GPS lock when performing the calibration. Is this just because we’re using GPS position to look up the correct field strength for the location where the calibration is performed?
Only a very cut-down version of the compass scaling PR is in Copter-3.6.12-rc1. The COMPASS_SCALE/2/3 parameters are there and used but they are not set as part of the compass calibration.
I think the only reason someone would use these parameters is if they have a Here2 compass (all Here2 compasses have a scaling issue in the hardware itself). In this case, the COMPASS_SCALE parameter can be set to 1.17 to resolve the issue. Many users will not notice a difference but we’ve seen at least one user report the EKF monitor on the mission planner going red.
@Anubis, yes in Copter-4.0 we use the vehicle’ GPS position to lookup the local mag field strength for the location and then set the COMPASS_SCALING param.
@ThePara, yes, that could be caused by the scaling issue so perhaps try setting the COMPASS_SCALING to 1.17 and see if it gets better. Of course this particular incident could also be caused by interference from the motors or anomalies in the ground too…
@zhangsir, no I don’t think those two boards (Matek F765wing, Holybro KakuteF7mini) are supported in Copter-3.6 but TBH, it is hard to keep track there are so many boards now. I don’t see the firmware available though for 3.6.11 and we haven’t added any new boards in 3.6.12.
We get this all the time on all build and it’s new with Here 2 it seems.
Depending on direction the drone faces it can be very low or full on into the red. The drone flies normally through all this.
It’ been like this for a few releases and needs to be resolved as does the fact that the gps and compass on CAN shows up as compass 3 and it refuses to ignore compass 1 and 2 even when they are disabled.
Any help appreciated as it’s unnerving watching your compass error do this.
This sounds very much like it could be the Here2 compass scaling issue. Could you try setting COMPASS_SCALE to 1.17 and see if the problem is resolved?
If there’s a dataflash log especially using Copter-3.6.12-rc2 I can have a look
It seems to me that even if you disable compass 1 and 2 (3 is CAN compass) it still produces the error and so I assume it is not disabling the internal compasses even when unchecked.