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 –


  • 3692599184?profile=original

    The first thing I looked at was my local firewall I changed "load custom firmware" & I am able to load 2.8.1 so is any one having issues?


  • 3692599158?profile=originalI am getting a time out when  querying the server for latest firmware ! any one else having this issue??

  • WIRED!

    My values in MP is crazy. 
    I have live calibrated and leveled, also restarted a couple of times.

    Do anybody know what this is before i do an erase&reset?


  • did a test flight today with AC 2.9 and GPS MTK 1.9

    Stabilize and Alt hold just perfect.

    but Loiter did some very big circle and RTL wes flying in the wrong direction.

    i did the Loiter and RTL with compass calibration Auto and manual with declination 1,58 ° the results are the same on Loiter and RTL


    any idea what i did wrong???????


    2013-01-22 11-30-20.tlog

  • Hi Randy!

    Think i found a small coding error in the 2.9 release, in init_ardupilot(), system.pde, line 292:


    should probably be


    Thanks for a great release!

  • Randy,

    It could be nice to have a changelog page for the wiki, don't you think ?

    By the way, thanks for your hard work.


  • First flight with 2.9

    I'm using all default settings on my configuration:

    DJI FlameWheel F-330, 4xT-Motor 2212-16 750Kv, 4x10Ah Turnigy ESC, 8x4.5 Props, 3s2650mAh Battery
    APM2.5 with 3DR radio and GPS.

    I'm so impressed!! It flies so smooth without any change of PIDs.

    Now the Arducopter platform really starts to taste.
    I was just flying a couple of minutes indoor, but now my compass heading is almost correct. The room i was flying in do have a big window and the GPS counted 4-5 satellites, my compass was about 90 degree wrong before flying.
    Is this short time of flying really enough for the compass to calibrate it self?

    Any way, thanks a lot to the develop group and all other enthusiast that participate in making this great product.

    I'm looking forward to test AltHold and other stuff when the weather allow outdoor flying. Hopefully my sonar will work as well (i'm really afraid to connect it when i fly indoor) 

  • First I would like to say think you to everyone that has taken the time to develop and test this software and hardware.  I have been involved with several projects but nothing with such a large user base and I can only imagine how demanding it can be. So again thank you for your time.

    I was wondering if someone could explain to be what controls the WP alt in modes ALT_HOLD and LOITER.  From my understanding it should only be the throttle input. So my problems seems to stem from using my sonar. When I disable the sonar and disconnect it from the APM I get the expected results.  But when I have it enabled and use chan 7 to enable and disable I get erratic behavior with WP alt.  

    Below are 2 logs one with expected behavior and the second with the erratic behavior I mentioned above.  



    As you can see in the second picture as soon as the sonar is enabled the WP alt is effected by the sonar data.  After the sonar was disabled the WP alt was still effected by the Baro ALT unlike the first picture? 

    Why is this?  Is my understanding incorrect or is there a legitimate issue?

  • First let me say; Thank you to all the developers and contributors to this great project and endeavor. The software, hardware, and tools are all fantastic. Great job on 2.9.

    Ok so yesterday the temp was 58 F, moderate wind, my Hex Stabilize was perfect, Alt_Hold was perfect! Test area is my helipad (My pool cover). Never seen it better!

    Today I wanted to test Loiter and RTL and wanted a test in a larger space so I went to our local Baseball field.

    Conditions: Flat with a mix of grass and sand areas, temp 32 F, no wind, very very light snow with no snow on the ground ( I know, I know but could not resist).

    Result: Stabilize= PERFECT.

    Alt_Hold = VERY ERRATIC. ( So I did not test Loiter and/or RTL)

    Sonar = MB1260 EZL0 (Operating temp spec is: -40 C to +60 C according to Maxbotics spec sheet)

    Here is what I see from the logs:

    (Red= Sonar, Green = Baro_Alt, Blue= WP_Alt, White= Throttle_Out) Also see lines 2003-2009, Alt_Hold starts around line 1900.

    3692598694?profile=originalMultiple choice:

    a) Bad Sonar?

    b) Mix of sand and Grass areas? 

    c) Very very light snow?

    d) Non of the above? (Please explain)

    My answer = (a)

    What do you think?

    Thanks guys.

  • I have a problem, before updating all was working perfectly (3DR radio, Minimosd and APM2.5)

    i started Mission planner and did the firmware update with APM connected via usb, started and stopped at 50% +-, then i unplugged the APM and restarted, since that i cannot connect to usb anymore and the APM is not initializing.

    What did i do wrong ?

This reply was deleted.