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: 298500

Reply to This

Replies to This Discussion

Jeff, the default for THR_MID is 500. This doesn't change the throttle curve. You basically need to look in your log file at the Throttle_Out and see where you are hovering. You can then set THR_MID to this value and it will be your center stick.

Miguel, You should set your THR_MIN back to 100. THR_MIN is there so you can ensure that your motors are turning properly when at minimum throttle. THR_MIN should not be so high that your motors are generating any significant lift. Then set THR_MID as I describe above. Although you can take a trial and error approach if you like.

The THR_MID is adjustable between 300 and 700. This is there to ensure that people don't do anything to silly by accident.

The sample rate is 200 Hz but we can't log it at these speeds safely because of the time ti takes. I did do some flights logging just this do do FFT analysis on the vibration to try to determine how much of our problems are caused by aliasing.

To get a good idea what the noise level is we would need to use RMS value after a filter has been applied and used to subtract the component of the acceleration associated with the airframe. If we use max min without the filtering we will just get our max min physical accelerations and not measure the noise unless it is obviously disgusting :)

So we would need to do something like RMS(Raw Accel - filtered_at_5Hz_accel)


Are you saying that the props should be turning at all times once armed?

If so, I don''t like the idea, Min throttle to me means stopped props!

Is there any reason for setting it like this other than to just see the props turning?

Good info...thanks for that.


     Ok, good to know you can download your logs but I'll resist checking them because if the issue isn't there...probably not much point right?  If the issue reoccurs grab the logs and post 'em and we can have another look.

Multiwii is like this too, unless you compile it with motor_stop or some such variable.

Personally, I want my motors STOPPED. What if the copter is laying upside down? That's a couple more seconds of grinding as you go to disarm. No thanks.


     Not exactly.  What we're saying is that when the pilot's throttle stick is above zero, the props should always be turning.  All ESC have some deadband at the bottom so when you send them a low throttle value they simply won't turn.  The THR_MIN parameter ensures that while the pilot's throttle is above zero, the output to the motors is always above the ESC's deadband.  The default is 130pwm but for a very small number of people that's still too low and they see little glitches in flight as a motor stops momentarily..for another few it's too high and they lose some of the range of their ESCs.

I'm still trying to figure out all the modes and their "exact" function and reason for being there but is there a mode that you can just take off from and it'll hold position everytime I let go of the stick?

If you're familiar with any other product out there, it's like the "GPS" mode.

And all this time I thought I was doing something wrong in Stabilize mode!! Always fighting the throttle!!

BTW, what fixed my GPS tracks going nuts today Randy was putting aluminum foil on the bottom of the GPS pedestal. No more crazy tracks!

Loiter holds position and altitude. Position Hold holds position but you need to mainatin altitude. Altitude Hold holds altitude and you control positon.

Sure, I will. This log is not much for the issue.

Thanks Randy for spending time on my issue.


Excellent news about the GPS.  Sounds like you basically made the antennae bigger.  That's an interesting trick I've never heard before.

When 2.9.2 is out you'll find that you can move around in Loiter mode much more naturally (and accurately).  No specific ETA on that 'cuz need to get through these 2.9 hiccups first but aiming for about 1 month from now.


     Parameters are held in the eeprom which comes built in to all AVR chips.  So as long as your other arduino program isn't messing with them, then, as you've found, they will still be there when you reload the Arducopter code.  By the way, code goes into the AVR chip's flash.  ..and then on top of that the APM comes with a separate "dataflash" which we use for the onboard logging.

Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service