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,

    Just like to say thanks for all the help i have recieved!

    I have finally got loiter and alt hold working thanks to randy. Turned out to be the power wires messing with the compass and accel z values being too high.

    I therefore tried a mission for the first time ever and boy was i nervous. The mission was successful how ever i do have a few questions!

    Is there any way to make the mission flight smoother? Becasue my copter would fly very fast to the waypoints then sort of suddenly stop at it yaw towards the next one and then carry on to the next waypoint, creating a very jumpy video. 

    It also seems to correct very small errors in navigation with very big angles what would you recommend ?

    Thanks Tom.

  • what happened?

    2.9.1, flying smooth in stable mode doing multiple side to side maneuvers to check for wobbles. It suddenly started extreme roll osculations and climbing without radio control.. It looks somewhat like it went into thr hold with RTL with thr_in going to 0.. It also looks like too much rate gains..I had just completed tuning which gave great control.. I have the SimonK FW with N-FETs speed controllers.

    too much rate gain?

    throttle hold?

    faster speed controllers  made things worse?

    3692627581?profile=originalThanks in advance..Help appreciated.

    2013-02-19 13-16 7.log
  • Hi all,

     And especially hi to Randy.

     I'm new here, but I'm in the RC world since "ages", and recently I'm playing with quadcopters and controls board.

     I'm cheap, and I was always cheap (else I could not effort to have over 50 RC models, from air to water with 4 and 2 wheels), so ... I own a HK cheap Atmega 2560 board the one with GPS included for little more then 60$

     Anyhow, one thing that I want to ask:

    ??? Why Serial 3 have to be wasted for "telemetry" since it use the same signal as Serial 0, and as far as I know if USB is not connected the serial 0 pins just works fine ...

    ??? FrSky telemetry support (not sue if this is only on MegaPirateNG ... anyhow, FrSky gears are so cheap, and telemetry support is a big plus) ... I did post on rcGroups a mod, that allow to avoid to have a physical inverter ... just using 2 additional pins (one in and one out), and in interrupt that activate the reverse of the input ... and it is working just fine :)

    ??? Calibration and traditional TX commands ... actually I don't see much documentation ... I do like the multiwii commands, why not port then also here ? as well ... accelerometer calibration is damn complicated on 2.9.1 and there is no way to trim it after ... only trim, is the radio trim, that I still have to get if this effect the accelerometer calibration, or is playing a different role.

    Anyhow ... excellent job done here ... tons of info ... and so far the cheapest board capable to have proper navigation (using a HK clone, but I see RCtimer has now a 1:1 clone /copy at a very aggressive price)



  • I'm getting thrown around in the wind in loiter mode. Can someone help me interpret my log to determine what to adjust?


  • Just wnated to reprt that I finally after weeks, had a sunny dayso I ran out at lunch and flew a bit with 2.9.1, Flew a mission, did RTL several times, used Alt-Hold and Loiter (in a bit of a wind) and all worked great. Discovered after looking at the video, that one of my attachments for my camera was flopping loose and the extra bouncing vibrations had no impact on teh light (though the video is awful).

    Here is the mission track:



    All in all - pretty happy.

  • Some days you feel like the Wright Brothers.

    And some days you're Icarus.

    1) It was a mechanical failure.  The firmware did an amazing job trying to stabilize her, but in the end the vibes were just too much to overcome.

    2) Prior to this flight, I was running through the new inertial improvements (unrecorded) and - yeah - they're the bees knees.

    3) I got bold - and decided to slap the FPV gear on that text book "just one more flight" flight, and you can see where that went at 3:45

    The problem turned out to be a vibe that loosened the right propeller just enough to cause a fatal resonance under torque.  I realized I wasn't going to land this, so I threw the dice and chopped the throttle 

    Damage assessment for the crash:

    2 zip ties holding the feet to the frame.  By some divine act - despite the fact that it did 2 flips from 20m landed completely flat and upright in a nice soft pile of snow.   4 hours drying off in a nice toasty room and she powered up like a champ.

    So just as a precaution - I'm swapping out some components, but man - talk about dodging a bullet!

    Not even going to bother posting the telemetry logs because you can probably tell what the accel z values are just by watching the first few minutes.  This was a new build and I've been diligently going through the proving runs to ensure she's flyable...this mechanical failure just caught me off guard.

    Back to (re) building!

  • Hi,

    I just added a sonar to my second ardu-quad (APM25), I have had one on my first quad and it seemed to work but I never did the test in CLI. After installing the new sonar, I did the test, when it runs in test mode it is always outputting  its max range 1068cm's. I double checked everything and get the same results.  I thought I would test my quad I had sonar on for a while, it does the same thing.

    Please, can someone tell me what I am doing wrong?



  • hdop logging

    Is there a way to add this to the TM log or any of the other logs?


  • Hi Randy,
    You were right about the wrong sonar selected, hadn't noticed that the XL was selected instead of the LV, that must have happened when I reset everything. I have the LV-EZ1 fitted (couldn't get hold of an LV-EZ0 at the time) 6.45m range.

    I was looking at that trace last night as well and wondering about it. The rear garden does slope and have high shrubs and a small tree probably what the sonar was picking up. But when I went much higher totally out of range of the sonar and selected loiter, it started to bounce up and down again. Doesn't bounce with no sonar plugged in, just fidgets in situ.
    I'll change the sonar to match correctly and try again at a flat field - yes it is powered by 5v.

    I test flew it today with the correct settings, flys really well in stabilised, Auto or RTL and slick take off's and landings...well done guys!

    Still got the fidgety loiter though. Does something need tuning to settle it down? That can be clearly seen on the tlog when watching the HUD and switching from stabilised to loiter.

    Also had the camera fitted today.

    2013-02-19 16-14 1.log

    2013-02-19 13-17-35.tlog

  • My custom Hex (heavy) oscillates  up and down slowly by about 1m while in stabilize mode (Goes up slowly in Alt hold). It is very hard to get the throttle at the right position for it to stop. Do I need to decrease throttle rate P and increase D? And what do I need for throttle accel.?


This reply was deleted.


DIY Robocars via Twitter
RT @breadcentric: See how the April AWS DeepRacer races have ended and a couple bits of news: #AWSDeepRacer #Machin…
21 hours ago
DIY Robocars via Twitter
RT @sunilmallya: Representation Learning +Instance Transfer to learn new reward functions along with advantage based filtering of new exper…
DIY Robocars via Twitter
Apr 27
DIY Robocars via Twitter
Apr 27
DIY Robocars via Twitter
RT @f1tenth: Sliding (autonomously) into the weekend like ... 🤖😎 #f1tenth #robots #AutonomousVehicles @OpenRoboticsOrg @NVIDIAEmbedded @Aut…
Apr 25
DIY Robocars via Twitter
RT @chr1sa: One of the problems with autonomous car racing is that watching software drive is not a very exciting spectator sport. To help…
Apr 25
DIY Robocars via Twitter
RT @SmallpixelCar: Replaced AGX Xavier with @NVIDIAEmbedded Jetson Xavier NX. Now both cars look fast and clean
Apr 25
DIY Robocars via Twitter
RT @chr1sa: Yesterday we had a record number of competitors (36) in our monthly @DIYRobocars virtual autonomous car race. We kept it going…
Apr 25
DIY Robocars via Twitter
Apr 16
DIY Drones via Twitter
RT @chr1sa: After more than a year of only virtual races, @DIYRobocars returns to the newly renovated @circuitlaunch on May 22 for the resu…
Apr 11
DIY Robocars via Twitter
RT @DAVGtech: And now available with LiDAR 🔥
Apr 11
DIY Robocars via Twitter
RT @Heavy02011: #VirtualRaceLeague: @DIYRobocars Race #9 - #ParkingLotNerds #thunderhillracetrack, CA Join us for the next race April 24th,…
Apr 11
DIY Robocars via Twitter
RT @DWalmroth: Weather's finally cooperating, looking forward to racing 1:10 scale autonomous cars outdoors again! @diyrobocars, @NVIDIAEm…
Apr 7
DIY Robocars via Twitter
RT @AIDRI_: I finally succeeded in optimizing the trajectory and speed of a car on a #racetrack. Next step: implement a 2d controller and…
Apr 7
DIY Robocars via Twitter
@jetdillo @circuitlaunch Actually the second *in person* event in a year. We do virtual races every month
Apr 2
DIY Robocars via Twitter
Update: we're moving it back one day to Sunday (the 4th) at 11:00am instead
Apr 2