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 –


  • Hi all,

    now we flying with APM 1 ,  AC 2.9.1 and 1.9 mediatek FMW, thanks for people who work on it . Yesterday we try write mission having around 200 WP´s (commands) . Before writing done MP reported error. After this we try write only 30 WP´s , still with error (APM self reset to default params), until we erase EEPROM and reload my own params.  In case writing 30 WP´S done . On WIKI i  found WP_TOTAL parameter with this comment : Total number of commands in the mission stored in the eeprom. Do not update this parameter directly!

    Any experience with increase WP_Total  ? This value is overwriting by MP separately for each mission ?  

    Thanks for comments.

  • Sometimes the copter loose the yaw, it twisted to left for about 90 degree. I flow in alt hold mode and did not touch to throttle & rudder stick but sometimes it lost its direction. Could someone tell me where is my issue?



  • Moderator

    Hey guys,

    I had a good chance to give 2.9.1 a good test today and by all reports, it went very well.  Thank you so much for your efforts.  I did notice a couple of things though and would like your thoughts.

    1. When 'going hard' around the park (high speed and aggressive angles) using 2.8.1 it would handle like a dream.  I could go from 45degrees backwards to 45degrees forwards without hesitation.  With 2.9.1 it does a little stutter just after going back just past 0 degrees.  I do have video of this if you would like to see/hear what I mean.  Whilst it doesn't cause an issue/crash, it does make it not fly smoothly.

    2. I did a couple of missions today and they looked to be flying quite well.  I did abort though as the speed/angle between waypoints was quite aggressive (ironic non?) for my liking and the size of the park.  I did tune that down with 2.8.1 and thought those figures would have carried across/responded the same in 2.9.1?  Is this not the case, or do I have to raise them due to the new software?

    But all in all guys, it was a very successful morning. ALT.HOLD is beautiful and LOITER was perfect (even with a slight breeze), even fun to move it deliberately off course to watch it come back.

    Thank you again - and let me know if you want some more beta testers for the next round.

  • Did a couple missions today, using auto-land each time.

    It was a beautiful thing to watch. Kudo's guys.

    Couldn't possibly be more perfect than this. 

  • I have my Quad flying pretty good with APM 2.5 and v2.9.1.  I’ve got Stability tuned reasonably well and the machine Loiters in a small spot.  I’m happy except for a GPS question…  When I play back the log in MP it shows the GPS ground track wondering at the beginning of the flight and sometimes midway thru the flight.  Machine thinks it’s going over to visit the neighbor.  The track finally comes back to true position and the rest of the flight seems OK.  If I try Loiter when its out-to-lunch it takes off on me.  Loiter is good once the GPS settles down.  When I play back the log it shows 9/10 satellites and hdop <=2.   I have relocated the GPS away from ESC's and the APM.  I added a ferrite ring to the wire bundle at the GPS connector to try and shield emf.  .  I’m afraid to fly a mission until this gets resolved.  Any help appreciated.

  • Randy and all 

        I have altitude hold is problem in new board. i just order new and flight test APM 2.5 is ok, But when I changed to altitude hold is had jiggle on the air and I seen on APM Planner is had Altitude lag update (at 3 meter, but on APM planner is show 10 meters) I don't know is that. Help me please....

    P.S. Hold position is very stable on loiter mode. Altitude still not good.

    Thank you


    2013-03-10 18-37-15.tlog

    2013-03-10 18-38-26.tlog

    2013-03-10 18-21-16.tlog

  • Developer

    PPM encoder firmwares / ArduPPM:

    I am posting this here, since this thread get a lot of traffic. Many people are wondering if they should upgrade the ArduPPM firmware for the PPM encoder chip. In general it does not hurt to be running the latest version (the latest V2.3.16 has some F/S improvements), but the saying "if it works, don't touch it" also applies. :)

    To check if you need the latest PPM encoder there is a new RC Jitter test in the source repository.

    Either compile and upload it yourself using Arduino 1.0.3 (Autopilot version) or use on of the pre-compiled files that I have included here, and upload using the "Load custom firmware" option in the Mission Planner.

    The jitter test is a APM application, not a PPM encoder firmware. Do NOT try and upload it to the PPM encoder chip using the DFU bootloader.

    After a successful upload, connect to the APM board using the Mission Planner Terminal window (CLI) and let the test run for about 30min. Make sure you do not touch the R/C radio while doing the test.

    After a while your test should look something like this.

    < 00:08:24> -------------------------------------------
    ch1: center:1520 min:1516 max:1522 delta:4
    ch2: center:1542 min:1539 max:1545 delta:3
    ch3: center:1934 min:1930 max:1936 delta:4
    ch4: center:1520 min:1516 max:1522 delta:4
    ch5: center:1851 min:1849 max:1854 delta:3
    ch6: center:1520 min:1517 max:1522 delta:3
    ch7: center:1521 min:1519 max:1523 delta:2
    ch8: center:2074 min:2069 max:2076 delta:5

    If no channel show delta changes above 10, you do not need to upgrade the PPM encoder. If they are much higher (and you are sure you did not touch any of the sticks during the test), you definitively need to update to the latest version (V2.3.16).

    Also, you have problems with jitter delta greater then 10, please send me a PM with some details about your radio setup.



  • I've been struggling with a slow X Y oscillation on my Quad in Loiter mode. It is continuous and does not escalate or diminish and would only be a few degrees up/down.

    I suspect noise after spending countless hours (actually weeks) trying to tune it out with PID's.

    Stabilise is solid, Alt Hold is solid. Blades are APC & balanced. Mega 2.5 board is mounted on standoffs made from silicon fuel tube. Firmware is 2.9.1.

    If someone can take a quick look at the LOG file and confirm my suspicions it would be greatly appreciated. From what I can see it's a 10 on the Reichter Scale :-(

    Thanks in advance.

    2013-03-10 14-08-30.tlog

  • Just wanted to say that I finally had the guts to switch out of stabilize mode today and I am super excited about how well my 3dr hexa with 880 motors flew. I was only planning to test alt hold and loiter but it flew so great that I did multiple RTL's and autoland's. This is all with no tuning whatsoever. It seemed rock solid despite 5-10 kt winds. For vibration, I balanced motors and props, zip tied down anything that can move, and mounted the APM with Kyosho Zeal tape (1/2" square in each corner of the case). More good weather expected tomorrow so I'll be putting some more time on the bird.

    Kudos on the coding guys!
  • My friends Futaba over time finds the signal rage gradually decreases.  He now looses signal after 100m altitude where previously 900 was no issue. Why wold that be? This is now the second Futaba RC he found doing the same thing.

This reply was deleted.


Santiago Perez liked Santiago Perez's profile
17 hours ago