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 –


  • First testing on an APM1 and a quad.

    Previously having many good flights on 2.7.3

    Loaded 2.8 through the Mission Planner 1.2.14.

    The eeprom was detected as change and was erased and I went through radio calibration ok and set up my hardware options (compass, sonar).  I also set and saved my modes. 

    That is when I started running into problems.  

    1.  Tried an Arducopter X-frame level.  Took a very long time (25 seconds or so with weird flashing light pattern) and came back with a dialog box:

    Failed to level : ac2 2.0.37+ is required.

    2. I tried entering the CLI through the Mission Planner and it is not possible to get the prompt. I get the start messages repeating over and over as if the software is restarting:

    Init ArduCopter V2.8

    Free RAM: 1033
    FW Ver: 120

    load_all took 5468us

    Press ENTER 3 times for CLI

    Init ArduCopter V2.8

    Free RAM: 1033
    FW Ver: 120

    load_all took 5456us

    Press ENTER 3 times for CLI

    Init ArduCopter V2.8

    Free RAM: 1033
    FW Ver: 120

    load_all took 5468us

    Press ENTER 3 times for CLI

    Init ArduCopter V2.8

    Free RAM: 1033
    FW Ver: 120


    I gave up at this point and tried reloading 2.7.3. It isn't available from the previous firmware options (latest available is 2.7.2), so I loaded it through Arduino 1.0.1 from my zip of the source and all is working again. 


  • Any plan of implementing an autotune function? Even if it's a seperate firmware  (because of space restrictions) it would be extremely usefull. That and a cheap bluetooth function, I can't tell you how much I despise having to land, disconnect batt and then plug in usb.

    Anyways, I will go play :)

  • This sounds great! As soon as the monsoons stop, I will check it out!.

  • Thank you ....... I will test and fun it.
This reply was deleted.


Joseph Udofia liked Joseph Udofia's profile
David Hori liked Isabella Domi's profile
Jan 12