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: 298470

Reply to This

Replies to This Discussion

2.9.1 is now available in the mission planner and in the downloads area.  This is the same as 2.9.1-rc2.

Improvements over 2.9:

  1. bug fix to throttle failsafe which could lead to Return-to-launch being initiated even if there had been no radio failure.
  2. capture level roll and pitch trims as part of accel calibration
  3. THR_MID parameter added to allow users to adjust the manual throttle so that vehicle hovers at about mid stick
  4. ESC calibration change to support Simonk flashed ESCs
  5. bug fix for autotrim - roll axis was backwards
  6. bug fix to set sonar_alt_health to zero when sonar is disabled
  7. bug fix for longitude scaling

Thanks for your patience and feedback.

We could make the max lean angle a user adjustable parameter.  Currently it's hard-coded to 45 degrees which is probably too much for 90% of users in any case.

Would I have to change all the "constrain(....,-4500,4500)" lines in Attitude.pde? Just the axis, the outputs, targets ...or is it more complicated than that? I am also curious if there is a hard coded max way point speed.

Sounds good.

Sorry Leonard, and all, it just occured to me, that perhaps my poor attempt at humor wasn't as funny as I thought it was. All you devs really do a fantastic job. Sorry if I sounded unappreciative. 


     It normally shouldn't be necessary to do the system, reset to clear out your parameters when upgrading from 2.9 to 2.9.1 so you might be ok.

     2.9.1 includes the automatic correction of the trim which will resolve that lean you're seeing in the HUD.

     There is an issue in the mission planner if you try to do the accel calibration more than once without restarting the application.  I reported this to Michael Oborne this morning and I expect he'll resolve it shortly.  The solution until then is to restart your mission planner if you need to repeat the calibration. Alternatively you can use the cli screen (go to terminal, and type "setup" and then "accel").

     Don't get too hung up on trying to do the accel calibration perfectly.  The instructions say to put it on it's left side, then right, etc.  In fact, the order doesn't matter and it also doesn't matter that it's perfectly level except for the 1st step where it asks you to place it level.  In general you just need to give the algorithm 6 points and they should be quite far apart from each other.

Randy this is good news. I wish I had waited a little longer though to install 2.9 today :-). I just spent the last few hours setting up on 2.9.   Anyway practise makes perfect as they say.  Like 2.9 do I have to perform another Accel Calibration? I am thinking yes since I will have to erase the eeprom firmware before loading 2.9.1-rc2.

The reason I ask about the accel calibration, is I believe there is a bug with this routine in the current version of the mission planner (1.2.32). I had four attempts at the calibration before I could get a good result. The issue seems to be recognising you do not press the "Done" button at the end! When you enter the calibration cycle by pressing "Calibrate Accel" the input status changes to pressing the button when complete. However once you press any key on the final cal step i.e top down The button reverts to "Done". The first couple of times I pressed this and the result is the calibration data appears to be changing. For example the arducopter should appear level in the flight data display in the mission planner. I my case the live display was showing 10 degrees roll and nose down even though my quad was perfectly level on the test bench.  I eventually got a clean calibration by not pressing anything to exist at the end. Sorry for the simplied description.

By the way if you happen to fly in "+" Mode then doing the calibration on this is harder since you cannot rest the frame on the motor shafts like in your video.

If you want adjust the angle put this line in APM_Config.h, i use 70 degress:

// allow >45 degrees when in stabilize mode
#define MAX_INPUT_ROLL_ANGLE 7000     // 70 degrees
#define MAX_INPUT_PITCH_ANGLE 7000    // 70 degrees


Is there a link that you can provide that has a the up-coming release versions,their target features, and possible target release dates?

I'm curious what 2.9.2 brings - I'm assuming inertial Y is in 2.9.2 now vs 2.9.1 mentioned earlier elsewhere?



     Yes, what was "2.9.1" has become "2.9.2".  So 2.9.2 will be the release where we begin using inertial navigation for horizontal position control.  Some other things on the list for the next release include:

       a) inertial nav for loiter and missions

       b) fix ap-limits

       c) first official release of arducopter on the px4

       d) fix up rssi pin

       e) allow user to control yaw behaviour in auto modes (currently it always points at the next waypoint but some people don't like that).

       f) fix flip code

       g) i2c sonar support

       h) mission planner integration improvements (make waypoint appear in the kmz file produced after downloading the dataflash, unify the home locations between arducopter and mission planner)

       i) bug fix to missions so that altitude must be reached before moving onto next waypoint (I've heard it moves on as soon as it reaches the horizontal position).

    Perhaps it's a bit of a cop-out but that's just what I know about.  Sometimes people make unexpected contributions so there's little chance of planning those.

i) bug fix to missions so that altitude must be reached before moving onto next waypoint (I've heard it moves on as soon as it reaches the horizontal position).

I can confirm that Randy! Have it on video!

And another oddity is that Loiter_Unlim occurs at previous WP, where Loiter_turns, and Loiter_Time Occur at their own lat/long. Would be nice if Loiter_unlim used its own lat/long as well...

Randy, thank you for release! But why you haven't fixed the bug for initial CH7_flag state? I still don't see any correct initialization for it. Maybe I missed something? (


    No, I'm afraid not in 2.9.1.  Were you the one who submitted that patch?  It's a nice patch and I'll push it into master so it'll go out with 2.9.2 but I was worried about the possibility of accidentally triggering "flip" or save-trim accidentally..

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service