Copter-3.3 beta testing

Warning #1: an issue has been found with Tower's Pause button which can cause the vehicle to fly to an old position if the vehicle has not sent a position update to Tower in some time.

Warning #2: Copter-3.3.2 fixes a bug found in Copter-3.3.1's desired climb rate initialisation which could lead to a sudden momentary drop when switching from Stabilize or Acro to AltHold, Loiter or PosHold.

Warning #3: Copter-3.3.2 fixes an issue found in Copter-3.3.1 which could lead to hard landings in RTL or AUTO if the WPNAV_SPEED_DN was set too high (i.e. >400 or 4m/s) and/or the WPNAV_ACCEL_Z was set too low (i.e. <100 or 1m/s/s).

Warning #4: a bug was found in Copter-3.3 which could cause a sudden crash if you abort a Take-off initiated from a ground station.  Video description is here.  The bug is fixed in Copter-3.3.1 so we recommend upgrading.

Note #1: AC3.3-rc8 corrected a long standing bug in the HDOP reporting.  HDOP values will appear about 40% lower than previously but this does not actually mean the GPS position is better than before.
Note #2: if upgrading from AC3.2.1 the vehicle's accelerometer calibration needs to be done again.
Note #3: set SERIAL2_PROTOCOL to "3" and reboot the board to enable FrSky telemetry like in previous versions.
Note #4: the wiki will be updated over the next few weeks to explain how to use the new features

Copter-3.3.1 is available through the mission planner.  The full list of changes vs AC3.2.1 can be see in the ReleaseNotes and below are the most recent changes since AC3.3.

Sadly this version (and all future versions) will not run on the APM2.x boards due to CPU speed, flash and RAM restrictions.

Changes from 3.3:

1) Bug fix to prevent potential crash if Follow-Me is used after an aborted takeoff

2) compiler upgraded to 4.9.3 (runs slightly faster than 4.7.2 which was used previously)

Changes from 3.3-rc11:

1) EKF recovers from pre-arm "Compass variance" failure if compasses are consistent

Changes from 3.3-rc10:

1) PreArm "Need 3D Fix" message replaced with detailed reason from EKF

Changes from 3.3-rc9
1) EKF improvements:
    a) simpler optical flow takeoff check
2) Bug Fixes/Minor enhancements:
    a) fix INS3_USE parameter eeprom location
    b) fix SToRM32 serial protocol driver to work with recent versions
    c) increase motor pwm->thrust conversion (aka MOT_THST_EXPO) to 0.65 (was 0.50)
    d) Firmware version sent to GCS in AUTOPILOT_VERSION message
3) Safety:
    a) pre-arm check of compass variance if arming in Loiter, PosHold, Guided
    b) always check GPS before arming in Loiter (previously could be disabled if ARMING_CHECK=0)
    c) sanity check locations received from GCS for follow-me, do-set-home, do-set-ROI
    d) fix optical flow failsafe (was not always triggering LAND when optical flow failed)
    e) failsafe RTL vs LAND decision based on hardcoded 5m from home check (previously used WPNAV_RADIUS parameter)

Thanks for your testing!

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

Join diydrones

Email me when people reply –


  • Updated from 3.3-rc1 to rc9 yesterday on a TBS Discovery Pro.

    Autotune results were fantastic, the end result was a lot less twitchy than those on previous versions. Very smooth flying. 

    In addition, landings used to be very bouncy and the landing detector wouldn't trigger unless I switched from Loiter/Poshold to Stabilise, where I then was able to throttle down a lot more. 

    Now the landings are much smoother - it still takes around two seconds for the landing detector to trigger while landing with Loiter/Poshold, but it's a lot better than before. Very happy about this. 

    I did observe something strange, namely that the GPS HDOP value was at 99, despite having over 13 satellites. The position in the map looked stable as well, so I set "GPS_HDOP_GOOD" to 10000 and took off. It flew and hovered fine, so I'm not sure if: 

    a) The GPS (CSGShop u-blox NEO-M8N) is defective

    b) GPS reception was bad after all

    c) It's maybe a bug introduced by a change in rc7 that affected HDOP/PDOP reporting

    Log attached. 

    2015-08-27 11-50-45.bin
    • Developer


      This can be caused by the configuration messages from the flight controller to the GPS not getting through.  It may be a one-time thing or it may be because the GPS cable has been damaged.

      This weakness has been there, as you suspected, since we changed the hdop value in -rc8.

      It's possible to add a check into the driver and/or it possible to update the GPS configuration using u-center to specify the dop message is required so that it's sent even without the flight controller asking for it.

  • Developer

    AC3.3-rc10 is available for beta testing.  I've updated the main section with the changes.

    The changes vs –rc9 are mostly of bug fixes and safety improvements.  This is hopefully the last release candidate before the official Copter-3.3 release.

    The new EKF compass variance pre-arm check (3a) may require another release candidate because if the EKF stops using the compass there’s currently no way for it to recovery without rebooting the flight controller.  Solo-master has a solution for this that we may need to import if too many people find they can never get past the “EKF compass variance” pre-arm check but let's see!

    • Randy,

      I have a concern about the rc10 change mentioned in item 3e of your updated OP.  5 meters seems high for a fixed value.  I frequently launch from my back yard where I have trees, shrubs, and house on 4 sides with a 5 or 6 meter square open region.  I generally set the final return to launch altitude to a safe height above the trees in case the GPS error is higher than normal.  Then I can command the land when I am ready to control it for safety.  I'm usually able to guide the landing and I usually fly with telemetry so I should be aware if it decides to land where it shouldn't, but if I'm not paying close attention, a failsafe landing 5 meters from home will cause a crash.  I believe I have WPNAV_RADIUS set to 2 meters (Is that the default?) but I really don't want it to land at all, even if the failsafe is triggered directly above home.  At the very least, I need less than 5 meters offset.

      Would it be better to use the smaller of WPNAV_RADIUS and the hard coded number rather than just the hard coded number?  It would also be great to have the option of not choosing land at all as the action!  Especially if the final altitude is not 0.  

      In fact, isn't the goal of this cut-off radius just to avoid the climb to RTL altitude and the extra risk that involves?  Wouldn't it be best then to just implement it that way?  If within the WPNAV_RADIUS, just skip the climb and perform the rest of the normal failsafe RTL action?



      • Developer

        There are a number of parameters listed on the RTL flight mode wiki page that may help.  So for example, to stop the vehicle from  descending during the land phase of RTL, set RTL_ALT_FINAL to a number > 0.  like 10m and it will stay up there.

        I think everyone understands, but just in case, the failsafe radius of 5m is only used to make the decision whether the vehicle should RTL (as the failsafe parameter specifies) or whether it should instead LAND.  So if the vehicle is within 5m of home when the failsafe happens, it will trigger a LAND instead of an RTL.  If an RTL happens, it will still attempt to land at the takeoff location.

        The feedback I've received on the previous 2m radius (from a few people) was that it was too small.  There's some discussion of a more complicated decision involving altitude and distance from home but sadly that will need to wait for Copter-3.4.

        I think 5m (or 15feet) is really quite a short distance but I must admit when Luis and I discussed it I thought to myself it was perhaps too large.  How about 3m or 4m?  I'm not keen on using WPNAV_RADIUS because I think most people will not expect this parameter to affect the failsafe behaviour so I'd prefer a hardcoded distance if we can agree on one.

        • Use of WPNAV_RADIUS does make sense to me, especially since the other WPNAV_ parameters control the return speed, etc.   But I think the more important issue is *why* is land being performed at all if RTL is the selected failsafe action?  As you mention, land may not even be configured as a part of RTL if RTL_ALT_FINAL is not 0.  So if it's not zero, why land just because the failsafe happened to occur within a 5m radius of home?  Shouldn't we be going to RTL_ALT_FINAL instead?

          I'm guessing the motivation for land if inside WPNAV_RADIUS was just an easy way to avoid wasting power climbing to RTL_ALT only to decend and land again later (in the default case where RTL_ALT_FINAL=0)

          I see this as a safty issue.  If RTL_ALT_FINAL is greater than 0, it may be because it's pilot control is the only safe way to land.  If so, failsafe should not land, no matter where it happens to be when failsafe kicks in.


      • Hi Brad,

        I was discussing this issue of the radius with Randy, and the 2m seems somewhat "short" because of the errors associated with positioning,  read "GPS positioning radius", which would result in never being "inside" that circle.

        With a larger fixed diameter the possibility of being inside the radius increases, and you have the ability of repositioning the vehicle while it is landing (LAND_REPOSITION=1). 

        Other option would be to use the GPS horizontal error as a factor, but that would vary too much to be reliable.

        Even yesterday with RC9 I had one of these events happen to me, while I had the quad in front of me at arm length,  and at head height, when the RTL from the battery failsafe kicked in and the quad shot to the sky (15m), although it had been armed from aprox. the same position I was flying, but the GPS error had it  outside the 2m radius...And believe me that an overpowered 330 quad can scare you if it jumps right in front of you from head height to 15m....

        • Isn't the WPNAV_RADIUS parameter expected to be used for exactly this purpose?  To avoid wasting time hunting for an exact position?  I assume that's why it used to be the cut-off between the two behaviors.  The problem was caused when someone had that parameter set very high and a landing was performed in an unsafe area.  It seemed very reasonable to me to use that parameter for this purpose.

          I don't think a 2 meter radius would result in never being inside the circle unless the EKF position estimate is drifting around very quickly!

          But as I said, I may not want unguided landings at all.  I'd rather that LAND is not even a possible failsafe action if I have configured RTL. (except, perhaps when there is no longer enough voltage/throttle headroom to fly reliably).  I've already specified the failsafe action as RTL without a full landing by specifying a non-zero final altitude.

          It seems to me that instead of land, we just want to avoid the climb to RTL altitude when we are already home.  And it seems to me that already home may as well be specified the same way as all the other waypoints with WPNAV_RADIUS.


    • I just upgraded from -rc9 to -rc10 and noticed that my motors no longer spun up when armed. I had to change the MOT_SPIN_ARMED parameter to 75 from the default 70 to get them to spin as they did before. I hope this is the correct method.

      • Did you try doing a esc calibration after the update and before you changed you mot_spin?

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…
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