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 –


    • Yes, Setting the autotune_axis to 1 (Roll only) 2 (Pitch Only) and 4(Yaw Only) will allow you to do as you've requested. Default is 7

      • Thank you. Looks like we posted at the same time :)

  • I few two short flights on 3.3rc8 this morning after many successful flights on other days.  In both cases I experienced a WTF moment involving a persistent loss of manual influence over the craft.  Both times I took off in loiter mode (I get lazy sometimes).  The first time I immediately had no positional control at all (only altitude control) but I managed to land, hard, but safely, just before it drifted into the house.  The second flight after a power cycle was normal for a minute, then i lost positional control again, this time at a higher altitude and, recognizing the symptoms more quickly, I switched to altitude hold and landed safely.

    Examining the code and the logs, it looks like I must have an intermittent serial connection to my GPS.  Most of the log shows normal GPS messages, but in one case, there is a gap of over a minute with no GPS data before the data resumes.  I'm sure I can fix the connection, but the current behavior in the face of this type of failure seems very bad.

    I believe in both cases the code detected the period of missing GPS data and entered "constant position mode" (See the comments in AP_NavEKF.cpp).  The comments imply that the only way to recover from this condition is to disarm and rearm.

    I see at least four major problems with this:  First, why was I allowed to take off in loiter mode while in this GPS lost state?

    Second, when the GPS data stream is restored, why doesn't the EKF code adapt and begin using the data again?

    Third, why not allow manual positional control even in this state?  If the EKF is functioning via inertial data only well enough to attempt to maintain position, it may as well change the target position in response to pilot directives.  I can understand the "hold here" behavior in auto mode, but allowing more control in loiter mode might allow a safe landing even without understanding the problem.

    Fourth, I think I may have heard a report of "lost GPS" or something to that effect a while before I took off the first time, but when I checked the display, tower continued to report a nice small HDOP and high satellite count and it allowed me to arm and takeoff in loiter mode.  Though in hindsight, I suspect the GPS icon may have changed in a subtle way as it did on the second flight.  Should there be a more obvious indication that the craft is in a failed state?

    Am I missing something?  Does it not recover in any mode?  Should I file a bug?

    Overall, 3.3 is looking good!



    • Developer

      It looks like the WPNAV_SPEED and  WPNAV_LOIT_SPEED have been set to zero somehow.

      By the way, the .bin files are actually better to provide than the .log files.  The .log files are bigger and they're converted from the .bin files by the MP on the machine that does the download.  It looks like your MP might be slightly out of date so it's been unable to convert the .log file completely correctly so for example the flight mode strings are not provided, I can't see the flight code version that's being used either.  The TUNE variable is strangely missing as well - so I can't see if it was the ch6 tuning that is the cause of the zero WPNAV_SPEED param value.

      So, although the analysis is not complete, I'm pretty sure that this WPNAV_SPEED is the problem.

      • Thanks Randy.  I'll send the .bin files next time.  I was using the .log files, converted via apmplanner 2.0.17-58 with a quick and dirty awk script to find the GPS gaps.  I guess I should do a fresh conversion using the latest missionplanner before I trust the data then.  I routinely use apmplanner, missionplanner, and tower to change parameters.  I don't remember which GS I used this weekend when I adjusted my YAW PIDS a bit (The autotune left it a little sloppy for 2D gimbal use), but I didn't change the WPNAV*SPEED parameters and I can't see why anything would change them randomly.  I'll compare to my last saved parameters and see if anything else changed!  Any idea how they could get set to zero without explicit action on my part?



        • Developer


          It sounds like an issue in one of the GCSs.  I'd guess the mostly likely culprit is AP2 followed by Tower but that's purely a guess based on how much testing and how many users the platforms get.  It could be MP.  If you can reproduce it or narrow down which GCS did it then we should file a bug report in the issues list for the offending GCS.

    • Developer


      Thanks for the report.  Do you have a dataflash log?  If it loses GPS it should enter pilot-controlled Land so it should descend slowly but the pilot should have control over the roll and pitch as if in AltHold.

      Tower may report "Lost GPS" when the GPS goes into a new state, "4" which means it has SBAS.  This is actually very good quality signal but Tower may not recognise that state yet.  I've noticed this once I think so we need to get the Tower guys to sort that out before AC3.3 goes out.

      • Randy,

        Thanks for the quick response.  I thought I had it figured out, but now I'm just confused.  :-)

        I do see the GPS status changing from 3 to 4 about the time I might have heard one of the lost gps messages.  But I do also see a big gap of GPS reports in one of the logs, but now, i realize the gap is in the flight where it started out bad and the flight where it went bad later doesn't show a gap.


        I've taken the liberty of sharing a link to the logs via google drive to your email.  I hope that's OK.

  • Yesterday, I tested this new release (rc8) , in Stabilise, Posholt, AltHold, etc….

    And I’m surprised with results. Really, really good (for me J ).

    Looks like the commands are more “precise”, in stabilize looks like AltHold….

    Telemetry over 4g works fine too with Mission Planner.

    My motors are very “strong” but I never flew with so strong wind, 
    attached only I short video in stabilize mode….very good flight even with strong wind.

    Congratulations, this new release looks very good

    I’m running this new release with Navio+ board from Emlid, really good.

    • Developer


      Nice to see the Linux boards (NAVIO+) being tested here.  There's been a lot of improvements in the Linux code over the past couple of months.  Besides the contributions from the Emlid and ErleBrain teams Intel (a member of DroneCode) has one of their open source developers helping us quite a bit now.  Glad it's paying off!

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