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).
oneshot125 causes high CPU at high throttle fix?
@andyp1per, I’m not aware of this issue. Do we have it in our issues list somewhere?
In any case, only the two fixes listed above are included in this Copter-3.6.12-rc1 release.
It’s top of your backports list:
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?
edit: for those interested, here’s the Service Bulletin for the HERE2 compass scale issue: https://discuss.cubepilot.org/t/sb000004-compass-scale-factor-adjustment-for-here2/2401
@andyp1per, ah shoot, I neglected to include that fix, sorry but thanks for pointing this out.
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.
Oh yes I see, thanks.
Although I guess my question stands for Copter 4.0: the GPS lock for magcal is used to look up the local mag field strength?
Does this Copter-3.6.12-rc1 version of firmware have support for Matek F765wing, Holybro KakuteF7mini?
You mean, like this ? Black Cube with Here2:
@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.
ok，roger that ，waiting 4.0 rc3
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
@rmackay9 could this also cause a pre arm error “compasses inconsistent” ?
We are getting that every 10 flights, wait half an hour and re power it goes away.
Thanks for the response.
It would certainly contribute to inconsistency if you’re using a Here2 alongside other compasses that have different scaling.
We are just using Here2 and internal compasses.
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.
Try disabling the drivers for compass 1&2 with COMPASS_TYPEMASK.