Developer

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 –

Replies

  • Dear All

    After the crash with 2.8.1 (flip on the takeoff) I replace the failed part and adjust PID as follow… now seems able to fly well…

    3692575008?profile=original

    and this is the quad....

    3692574976?profile=original

    and wiring....

    3692575029?profile=originalbye :)

    Gianluca

  • 2.9rc1 is great!

    in future maybe  make noise filter interval and accel sensitivity to auto - adaptive from 2G to 8G - it could also give great features for calculation of displacements and prevent accidents in case of strong vibrations.

    Now the sensitivity of the accelerometer roughened up to 8G - and this is very rough for inertial

       // accel range, 0x20,0x00 => 2g, 0x10,0x00=>4g    regs= (1073741824/accel_scale*65536)
        //regs[0]=0x20;     // 2g
        regs[0]=0x08;               // 8g
        regs[1]=0x00;
        dmp_register_write(0x00, 0x6C, 0x02, regs);                 //D_0_108

  • Developer

    Hi all,

    This is a video of how Alt Hold should look when you have a good tune on the APM2.5

    https://www.youtube.com/watch?v=wpfpquao6sM

    We have noised that the APM1's may need the time constant reduced. I would suggest starting at around 3 or 4 until we get a chance to find a good value.

    Thanks,

    Leonard

  • Developer

    There's some improvements to the failsafe behaviour as well in 2.9.  I've updated the Failsafe wiki page to reflect the changes.  it's pretty accurate for the throttle failsafe but details are still a bit sparse for the battery failsafe.  Personally I've never successfully invoked a battery failsafe because the battery capacity got low...that's probably something that needs more testing.

  • Developer

    FYI - I've updated the Camera wiki page to show the mission planner set-up screen and how to trigger the camera's shutter with a servo.

  • Developer

    Here's a video demo of how to do the accelerometer calibration.  You should try and keep it stable but it actually doesn't matter if it's perfectly level, or perfectly on it's left side etc.

  • How is Calibrate Accel (Beta) meant to be used, I don't seem to be able to find any information about how to actually use it.

  • Developer

    We've just upload ArduCopter 2.9-rc1 ("rc1" = release candidate #1) to the downloads area.  This is for beta testers who don't mind putting their copters at risk to help us iron out any issues ahead of the official release!

     

    As per usual please post any problems or feedback below and we will help dig into the issues and hopefully resolve them.

    This code has been flown a fair bit by the dev team but there may be a few issues here and there so please be careful!

    We hope you find the alt hold works as well as it has for us!

     

    Improvements over 2.8.1:
    1) altitude hold improvements:
        a)inertial navigation for vertical axis [Randy/Jonathan/Leonard/Jason]
        b)accel based throttle controller [Leonard/Randy]
        c)accelerometer calibration routine updated to use gauss-newton method [Randy/Tridge/Rolfe Schmidt]
        d)parameters to control climb rate:
            AUTO_VELZ_MIN, AUTO_VELZ_MAX - allows you to control the maximum climb and descent rates of the autopilot (in cm/s)
            PILOT_VELZ_MAX - allows you to control the maximum climb/descent rate when in alt hold or loiter (in cm/s)
    2) landing improvements [Leonard/Randy]
        LAND_SPEED - allows you to set the landing speed in cm/s
    3) camera related improvements:
        a) AP_Relay enabled for APM2 and integrated with AP_Camera [Sandro Benigno]
        b) camera trigger with channel 7 switch or DO_DIGICAM_CONTROL mission command [Randy]
        c) allow yaw override by pilot or with CONDITIONAL_YAW command during missions [Randy]
            YAW_OVR_BEHAVE - Controls when autopilot takes back normal control of yaw after pilot overrides (0=after next wp, 1=never)
    4) trad heli improvements [Rob]
        a) code tested and brought back into the fold (2.8.1 was never released for trad helis)
        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) removed angle boost function because it created more problems than it solved
        f) bug fix to allow collective pitch to use the entire range of servos
    5) mediatek gps driver improvements [Craig]
        a) added support for 1.9 firmware
        b) bug fix to start-up routine so sbas can be enabled
    6) failsafe improvements (both throttle and battery) [Randy/Craig/John Arne Birkeland]
        a) RTL will not trigger if your throttle is zero - reduces risk of accidentally invoking RTL if you switch off your receiver before disarming
        b) failsafe triggered in unlikely case of a PPM encoder failure
        c) bug fix to resolve motors momentarily reducing to zero after failsafe is triggered
    7) mpu6k filtering made configurable and default changed to 42hz for copters [Leonard/Tridge]
    8) support ppm sum for transmitters with as few as 5 channels [Randy/John Arne Birkeland]
    9) acro trainer - copter will return to be generally upright if you release the sticks in acro mode [Leonard]
        ACRO_BAL_ROLL, ACRO_BAL_PITCH - controls rate at which roll returns to level
        ACRO_TRAINER - 1 to enable the auto-bring-upright feature
    10) other changes and bug fixes:
        a) allow >45 degrees when in stabilize mode by adding lines like below to APM_Config (compile time option only) [Jason]
            #define MAX_INPUT_ROLL_ANGLE 6000     // 60 degrees
            #define MAX_INPUT_PITCH_ANGLE 6000    // 60 degrees
        b) bug fix to stop RTL from ever climbing to an unreasonable height (i.e. >80m) [Jason]
        c) event and state logging [Jason]
        d) allow cli to be used over telemetry link [Tridge]
        e) bug fix to allow compass accumulate to run when we have spare cpu cycles [Randy]
        f) bug fix so do_set_servo command works [Randy]
        g) bug fix to PID controller's so they don't calculate crazy D term on the first call [Tridge]
        h) bug fix to initialise navigation parameter to resolve twitch when entering some navigation modes [Jason]
        i) performance improvement to copter leds - use DigitalFastWrite and DigitalFastRead instead of native arduino functions  [Randy]
        j) removed unused stab_d from roll and pitch controller [Jason]
        k) bug fix for guided mode not reaching target altitude if it reaches horizontal target first [Randy]
        l) code clean-up, parameter documentation improvements [Randy/Jason/Rob/others]

     

    Note: Accelerometer values are much more important now so please use the new accel calibration routine, "Calibrate Accel (Beta)", at the bottom of the ArduCopter Level page in the mission planner.  Don't use the "Calibrate Now" button which is the old method.
        Accel based throttle controller has new set of PID gains that appear at the bottom of the ArduCopter Config page of the mission planner.
        Default Altitude Hold PID values are : P:1.0, I:0.0
        Default Throttle Rate PID values are: P:1.0, I:0.0, D:0.2
        Default Accel Throttle PID values are: P:0.75, I:1.5, D:0

  • I was wondering what the minimum Arduino requirement is to upload the code to APM 2.5?

    From MP it installs Arducopter 2.8.1 fine, but when I upload it from the zip files through Arduino the flashing red light on the APM never comes on and although it connects to MP, no attitude or other data seems to go through.

    Currently I have Arduino ERW 1.0.1i installed.

    Also, forgive my lack of C++ knowledge, but does the code care whether statements are #if or # if? I ask since #if doesn't get highlighted in the Arduino editor while # if highlights the if.

  • What difference would you notice between using a 800kv motor compared to a 900Kv motor? Which is preferable for a larger size quad and why?

This reply was deleted.

Activity

Neville Rodrigues liked Neville Rodrigues's profile
Jun 30
Santiago Perez liked Santiago Perez's profile
Jun 21
More…