ArduCopter 2.8 / 2.8.1 released

Arducopter 2.8.1 is now in the mission planner and in the downloads area! Remember to do your MP configuration again after loading this code, since it erases your EEPROM and sets it to the new defaults. 

Note: Issues with APM1 user's level feature not working are now resolved.  If you installed 2.8 we highly recommend you upgrade to 2.8.1 as 430 extra bytes of RAM have been freed up which reduces the chance of memory corruption (although we haven't seen any cases of this on the APM2 at least) .

Note #2: this release has not gone out for Traditional Helicopters until they can be tested fully.  Flip and Toy mode have also not been fully tested.

Improvements over 2.7.3:

  • Improved ACRO mode (Leonard Hall)
  • Improved stability patch to reduce "climb-on-yaw" problem (Leonard, Rob Lefebvre, Randy)
  • Rate controller targets moved to body frames (yaw control now works properly when copter is inverted) (Leonard/Randy)
  • Less bouncy Stabilize yaw control (Leonard)
  • OpticalFlow sensor support for APM2.5 (Randy)
  • DMP works again by adding "#define DMP_ENABLED ENABLED" to APM_Config.h You can also log DMP vs DCM to the dataflash by adding "#define SECONDARY_DMP_ENABLED ENABLED" (Randy)
  • Watch dog added to shutdown motors if main loop feezes for 2 seconds (Randy)
  • Thrust curve added to linearize pwm->thrust. Removes deadzone found above 90% throttle in most ESC/motors (Randy)
  • More timing improvements (main loop is now tied to MPU6000s interrupt) (Randy)
  • GPS NMEA bug fix (Alexey Kozin)
  • Logging improvements (log I terms, dump all settings at head of dataflash log) (Jason)


Bug Fixes / Parameter changes:

  • fixed skipping of last waypoint (Jason)
  • resolved twitching when no GPS attached (Tridge)
  • fixed loss of altitude if alt hold is engaged before first GPS lock (Randy/Jason)
  • moved Roll-Pitch I terms from Stabilize controllers to Rate controllers
  • TILT_COMPENSATION param tuned for TradHeli (Rob)

Code Cleanup:

  • HAL changes for platform portability (Pat Hickey)
  • Removed INSTANT_PWM (Randy)

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.

Please note that on this release we've moved the Roll and Pitch I terms from the Stabilize controller to the Rate controller. There's some evidence that says this can lead to flips on take-off if you move the roll or pitch sticks around as you take-off so we recommend you leave these sticks in the middle until you're in the air.

Please feel free to report issues you find in the discussion below and/or add them to the issues list.

Thanks and enjoy!

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Dev team... isn't it fair to say that there will ALWAYS be lower pressure with increased airflow velocity across a multi frame? AFAIK it's caused by separation bubbles and there's no physical cure for that (foam & tupperware won't help). OTOH, as I look at every single one of my logs, the baro alt consistently goes up with GPS ground speed. It is very repeatable and even the values are consistent (not sure if it's a linear relationship, but it is perfectly in phase).

    I suggest adding a simple mix that uses GPS ground speed to compensate for this baro error. This should drastically reduce speed related baro error, and the current crop of GPS are plenty accurate for the purpose. Of course this won't solve the problem of separation when wind smacks it around; that would require wind velocity measurement. Maybe a "wind sock" with keil probe attached would work for that. :P

    is.gdCrunchbase: is a company (Consumer Web), acquired by Memset.

  • When is the estimated time of release for the new firmware 2.9 in the mission planner?

  • Randy,

           I just last test loiter high altitude 95 meters and had a little headwind about 2-3 knots. It had error position 1 meter only.


    2013-01-11 18-11 3.log
  • Developer

    AC2.9 Release candidate #3 is out in the downloads area.    The biggest change should be for APM1 users because we increased the speed of the baro updates and also added some performance improvements.


    The other big change is that "surface tracking" is now on by default for people with a sonar enabled.  When a pilot is flying Alt-Hold or Loiter, when we first detect an object below the copter we grab onto it's distance and for as long as we maintain sonar contact we try to stay at that distance.  If we lose sonar contact completely we just stick at our current altitude.  This surface tracking is not used in auto missions.

    In general we hope this works better than the blended sonar+baro altitude hold we had in 2.8.1 because it will allow you to climb hills or flights of stairs even if that takes you far above your home altitude.  Still, it could lead to some unexpected behaviours..for example if your friend hovered a quad below your quad as he/she adjusted his altitude your copter would also move up and down.  If you fly overtop of a tree you may also find that your copter jumps up and down as it detects the different heights of the branches.

    Ah, the sonar is also used when landing so if you go into LAND mode above a roof for example, you should do a gentle touch-down on the roof.


    List of changes over 2.9-rc2:
    1) alt hold with sonar improvements - now on by default
    2) performance and memory useage improvements
    3) increase APM1 baro pressure read from 5hz to 8.3hz to improve alt hold
    4) bug fix: altitude error reported to GCS
    5) limit inertial nav's max accel offset correction to 100cm/s/s to speed up recovery after hard impacts
    6) moved rate controllers to run after imu read

  • hi,

    i'm tuning my loiter pids today, and while i'm switching back to stab mode,

    my quad suddenly do extreem roll to the right and crashes, got a pretty bad damage on it..

    log attached, i hope someone could read it, since i'm a noob in this..

    i'm running 2.9 rc2 on my apm 2.5 board, and i'm a complete noob.. only 1 month of experience in rotary wing..

    2013-01-11 14-02 2.log

  • hi,

    i'm using 2.9rc2 on my apm 2.5, but i still can't make camera trigger to work.

    camera gimbal works very well though..

    i use RC8 for camera trigger, and i have try hxt900 and spektrum dsp75 without success..


  • Hello,

    I am having some issues with APM 2.5 & optical flow sensor! The sensor will not stay enabled. In CLI the sensor shows disabled. I just upgraded my Y6 from APM1 to 2.5 & realized this issue is there any support for optical flow sensor and 2.5??


  • Does anyone have a log screenshot of RAW accel data that shows what vibration levels SHOULD look like?  The reason I ask is because I am not sure I know what "acceptable" level of vibes on this system actually is.  I have a TBS Discovery, which is a great little frame, but has issue with vibes due to the infamous DJI vibro-arms.  Even well balanced props, motors will give some cameras (and maybe controllers) fits.  My APM2 currently sits on 0.25" thick 25duro soborothane, which generally does well.  Though, in this case, the controller is probably too light.

    I will post some of my levels tonight, but I thought I would see if anyone has any shots of there levels.  A description of your setup and any iso techniques would be good as well.

  • Developer


         With the easy performance monitoring we have in 2.9 (the dataflash PM message includes info on the # of slow running loops) we've stumbled over some performance issues on the APM1.  These issues have actually been there from even before 2.8.1 but in any case, we're working to resolve this before pushing out release candidate #3.  Hopefully won't be more than another 24h or so..

  • Today, I test 2.9 rc2 by used GPS MTK3329 removed battery backup again. it's loiter mode very good and hold on the air and test Guided mode very nice and no oscillate. 

    2013-01-09 00-28 2.log

    2013-01-09 00-29 3.log

This reply was deleted.