ArduCopter-3.0.1 released!

ArduCopter 3.0.1 has been released and is now available in the Mission Planner,, GitHub and the new Downloads Area.

Warning #1: Compass calibration and reducing interference is far more important than with 2.9.1b

Warning #2: GPS glitches can cause sudden and aggressive position changes while in loiter mode.  You may wish to reduce the Loiter PID P to 0.5 (from 1.0) to reduce aggressiveness (see image below of where this gain can be found in mission planner).

Warning #3: optical flow is not supported but will be back in the next release (AC-3.0.2 or AC-3.1.0).

Warning #4: loiter turns does not maintain altitude.  This bug will be fixed in AC-3.0.2.

Warning #5: This release has only been lightly tested on Traditional Helicopters.

Improvements over 2.9.1b include:

  • Inertial Navigation for Loiter and Auto meaning much more accurate control (Randy,Leonard,JonathanC)
  • 3D navigation controller follows straight lines in all dimensions between waypoints (Leonard,Randy)

         WPNAV_SPEED, WPNAV_SPEED_UP, WPNAV_SPEED_DN, WPNAV_ACCEL allows configuring speeds and acceleration during missions

  • "compassmot" to compensate for interference on compass from the pdb, motors, ESCs and battery.  (Randy,JonathanC) (Set-up video here)
  • Safety improvements:
    • simple Tin Can shaped Geo Fence
    • pre-arm checks to ensure all calibration has been performed before arming (can be disabled by setting ARMING_CHECK to zero).  (video description here)
    • GPS failsafe - switches to LAND if GPS is lost for 5 seconds
    • stability patch improvements to stop rapid climbs in very overpowered or overtuned copters
  • Circle mode improvements including "panorama" when CIRCLE_RADIUS set to zero (Randy,Leonard)
  • SONAR_GAIN parameter added to allow better tuning of sonar surface tracking
  • CH8 auxiliary switch (same features as CH7)
  • works on PX4 (some minor features still not available) (Tridge,PatH)

How to upgrade:

1. Make sure you are using Mission Planner 1.2.59 or newer (get it here)

2. Click on the MissionPlanner's Hardware, Install Firmware screen.  The version numbers should appear as "ArduCopter-3.0.1", then click the appropriate frame icon and it should upgrade as per usual.

3. Reduce the Loiter and Alt Hold PIDs if you have modified them from the defaults.  The modified PID values for the 3DR frame can be seen in the image below.

Note: Nav parameters have been combined with Loiter so do not be concerned if you can't find them.


4. Although not directly related to this release, if you purchased an APM prior to March of 2013, update your PPM encoder to the latest firmware (instructions here).

5. Try out the new version in stabilize mode first, then alt-hold, then loiter and finally RTL and Auto.

Numerous How-To videos are available:

Special Thanks to MarcoDaveC and the large number of testers on the pre-release thread who put their copters at risk during the extended testing period.  Some of their videos can be found hereherehereherehere and here.  Thanks also to MichaelO for the MP changes required for this release.

All feedback welcome.  Please put your questions, comments (good and bad!) below.

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

Join diydrones

Email me when people reply –


  • Developer

    AC 3.1-rc6 is now available through the Mission Planner's Beta firmwares link or on github.  There were quite a few changes, mostly safety related since -rc5.  These changes include:
    1) Heli improvements:
        a) support for direct drive tails (uses TAIL_TYPE and TAIL_SPEED parameters)
        b) smooth main rotor ramp-up for those without external govenor (RSC_RAMP_TIME)
        c) internal estimate of rotor speed configurable with RSC_RUNUP_TIME parameter to ensure rotor at top speed before starting missions
        d) LAND_COL_MIN collective position used when landed (reduces chance copter will push too hard into the ground when landing or before starting missions)
        e) reduced collective while in stabilize mode (STAB_COL_MIN, STAB_COL_MAX) for more precise throttle control
        f) external gyro parameter range changed from 1000~2000 to 0~1000 (more consistent with other parameters)
        g) dynamic flight detector switches on/off leaky-i term depending on copter speed
    2) SingleCopter airframe support (contribution from Bill King)
    3) Drift mode replaces TOY
    4) MPU6k SPI bus speed decreased from 8Mhz to 500khz after 4 errors
    5) Safety related changes:
        a) crash detector cuts motors if copter upside down for more than 2 seconds
        b) INS (accel and gyro) health check in pre-arm checks
        c) ARMING_CHECK allows turning on/off individual checks for baro, GPS, compass, parameters, board voltage, radio
        d) detect Ublox GPS running at less than 5hz and resend configuration
        e) GPSGlitch acceptable radius reduced to 5m (stricter detection of glitches)
        f) range check roll, pitch input to ensure crazy radio values don't get through to stabilize controller
        g) GPS failsafe options to trigger AltHold instead of LAND or to trigger LAND even if in flight mode that does not require GPS
        h) Battery failsafe option to trigger RTL instead of LAND
        i) MOT_SPIN_ARMED set to zero by default
    6) bug fixes:
        a) missing throttle controller initialisation would mean Stabilize mode's throttle could be non-tilt-compensated
        b) inertial nav baro and gps delay compensation fix (contribution from Neurocopter)
        c) GPS failsafe was invoking LAND mode which still used GPS for horizontal control

    Unless there are serious issue found, I expect this (or something extremely similar) will become the official AC-3.1 release and I will be creating a new "AC3.1 ready for wider testing" discussion within a few days.

    One thing that I'm very interested in finding out is what are the best values for the GPSGLITCH_RADIUS and GPSGLITCH_ACCEL values.  Best means the lowest values (i.e. strictest so we catch more glitches) that doesn't create lots of false positives.  RADIUS should be between 100 ~ 1000 (i.e. 1m ~ 10m) and ACCEL should be 300 ~ 1000 (i.e. 3m/s/s ~ 10m/s/s).  Any feedback on this or anything else related to -rc6 very much appreciated.

  • hello i dont know if i can request something of the programmers but since "Warning #4: loiter turns does not maintain altitude.  This bug will be fixed in AC-3.0.2." is a Bug, is there any chance altitude params can be added to that function?

    I am thinking how useful it would be if i could Send params that says Start at this Altitude, then End at this Altitude, Always point nose to the Way Point Center.. I am asking this because as a camera person, I would find this a very cinematic shot.

    If those params arent changed, it would just circle at its current altitude.  if it cant be done, i understand, i am sure you ahve more pressing issues, i was looking for a script for this but thats harder to find than to ask this question.

    thanks in advance, keep up the good work.

  • I have so many logs in log folder and i don't know which one belongs to which copter. Please add a System ID parameter. Let's give them a name!

  • Sorry if this is a repeat issue - I decided to try out rc5 today (upgrading from 3.0.1) to see what autotune was about.  That was interesting - I need autotune for my tail servo I need to get rid of a slow tail wag in my tricopter.

    Anyway I've had this happen 3 times (not everytime I switched) when switching from alt hold to stabilize my controls reversed roll, pitch, yaw (I think - I landed fast - I'm not that good at reversed controls!!) - thankfully not throttle.  If I landed and disarmed/rearmed (not power down/reset/etc) it was fine again - strange.  That sort of behavior could definitely cause someone to crash.  Don't know if this has been reported or not for tricopter.

    Also regarding tricopter at least on my tricopter, having the tail prop spin on armed is a problem when disarming - my servo tilts the spinning prop into the ground.  I have copterleds turned on to tell me arm status so I'll probably just disable the prop spin feature since I don't really need this feature.

    Only other issue I have had for a while is that I cannot use ch6 to tune parameters.  I set the range but MP doesn't match my input.  When I read the value I'm trying to adjust it's always out of the range set by MP.  This used to work at some point - I've had this issue for a while now even with 3.0.1.

    Thank you for all of your work!  I hope this feedback is useful.

  • I have asked him to do esc recalib
  • Hello all, 

    i crashed last week but i didnt know the reason, suddenly all motors switched off for second then start spin in the air but the copter couldn't balance it self , full video here :

  • Moderator

    Goodness me, Leonard. With the perfect amount of time to get a smoke in while it was autotuning, I now have the best tune yet.

    F450, APM2.5 between the frames with external mag. 30cm over the frame with 8" props on a 2.6A 4S on the top of the frame. Stock PIDs left the machine a bit twitchy. Flies like butter now. Thanks dude.

  • I checked motors and props before I flew it.. I was also worried about the circular movement... If u check te logs tho doesn't the vibrations seem too low for all that movement?? (Logs for only the second flight- p at 0.17)
    I checked compass and throttle mid before flight (500ish) compass was fine
  • I have some train tunnel cam from 3.1 rc5  :)

  • Mmm friend building a hexa.. On default pids it does the wobble dance.. From the logs I think it maybe the apm is fixed on too softly can you guys perhaps have a look and tell me what u you think?
    (Only first few mins valid.. He forgot to turn apm off on the way home:))
This reply was deleted.


DIY Robocars via Twitter
RT @a1k0n: @DanielChiaJH @diyrobocars @circuitlaunch Here's my car's view of that race. About 8.4 second lap times for laps 2 and 3... both…
3 hours ago
DIY Robocars via Twitter
RT @DanielChiaJH: Great racing against @a1k0n today at @diyrobocars! Pretty cool to both break sun-9s at the track today I think I got very…
DIY Robocars via Twitter
Broadcasting the @circuitlaunch race live now at Races begin around 2:00pm PT
DIY Robocars via Twitter
RT @a1k0n: ran a huge number of hyperparameter tuning experiments yesterday; now I can train a new policy, far with better quality, in 15 m…
DIY Robocars via Twitter
RT @a1k0n: Did I get rid of hand-tuned parameters? Yes. Am I still hand-tuning more parameters? Also yes. I have a few knobs to address the…
Sep 26
DIY Robocars via Twitter
RT @a1k0n: I'm not going to spoil it, but (after charging the battery) this works way better than it has any right to. The car is now faste…
Sep 26
DIY Robocars via Twitter
RT @a1k0n: Decided to just see what happens if I run the sim-trained neural net on the car, with some safety rails around max throttle slew…
Sep 26
DIY Robocars via Twitter
Sep 24
DIY Robocars via Twitter
RT @SmallpixelCar: @a1k0n @diyrobocars I learned from this. This is my speed profile. Looks like I am too conservative on the right side of…
Sep 24
DIY Robocars via Twitter
RT @a1k0n: @SmallpixelCar @diyrobocars Dot color is speed; brighter is faster. Yeah, it has less room to explore in the tighter part, and t…
Sep 24
DIY Robocars via Twitter
RT @a1k0n: I'm gonna try to do proper offline reinforcement learning for @diyrobocars and throw away all my manual parameter tuning for the…
Sep 23
DIY Robocars via Twitter
RT @circuitlaunch: DIY Robocars & Brazilian BBQ - Sat 10/1. Our track combines hairpin curves with an intersection for max danger. Take tha…
Sep 22
DIY Robocars via Twitter
RT @SmallpixelCar: Had an great test today on @RAMS_RC_Club track. However the car starts to drift at 40mph. Some experts recommended to ch…
Sep 11
DIY Robocars via Twitter
RT @gclue_akira: 世界最速 チームtamiyaのaiカー
Sep 10
DIY Robocars via Twitter
RT @DanielChiaJH: Always a good time working on my @diyrobocars car at @circuitlaunch. Still got some work to do if I’m to beat @a1k0n howe…
Sep 10
DIY Robocars via Twitter
RT @SmallpixelCar: My new speed profile for @RAMS_RC_Club track
Sep 10