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.


Views: 297967

Reply to This

Replies to This Discussion

My position HOLD is nowhere near that

I have 3DR ArduCopter QUAD -

is there a checklist to go tru to get PH/LOITER to work right?

help anybody?



I was mistaken, I dont know when but at some point one of my copters now does do auto calibration without changing rc_speed (set at 490)

The other copter will not enter cal mode even with rc_speed set at 50hz.  The 2 main differences between the 2 copters is 1 has Mystery 40a esc's, the other has blueseries 40a esc's (blueseres is a clone of the mystery 40a)  on this copter 1 of my mystery esc's died on me (it wont cal at all, even manually) so I replaced it with an extra blueseries, so all 4 esc's are not exactly  the same. I dont know if this is why it wont enter cal mode but it would not enter cal mode even when all were mystery brand. I did just order some more blueseries 40a to put on this copter, I will let you know if it fixes it when they come..

the other difference is, and I think this is more likely the reason. This copter has a Dragon Link RX (the other copter has a frsky 2.4ghz)  The dragon link, I have noticed some differences, the pwm on throttle will never go below 992, so to get failsafe to work I have to set my throttle to 95% in the tx (bringing the low pwm up to 1015) so when I disconnect (shut off tx) it will drop to 992 and go into failsafe.  I am guessing it has to do with the DL but I dont know exactly how cal mode works so I cant be sure.

BTW: Parameter gen? that sounds interesting, I havent seen it :)



Cool video!  did you near,y hit that three mate? 

My YS-X6 does the same, rock solid on position and alt holds. The RTL landing is so smooth and nicely touches down, no bounce , then motors off.

Luca, basically you have to get everything in order for a decent loiter. You've probably heard the drill with checking things like vibrations, compass/throttle drift, baro error... all that applies. My best advice on top of that is to crank the gains up high as you possibly can. My quad is tuned like stone... those aren't oscillations... pretty much all the movement you see is caused by my shaky thumbs (I need training exercises for that LOL). Therefore when the Navigation does something to keep it in position, the quad does exactly as it expects. That can mean some twitching if your GPS isn't getting a clear picture, but when everything's on... 2.9.1 loiter works just like in that video. ;)

OK - that was ugly. Was in a hover with throttle at 50%. Flipped into Alt-Hold and the quad shot straight up at very high speed. In the past I saw gradual climb from Z vibration (not on this quad), but this was extremely fast and ended up being destructive as it hit a tree and came down hard. 2 broken motor mounts, two broken props, a cracked mounting board, and a smashed dome. Luckily the GoPro landed on soft turf. Trying to get a log off of it now. Is is possible for vibes to cause such an extreme reaction? Maybe something came loose and started things shaking too much? 

Thanks John. Yes that was a really close one... it would've been a total loss! I need to start recording my face while flying; I would laugh hard watching my reaction when that happened. ;D

John, are your esc's flashed with simonK? There was an issue with simonK and 490hz calibration, but I think it's been fixed so the calibration mode always uses 50hz.

FWIW, I have my Dragon Link set so it puts out ~950us during fail-safe, and ~1100us at idle. The setup is similar to the way you do DSM, except you hit the red button on DL instead of rebinding. Here's how I did it on my rig: set throttle end points on my 9303 to +-100%, and follow up with a radio calibration in MP. Then I decreased the 9303 min throttle end point to -150%, pulled throttle stick to idle, and held the DL button ~3sec (set neutral failsafe positions with 950us throttle). Then I increased the end point back to -100% on my 9303, verified proper operation... done. Not that you'll ever have a failsafe with DL, but it is safer to have it set anyways LOL! ;)

Sorry to hear about your losses... I haven't heard of rockets with 'noisy alt hold'. If rate_p is way too high you can get an out of control climb away, but that's always accompanied by very bad oscillations.


I was just out flying, I had it in loiter, which was working pretty well, when I switched to althold to move the copter. When I switched to althold I noticed the copter dipped forward a little. I switched back to loiter and it held pos. Then I switched back to althold and it was pitching forward badly, I  lost control and did a sort of controlled crash.

I have seen this once before. I have been having problems with this copter but thought we got them worked out, well al but it has been tilting forward on takeoff, once in the air it is, or has been stable.

I was wondering if someone could tell me what is caused this, I am not sure even what to look for in the logs...





      Dataflash logs will be much better in this case because we really want to compare the Pitch-In vs Pitch in the ATT message.  If these diverge then it's most likely a frame issue.  If they stay together then it's a controller issue.  I suspect what's happening is that Loiter is having to hold the pitch over quite a lot to keep the copter level but you don't see that as the pilot.  When you switch to alt-hold you, the pilot, are suddenly in control of the pitch again and you have to do the work that loiter was doing (i.e. hold the pitch forward or back or whatever).

     I wonder if the center of gravity is far from the physical center of the copter.  The controllers can compensate for that but it'll mean one engine needs to work harder and that motor could hit it's upper limit more often leading to some bad behaviour.


     yes, that's possible.  The problem can also be aliasing if the vibration strikes at just the right frequency (100hz).  2.9.1b (which is coming out shortly) has the baro-accel time constant set to 5 by default (instead of 7) which makes it a bit more resistant to vibration.  You can accomplish the same thing with 2.9.1 by setting INS_TC_Z to 5 yourself.

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service