ACRO bug (fixed in 2.9.1b): while doing flips in ACRO mode, if you switch to Stabilize while inverted your throttle will go to minimum.  To regain throttle control you need to switch back to ACRO then back to Stabilize again (i.e. switch to stabilize twice).  You never lose control of roll/pitch/yaw.

Loiter/AltHold/Auto/RTL bug: if you switch into these modes with throttle at zero motors will go to minimum until you raise the throttle.

Auto mode altitude bug (fixed in 2.9.1b): setting a waypoint altitude greater than 320m over home altitude may wrap around and instead be interpreted as a low altitude.

ArduCopter 2.9 is now in the mission planner and the downloads area!

The major improvement is we use inertial navigation to improve altitude hold.  This increased reliance on the accelerometers means you must do some additional set-up before flying:

1. Perform the new accelerometer calibration in the mission planner (video).  The auto-trim metho has also changed (video).

2. Add vibration dampening foam between your frame and the APM.  Some suggested materials: DuBrogelhk foam.

 3. If upgrading from 2.8.1, modify the throttle and altitude PID values:

  • Increase your Throttle Rate P, reduce I to zero, increase D
  • Increase Altitude Hold P, reduce I to zero
  • Tune Throttle Accel P and I terms but try to keep P about 1/2 the size of I


Here is the list of major changes (a more detailed list can be found in the release notes):  

  • Alt hold using inertial navigation (Leonard, Randy, Jonathan)
    • AUTO_VELZ_MIN, AUTO_VELZ_MAX parameters control the max climb/descent rate for the autopilot (cm/s)
    • PILOT_VELZ_MAX controls max climb/descent rate for the pilot (in cm/s)
  • Landing improvements (Leonard/Randy).  Copter will descend to 10m or until an object is sensed with the sonar.  Then slows to 50cm/s descent (speed can be adjusted with LAND_SPEED parameter). (video).
  • Surface tracking with sonar (Randy/Leonard).  Copter will attempt to maintain current distance from objects in front of sonar regardless of altitude.  Only used in alt-hold and loiter, not used for missions.  Sonar can be enabled/disabled with CH7 switch. (video)
  • Failsafe improvements (Randy/Craig/John Arne Birkeland) including bug fixes, additional check for PPM encoder failure and implementation of battery failsafe.  Set-up instructions are here.
  • Mediatek gps driver accuracy improvements and use of SBAS [Craig].  Instructions on upgrading your mediatek to firmware 1.9 are here.
  • Traditional Heli improvements (Rob) including (a) bringing heli code back into the fold, (b) enabled rate controller (previously only used angle controllers). (c) fix to rotor speed controllers - now operates by switching off channel 8.  (d) allow wider collective pitch range in acro and alt hold modes vs stabilize mode  (e) bug fix to allow collective pitch to use the entire range of servos
  • Acro trainer (Leonard). Copter will return to be generally upright if you release the sticks in acro mode.
    • ACRO_TRAINER : set to 1 to enable the auto-bring-upright feature
    • ACRO_BAL_ROLL, ACRO_BAL_PITCH : controls rate at which roll returns to level
  • Camera control improvements (Randy/Sandro Benigno):  (a) AP_Relay enabled for APM2  (b) Trigger camera with CH7 or DO_DIGICAM_CONTROL command  (c) Allow pilot override of yaw during missions and fixed CONDITIONAL_YAW command.
  • PPM sum support for transmitters with as few as 5 channels (Randy/Tridge/John Arne Birkeland).
  • Performance and memory useage improvements (Tridge).


As per usual PIDs are optimised for the 3DR/jDrones quad with 850 motors and 10" props. If you're using more powerful motors/props and are seeing bad flight behaviour in stabilize, start by turning down Rate Roll P in 25% steps.

Special thanks to our testing team lead Marco and the dedicated bunch on the 2.8.1 release thread who put their copters at risk while testing the pre-release version.  Some of their videos are here: 1 2 3 4 5 6 7 8

Please feel free to report issues you find in the discussion below and/or add them to the issues list.


Views: 298765

Reply to This

Replies to This Discussion


     Our recommendation is to always keep compass learn on but if you're having good luck with the live method then feel more than free to stick with that.

     It should take maybe 5 minutes of flying for the auto-learn method to calculate the offsets especially if during that time the copter moves around a fair bit (i.e. changes in roll, pitch and yaw).

     In fact the "live" method and the "auto-learn" method run almost the same algorithm.  The only difference is the "live" method gets all the points at once and does the calculation on your PC while the "auto-learn" method does it on the APM and just does one sample at a time.  You can likely get the same results with "auto-learn" by enabling it, arming your motors (but perhaps disconnect your ESCs) and wave your copter around for 5minutes (i know that's tiring).  I expect it will past the red-line test then.

     So the difference between the two methods is that the auto-learn method has to deal with the interference from the motors & escs during flying...but that may actually mean that although it doesn't pass the red-line test when it's on your bench, it does better than the "live" method while the motors are running.


     It looks to me like the sudden throttle up as it entered RTL mode caused a voltage sag which caused the ESCs to trigger their low voltage cut-off is the most likely explanation.  Below is a graph of the battery voltage in blue (scale on the right), the throttle output in green, altitude in pink and the mode in red.

     The logs suddenly stop the moment after the flight mode is changed.  You can see the little blip up on the red line right at the very end which is where the "custom mode" (aka flight mode) switch to 6 which is RTL.

     You can also see the sudden spike in the green line which is the throttle and you can also see the spike down in the voltage (blue line).  I'm not sure how accurate those voltages are and we don't (yet) have a record of the internal voltage supplied to the APM (maybe coming in 2.9.2) but certainly the voltage was dropping.

     I've reviewed the RTL code ad also performed some tests just now in which I flew my quad around and then initiated an RTL using the ground station and it all went fine (which doesn't necessarily mean there isn't a problem of course).

     To be honest, it's hard to be 100% sure because of the sudden end to the logs but normally logs suddenly ending like this are a sign of the APM blacking out and it's nearly always because of a voltage drop.

     Could you check whether you have the low-voltage cut-off enabled on your ESCs and I'm happy to have a look at your dataflash logs if you can find them.  it's possible that they extend beyond the end of the tlogs.


     The compass issues most likely come from an issue with the compass offsets or the declination.  Normally your compass offsets for each axis (x,y,z) should be between -150 ~ 150.  If it's bigger than that then there are probably metal bits near the compass or possible the motors are creating a lot of interference.

     The declination is taken from a look-up table based on your first GPS location but you can also override it either on the adv parameters list (in which case you enter the declination in radians) or on the MissionPlanner's Hardware Options screen at the very top you can enter it in degrees (you may need to uncheck/recheck the Enable button before you can uncheck the "AutoDec" box).

     To be honest, I'm not quite sure what in 2.9.1 would have sorted out your compass..nothing immediately springs to mind although I'm happy to hear it seems fixed.

P.S. Leonard Hall deserves a lot of credit for the alt-hold improvements in this release.  He did nearly all the alt-hold controller work and a bunch of other bits.

Thanks Randy, that was the problem but loaded 2.9.1 straight after anyway.

It took 3-4 attempts to upload (via arduino coz of my reversed motor) before telemetry would work. Ok now. Have done a few windy missions.


Using Mission Planner 1.2.33, Arducopter 2.91 firmware on APM2.5 & 8ch serial PPM input at ch1, after putting pink on ch 2&3, flight mod change is not displayed in mission planner however with same setup when I uploaded firmware Arduplane 2.68 then mod change is very well displayed in the MP1233.

Randy I finally loaded 2.9.1 and after calibrating everything managed to get in two flights this afternoon.  For a first time after replacing my APM1 with APM2 and also flashing my MTK GPS to 1.9 it was not too bad.  The wind was slight to moderate and gusting a little at times.  In stabilize mode I had to put a lot of effort to keep my quad stable in the gusting wind so I expect my trial PID's for the Jdrones frame with 880Kv motors and 12x45 props is off the mark.  I had hoped someone might share some settings with bigger motors but I guess I will have to work it out myself.   I cannot see my quad flying anything like the videos posted here any time soon. But I like a challenge.  I am amazed though at the pilot skills to be able to fly so far away (like in the 2.9 video acro and stab modes) and keep the arducopter under such good control manually flying with yaw and other controls reversed on the return legs to home. 

On my second flight I tried loiter with 2.9.1 and the MTK with 1.9 code.   Even with the wind gusting between 5-10 knots my quad held on station very well (in about a 5-10meter square) except I had to manually control the throttle other wise the quad would hit the ground quickly.  Still more development before the code will allow me to take my hands off the controls in loiter for a few seconds, but I am impressed.  Great job Dev team.

Unfortunately I only have a telemetry log, no other logs were retrievable from the APM after my flight despite setting them up and having nothing prior stored (full erase and reset before loading new code).  I did notice there is an issue with the auto magnetic declination process too (See attached graph) for my region the magnetic declination setting manually is 12.23 but the auto method only managed to set it to 0.2 I will just set it manually based on this result.

In case anyone is interested my test PIDs for 880Kv motors, on a Jdrones quad frame are as follows: 

STAB Roll & Pitch:  P 3.0, I 0.0, IMAX 5.0

Stab Yaw: P 4.0 I 0.0 IMAX 8

Angular Rate Roll &Pitch: P 0.09 I 0.06 D 0.0040 IMAX 8.0

I made no other changes (all values are defaults except the ones I posted here)

Rate Roll Pitch:


Many thanks for your honest answer,when do you think the windows version will be ready for the PX4,one other question as im not to good on these coal powered contraptions called Lap tops im in my 60's,will it just be similar to uploading multiwii on to a AIOP board,your's,Marty.


     The plan is to make the upload process as easy as it is for the current APM.

     The limitation on building for windows will only affect people who want to change the code.  For everyone else just using the mission planner will be enough.

     catch you later..

(i'm thai maybe misstake in tense) I have problem about altitude . My altitude show -21474836.00 m (i used sonar LV) .Why happen this case .


     Where are you seeing that altitude?  Could you include a screen shot?  Maybe it's in the mission planner and does it go away when you arm your copter?


     I ping'd Jani a link to your comments so hopefully he'll get back to you about good tuning for the jdrones copters.  I think though that you should focus on just the Rate Roll/Pitch P parameters and I don't think they should be as low as 0.09.  I'd guess that 0.12 is about right.  I think you should be able to leave the Stabilize roll, pitch and yaw parameters untouched (they default to 4.5 I think).

     That declination is in radians (everybody gets caught out by that).  So 0.2 radians = 11.5 degrees so very close to what you need I think.

     Nice to see you looking at the tlogs!


     There are some differences between the messages between arducopter and arduplane but sometimes it's an oversight.  Can you include a screen shot of what you mean?  It'll make it easier to figure it out and hopefully fix it.

Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service