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 –


            • GPS quality out on the west coast has been very unreliable over the last week. Some times I get 15 sats in 30 seconds other days this week no lock after 30 minutes. All this with no change in firmware.

              Others on RCgroups have given similar reports.

              I would suggest you try it a few more times and see if some days are better than others.
              • Unless Randy sees something else in the log i sent i think issue is with code switching between 2 gps signals non stop and making drones final position unstable.
                • Developer


                  Yes, totally agree that disabling the 2nd GPS is not the ideal solution.  It's on the to-do list to fix for AC3.4 so I'm sure we will sort it out in the coming months.

                • Developer


                  I just reviewed the commits and as far as I can see we haven't made any changes to the GPS code between -rc9 and -rc10.  Just in case anyone wants to check (now or for future reference) the list of commits can be seen here and the changes in -rc10 are all the things after the "Copter: version to AC3.3-rc9" commit.  The first part of the description describes the area of the code change and there's no "GPS:" changes.

                  I've looked at the logs and, like you, I also see the constant changing back and forth between GPSs (see "U" field in GPS and GPS2 messages) which we know leads to ugly shifts in position although I don't directly see the impact of these shifts on the EKF innovations or vehicle lean angles.  Still, to be honest, it's the first time I've really looked for them.  I suspect you're right that this is the cause.

                  So a couple of suggestions/comments:

                  • Try disabling one of the GPSs (GPS_TYPE2 = 0)
                  • Try disabling some of the satellite types (i.e. set GPS_GNSS_MODE to "3" to enable only GPS and SBAS).  I've updated the param descriptions so bitmasks should appear in the mission planner's Advanced Config page for this parameter eventually.
                  • Try using u-center to increase the GPS's Baud rate.  This is very speculative and not evidence-based but I've heard from Michael Du Breuil that when we have a lot of satellites the 38400 baud rate is not enough to get all the satellite info from the GPS to the flight controller.  I know this sounds scary and important so let me follow up with Michael.  From what I see in your logs all the GPS messages are arriving at regular 200ms intervals as they should.

                  • Developer

                    A correction to the 3rd point.  I checked with our GPS maintainer, Michael DuBreuil, and as Josh Welsh says, the baud rate is being set back to 38400 so it won't help to change that with u-center.  Sorry!

                    Michael also suggested that Paul Atkin may want to disable SBAS (i.e. set GPS_GNSS_MODE to "1") because based on you location you could be picking up a WAAS satellite from very far away.

                  • Developer


                    The GPS driver starts at 38400 but it does try various baud rates if it doesn't find a GPS.  I've never tried it myself to be sure but Tridge and Michael DuBreuil who know more about the GPS driver tell me this.

                  • Hey Randy,

                    I thought on boot, the autopilot was setting the gps's baud rate back to 38400, regardless of what was already set via uCenter.  Is that not accurate? I'm very likely mistaken, but don't know how to read the code well enough to verify on my own.


                  • Randy,
                    Thanks for this information, i will try to experiment with ucenter.
                    As of disabling second GPS it is not a real solution and i still believe firmly proper design requires full redundancy of all critical navigational systems and current code tries to implement it, it only needs some additional finesse to be crafted to smooth up transitions.
    • Moderator
      Mark and Wes are correct. It is best practice to leave a reserve. The reason for leaning forward is likely due to the fact that your vehicle is a bit nose heavy. The motors are rated in kv/volt, so as the batteries near depletion you may be able to deliver the amps, but you won't get anymore RPMs. I can't look at the log on my phone, but I suspect rcout for the front motors is at max and that isn't enough to keep you stable so it begins to drift forward. What you really need to know is what voltage you start to lose control, then set fail safe at a healthy margin above that (maybe 0.3v). Your flights might not be as long, but you will be safe. Don't forget also that the performance of the battery will change with time and from battery to battery. It's just safer (and better for your batteries) to leve a healthy reserve.

      Nathaniel ~KD2DEY
    • If the battery fail safe is set to low, you may not have enough power to make a controlled landing. I made this mistake once trying to test max flight time. The voltage dropped to low and the quad nearly fell out of the sky.

      I would suspect that you did not have enough power for the quad to respond to your inputs as shown in the difference between the desired input and what actually happened.

      I have destroyed enough lipoly battery packs to give up on max flight time. I land at 3.5v per cell and have set a new goal of determining the max usable flight time landing with a 20% reserve, just as is recommended by nearly every manufacturer. Now my batteries last a long time and my quads receives a lot less damage.
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