ArduCopter 2.9 / 2.9.1 released

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.


You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Oh poop here we go again

    Tested my APM2.0 yesterday and it flew fine

    Did the update to 2.9.1 and have been doing my best to tweak the PID's but in loiter it just sinks to the ground with the props still running, if I tweak the Alt hold PID's I can get it to stay aloft but then it's very twitchy


    Should have left the old firmware on board :( and I can't recal which fiormware it was now :(

  • Can anyone explain acro trainer and if possible a video of it working. I have tried flying with it but not flipped yet. Will it self right if it is upside down and stick are let go?


  • @Randy and Marco,

    The mx-20 is set to failsafe so that ch3 is to switch to 750.
    It works when all 8 channels individually connects. (I see it in MP)
    When i use PPMSUM, it does not work.

    MK has no Problem to detect Failsafe on PPMSUM.


  • Once again, thanks to the dev team :-)

    I loaded the latest code this morning into my APM1 quad, went through the acc cal routine, and the quad says it's pointing 10 degrees nose down in MP, every time

    Fine, redid the cal routine 5 times, still the same ?

    Reloaded the firmware, redid the cal routine, now it shows level?

    Will fly later today.

    Any pointers on deviation from the standard settings ?

    I have one of the original quads.

  • Moderator

    Did 40 minutes of low level FPV flying yesterday, the Alt Hold is now fantastic because I have found with FPV it is sometimes difficult to judge and control a quad's height at low level.

    In Alt Hold as long as one doesn't accelerate too quickly height is maintained very well, if one accelerates too quick the quad drops by about 1-2m before recovering.

    RTL and Loiter also great, lost video signal at one point so popped it into Loiter first, then RTL whereupon I got signal back as the quad climbed.

    I also tried to repostion in Loiter, however this didn't go so well as the quad looked like it was trying to go back to it's original postion but overshot and kept going so I switched out, not sure why?

    Can one reposition while in Loiter? I.e. Sit in Loiter, then with the Tx sticks move the quad to a different position and the new position is the new loiter position?

  • Hi guys,

    I have an interesting issue with 2.9.1.

    A managed to get my copter trimmed with ch 7 set to 'save trim'. But after doing that, my hexcopter now takes off tilting to the front and right. This will continue until I take control of the hex and tap my control sticks to keep it level and after that the hex will be in trim and stay perfectly level. I wonder why this is so? My hex will lift off perfectly level when it was running 2.9.

    I did do the levelling routine after changing to 2.9.1. But what I did was also to import my params from 2.9 as well.

  • Did you know, that for the Graupner Receiver GR16 or GR24 Failsafe in PPMSUM Mode not work?

    By connecting the individual channels it works.


  • i have this motor twitch.. discuss here..

    according to the dicussion it requires a  AdruPM v2.3.13 fw  

    just wordering if this is already included in the 2.9.1 release,,

  • Had a strange issue today. Was testing the Geofence in 20m simple mode and the quad bounced on the fence but then seem to go (by looking at the logs) into RTL. I had no control over it and when I switched modes to try and force it back to stabilize it fell from the sky. Only by flicking modes could I get it to loose height until I could crash it into the ground. The motors were still running and I could not disarm even though I was in stabilize on my transmitter the logs say I was still in RTL.

    I cant figure it. I do have RTL as a failsafe but was only a short distance from home.

    Anyone want to take a look at the logs and see what they think?

    2013-02-08 11-30 12.log

  • Hi,

    Need a little help/advice.  I have been using 2.9/2.9.1 for a week or so now, only in Stab Mode.  I had come to the point where I wanted to look at my .log files to analyze the vibration readings before I tried AltHold Mode.  This is where I started having problems.  Once I get into CLI in MP, I open "Log Downloads" the window opens but doesn't show anything (the little status box shows "connecting 000").  I go back to CLI and run tests on "logging" it seems to test OK.  Then go to "logs" and it seems to say different thing each time I try, either shows number of logs or says no data flash.  I have done the erase function as well as the dump function and still same result.

    Further to that I have done a complete re flash of the firmware and still no results.  I have ensured each time that logging is enabled, either all logging or selected ones.

    Please help as I need to check the vibration of my setup before I move on to other modes!

    Any Ideas?


    jDrones Quad

    880kv motors

    12x4.5 props

    APM 2.5+ (with Power module)

    Meditek GPS 1.9

    3dr Telemetry

    jDrones IO Board



This reply was deleted.