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 –


  • Had a scary moment after landing in PosHold, throttle down and instead of shifting to stabilize mode to disarm I shifted to auto mode again. Had the throttle down and left to disarm but the quad throttled up and did a circle on the ground. I thought it was going to flip over but luckily it didn't. 


    2015-07-18 21-42-37.bin
    • Developer


      Yes, that's how it would act because "auto armed" (which is used to control whether the mission starts or not) only becomes false when the vehicle is disarmed or the throttle is put to zero in stabilize or acro.  This logic hasn't changed from AC3.2.1 but we could modify it so that it becomes false even in PosHold, Loiter, AltHold when the vehicle is landed.

      • Thanks Randy, yes regardless of flight mode I would like to see the vehicle disarm the same way.

  • T3

    Hi Randy, 

    a questions about RAW IMU logging. 

    I made some tests with the current master (which seems to be very similar to 3.3rc7). By accident I enabled RAW IMU logging and was somehow shocked when I looked at the Acc1:AccZ values. Then I made a series of short flights in stabilize with different IMU logging speeds (and some intended roll movements):

    1) IMU

    2) IMU_FAST

    3) IMU_RAW

    What is interesting is that IMU and IMU_FAST show very similar ranges in the vibration data as well as the vibes. IMU_RAW AccX and AccY vales are also similar but the AccZ are a magnitude higher. 

    The Vibes are the same across all speeds.

    I also made an FFT analysis in Mission Planner for the third log and the main frequency is about 25Hz. Hence I assume that a negative influence of these 25Hz should be visible on all three logs. Or?

    This leaves me a little confused since the AccZ values of IMU_RAW are out of the desired range. Is IMU_RAW:ACC1:AccZ really logging the same thing as AccZ at 400Hz and 50Hz?

    Any idea?

    TIA and best regards,


    IMU 50Hz:





    IMU 400Hz:





    IMU RAW:







    • T3

      Looking at the screenshots above as well as the code it seems the Vibes are always calculated based on a 5Hz high pass filter. For a better comparison shouldn't they be calculated in relation to the logging frequency, i.e. 5Hz, 40Hz and 100Hz?

      • Developer


        Thanks for looking at and trying out this new feature.

        The IMU_RAW logging does go through quite a different code path than the lower 50hz and 400hz imu logging but I can't immediately see any problems with the RAW logging.  It just seems to write the raw values from the sensor (received as a report from the PX4Firmware) to the dataflash.  I also don't see any problems with the formatting of the message which could lead to a change in the output - they're all logged as floats.  This leaves me thinking that the vibrations levels on this particular vehicle really are much higher in the Z-axis than on the X, Y axis but it's at a high frequency and it's being averaged out on the lower rate logging.

        The 5hz high pass filter on the VIBE message is apparently to try and get rid of the vehicle's actual movements so as far as I understand we shouldn't be changing that based on the logging rate.

        • T3


          thanks a lot for having a look!

          The problem we have with this is that according to Nyquist we can currently - based on the existing hardware - not determine higher frequencies. So my condensed questions is: Do you see any problems regarding flight stability with these (most probably high frequency) vibrations visible at 1000Hz, especially if all seems fine at the main loop which is responsible for vehicle stability?

          In detail:

          At 50Hz and 400Hz the vehicle movement is clearly visible in the logs and not shadowed by vibrations. In this case I assume, that it should be easy to control the vehicle for the code. For 1000Hz it is another story, because we only get a very basic idea of the vehicle movement due to high vibrations (at least visually). But since the main loop runs at 400Hz, this should not be a problem - or? Or can there be any impact stemming from high frequency vibrations - especially with very low vibes and the fact there is no clipping? 

          The next thing I am not sure about: Is the output of the 50Hz and 400Hz Acc data filtered or is it just sampled, i.e. only very nth sample is taken from the accelerometer. If it is not filtered then 50Hz and 400Hz logging should show the same characteristics (in terms of the amplitude) as 1000Hz just at a lower rate, because it is just a (random) sub sample. The only difference should be that with 1000Hz you can better analyze the frequencies. Is this correct? If so, then something must be wrong with the logging.

          Regarding the vibes I am wondering why such different vibration levels should cause similar vibe pattern. I understand the idea to remove vehicle movement with a high-pass filter (which is related to continuum removal in spectroscopy). Ah ok, if the vibes are always calculated based on the main loop or the 50Hz signal then for sure there should be no change in the values. I’ll make some tests with the raw data.

          What I am also confused about is how the high frequencies can be transferred if low frequencies are filtered out. It would make sense for a hard mounted autopilot because it would receive any vibrations. Generally, I assume the harder the damping the more high frequencies can be transferred. Also according to the FFT there is no vibration between 300 and 500Hz. Hence it must be a vibration between 500Hz and 1000Hz . The damping would then with act as a wide band-stop filter (which I do not believe) or the HF vibrations are transmitted via cables or air. (Maybe the antenna cable, I’ll check that.)

          • T3

            Is the difference in amplitude in AccZ at 1000Hz a result of the ACCEL_FILTER? I.e. the 50Hz and 400Hz values are filtered and the raw is not?

  • just had an ugly incident with AC3.3rc7, if someone could look at my original post on another thread or if i should repost here.....

This reply was deleted.


DIY Robocars via Twitter
RT @donkey_car: Human-scale Donkey Car! Hope this makes it to a @diyrobocars race
DIY Robocars via Twitter
DIY Robocars via Twitter
Jun 16
DIY Robocars via Twitter
RT @GrantEMoe: I won my first @diyrobocars @donkey_car virtual race! Many thanks to @chr1sa @EllerbachMaxime @tawnkramer and everyone who m…
Jun 13
DIY Robocars via Twitter
RT @gclue_akira: JetRacerで自動走行したコースを、InstantNeRFで再構築。データセットは別々に収集 #jetracer #instantNeRT
Jun 13
DIY Robocars via Twitter
RT @SmallpixelCar: SPC 3.0 Now the motor also works. This car is doable. I just need to design a deck to mount my compute and sensors. http…
Jun 13
DIY Robocars via Twitter
RT @SmallpixelCar: My new car SPC 3.0.
Jun 7
DIY Robocars via Twitter
RT @SmallpixelCar: High speed at @diyrobocars thanks @EdwardM26321707 for sharing the video
Jun 7
DIY Robocars via Twitter
RT @SmallpixelCar: Today at @RAMS_RC_Club for @diyrobocars. Used @emlid RTK GPS and @adafruit @BoschGlobal IMU. Lap time 28s…
May 28
DIY Robocars via Twitter
May 15
DIY Robocars via Twitter
May 14
DIY Robocars via Twitter
May 13
DIY Robocars via Twitter
RT @f1tenth: Say hi to our newest #F1TENTH creation for @ieee_ras_icra next week in Philly. It’s going to be huge! 😎 🔥 @AutowareFdn @PennEn…
May 13
DIY Robocars via Twitter
May 11
DIY Robocars via Twitter
May 8
DIY Robocars via Twitter
RT @SmallpixelCar: Noticed my car zigzagged in last run. It turned out to be the grass stuck in the wheel and made the odometry less accura…
May 8