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 –


  • Hello. I just updated my APM1 to  arducopter 2.9.1. Now my altitude value look not precise anymore.  for example when i hold the arducopter with my hand  on a height of 1 m above the ground, the altitude reading start with 1.45 and then drop 0.4 and then jump to 2.3 like crazy. I was wondering what the problem might be and if you might have any suggestions. Thanks.

  • Hi all, i only have 5 minutes snatches of DIY at the moment, real life a pain!


    So I thought I'd share my favourite 5 minute snatch from the past few weeks.


    It happened today, it was whilst testing an unbalanced quad with a wonky APM (experiementing - trying to learn how the offsets work....).


    It was using andropilot on a galaxy tab, apm 2.5.


    I must stress this should NOT be attempted unless you can honestly say you can fly an arducopter out of any situation in ACRO mode and you fully understand the limitations of what you are attempting. This is a very early test, please wait before you pile into this, there are several ways to lose control completely at the moment. 


    That will be my only sermon this month....


    Anyway, here's a silly 'follow me' video. 2.9.1.


    I just cant wait for the inertial nav to be finished. Can't remember being so excited!


  • Hello!

    First real flights, without IMU6k_filter (still optimistic :) ). Here are logs, one for indoor test flight, the other was outside, windy 3-5m/s.

    If there is something shoud be better, please, lets analyse! 


    2013-02-18 17-13 5.log

    2013-02-18 17-09 3.log

  • Does V2.9 support FrSky RSSI (PWM) input? I did not find any documentation on how to connect non-analog RSSI?
  • Why is it that with 2.9.x in the Mission Planner, the artificial horizon appears to lag behind or at least respond sluggish when I move/tilt the APM around? In 2.8.1 the horizon still responds very quickly.

    Does anyone else experience this?

  • Hi all,

    I'm running my quadcopter with an APM 2.5 board, an uBlox GPS unit an external magnetometer and firmware version.

    My external magnetometer is placed with the components down and pins facing forward.

    Can I use the standard pre-compiled firmware or do I have to compile a specific version, because I'm using an external magnetometer?

    Best regards,

    Jan Willem

    The Netherlands

  • 3692624916?profile=originalFor what it is worth... I did a comparison between an APM mounted mounted with double sided servo tape (top image) and the Kyosho gel recommended in the wiki (bottom image). The Kyosho gel works really well! Using mpu6k_filter added (default: 0)

  • Hello again!

    I made first logs with success, without mpu6k_filter added (default: 0). Should this values be ok for further action? According to my readings of many threads, should be the upper limit, maybe even to add filter mpu6k @ 5Hz.

    ps Randy, altitude is ok now, after setup/reset/y. No more -2bln meters. Thanks!

  • my second successful flight ! yahoo 

    sorry guys I used tripod and I was trying to get familiar with the control.


    I have one problem I don't know if it is a problem or not , on that day it was windy when I move my throttle to 15% it clamp then it will start landing but once I increases it little bit to 20% it will start climbing until it reach few meters I tried to hoover at height of 1-2 meter but I couldn't.  I was flying in stabilize mode and I didn't use sonar in this fly. any comments?

  • Hi,

    I have some problem with alt hold and loiter. 

    In alt hold when the sonar works, if I fly over an object and the sonar recognize it, the copter makes a quick "jump", but just after that it reduces the throttle and make a quick descent. After a few "jump" it is calm down and stay in level on the same height. I think I should modify the throttle values but in which way? 

    Same problem with loiter but in addition with a small drift in the right. 

    Thanks for your help in advance. 

This reply was deleted.


DIY Robocars via Twitter
Jun 16
DIY Robocars via Twitter
RT @GrantEMoe: I won my first @diyrobocars @donkey_car virtual race! Many thanks to @chr1sa @EllerbachMaxime @tawnkramer and everyone who m…
Jun 13
DIY Robocars via Twitter
RT @gclue_akira: JetRacerで自動走行したコースを、InstantNeRFで再構築。データセットは別々に収集 #jetracer #instantNeRT
Jun 13
DIY Robocars via Twitter
RT @SmallpixelCar: SPC 3.0 Now the motor also works. This car is doable. I just need to design a deck to mount my compute and sensors. http…
Jun 13
DIY Robocars via Twitter
RT @SmallpixelCar: My new car SPC 3.0.
Jun 7
DIY Robocars via Twitter
RT @SmallpixelCar: High speed at @diyrobocars thanks @EdwardM26321707 for sharing the video
Jun 7
DIY Robocars via Twitter
RT @SmallpixelCar: Today at @RAMS_RC_Club for @diyrobocars. Used @emlid RTK GPS and @adafruit @BoschGlobal IMU. Lap time 28s…
May 28
DIY Robocars via Twitter
May 15
DIY Robocars via Twitter
May 14
DIY Robocars via Twitter
May 13
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
May 13
DIY Robocars via Twitter
May 11
DIY Robocars via Twitter
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Noticed my car zigzagged in last run. It turned out to be the grass stuck in the wheel and made the odometry less accura…
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Test my car. RTK GPS worked great. Thanks @emlid for their support.
May 8
DIY Drones via Twitter
RT @chr1sa: @kane That's @diydrones circa 2009. Still have a box of those Canon cameras that we used to strap into planes, just like this.…
May 3