Arducopter Drift issues

I wanted to start a conversation around the roll and pitch of Arducopter drifting as you fly.


The reason is I just assembled new hardware and problems that weren't there before have now shown up in a bad way. Flying indoors in a 5ft space I was able to get up to 30° error in roll and around 10-15° in pitch. I was able to control it and it flew perfectly level the whole time, I just had to hold the stick into the corner of the radio. Lading and waiting corrects the issue.


What could cause this. I had been flying an older version of the IMU this whole time. This version has an analogue filter for the gyros where the new hardware has it as an option. You must solder the pads around the gyros to enable them. I was also flying with two slightly tweaked motors giving off a lot of vibration. This could affect the accels. 


My question is: If you have a problem like this, what is the vibration level on your copter, and do you have the filter pads soldered? 


And notice I didn't say "loss of control" or "it didn't fly stable". I had control, and it flew perfectly. It just lost it's reference to the ground and I had to compensate with the stick. Had it been worse than 45° I would have lost control. 

There are three pairs of pads, each with a white outline. (look for GYRO-XY near the relay).

Jani Solders his to enable the filter. I have never flown this board until now. I will solder them to test the filters this week.



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

Join diydrones

Replies are closed for this discussion.


  • Developer

    My fault for letting this discussion drift. The major noise induced drift issues have been addressed in software in the latest release and soldering the filter pads has been confirmed to help.


    The DCM I term has been lowered to account for the faster loop speed.

    The DCM p term has been raised to give faster recovery.

    The accel cutoff has been reduced to limit the effect of accels in rapid accelerations.


    If you have major drift issues, (not 1-2° slow drifts), please start a new thread.

    There is a very interesting engineering centric thread going on now to analyze the effects of vibration and noise. It will probably inform future efforts, but the results are still unclear (and above my head). If you want to learn a lot about signals and noise, jump in.


  • Thank You, Chris!
  • I have first version of sensors/oilpan. There are no filter pads there. Wht can I do?
  • On page 14 in the manual for the Z-Gyro I found this clause

    "If the AutoZero function is not used, the AZ pin ( pin 24) should be connected to ground."

    It looks like the AZ pin unconnected on the Eagle files I have. What effect will it have to this pin floating on the performanze of the Gyro?

  • I'm currently running ArdupilotsNG. But just wanted to say that I soldered the 3 filter pads on the oilpan, and the barometer now almost works perfect! Before I soldered the pads it was pulsating fast up and down, now it's almost completely stable. It also seems to help on stability and gps hold/loiter.
  • Kári,


    Here is 2 samples to play with. One is 1 motor running, the other one is 4 motors running at the same time.

    My copter is standard arducopter from jdrones with custom legs (15 cm long).

    Oilpan is Hotel 1.0, filter pads soldered.


  • Thank you Chris you all are doing a good job i order one of your stock frames looking forward to getting it up and flying thanks for the fast respones tom  
  • Ok there's alot i dont under stand in reading all of this but the only thing i really want to no is should the filter pads be solidered yes or no thannk you Tom
  • The pretty cool gifs sparked my curiosity regarding the filters that are placed between the gryo outputs and the a/d inputs.  Quick inspection shows them to be the usual single pole RC filter, the cutoff frequency (-3db point of the response) is of course fc=1/(2*PI*R*C).  The gyro output impedance is stated as 200 ohm in the manufacturers datasheet.  The output impedance is effectively in series with the filters resistors (R1, R3 and R6) yielding a total series resistance of about 950 ohms.  The capacitance to ground is 0.1uF.  Substituting these values shows the cutoff frequency of the filter network to be approximately 1675Hz.  This cutoff frequency could probably be lowered to some value that would permit more significant filtering of the observed system noise without impacting operational performance.


    1st order low pass filters completely pass their spectrum unchanged from 0Hz to about 1/10 the cutoff frequency.  If we would like to allow rates of change of 500 degrees per second to pass through the filter unchanged, this would correspond to a 0.1fc frequency of about 1.39Hz, with a cutoff frequency 10 times this or 13.9Hz.  Spinning the gyro a 1.39 revolutions per second would be read by the a/d converter as though this filter was not there.  Spinning the gryo at 13.9hz would be read by the gyro at half of its actual rate..filtering has begun to be effective at this point (note 13.9hz represents rates of change of rotational rate of 5000 deg/second..a rate high enough that we probably wouldn't be interested in, in the real world).  Low pass filters continue to decrease their output as the frequency increases at a rate of -20db/decade, meaning 1/10th the voltage passes for a 10 times frequency increase.  The first order filter with a cutoff frequency of 14 hz would have its output at 1/10th amplitude in response to gryo signals at 140Hz, furthermore, the output would be 1/100th (-40db) at 1400hz.  This represents a significant descrease in noise that has been induced into the frame by the motors in this frequency band.


    A 14 Hz, 1st order filter, could be tried with an 11 KOhm resistor substituted for R1, R3 and R6, and a 1uF ceramic capacitor substituted for C1, C2 and C25.


    I am just a community member and am not suggesting or encouraging anyone to ruin their board, voiding their warranty, or causing any other kind of controversy.  But if someone, very skilled in the process of component substitution could try it and report on their results....

  • Looked at the Oilpan in eagle. There the lowpass filter is set at 750ohm against 0.1uF, i.e. a 1st order lowpass filter with -3dB at 2.1 kHz. That means a minimum of 4.2kHz sampling.

    So I went for the soldering iron and augmented the z-gyro channel with 1.1uF capacitor, which results in -3dB point at 192 Hz. The result follows, the high frequency vibrations are much better contained, but the 800Hz disturbance still breaks through... What are these 800hz? Maybe a higher order analog filter is needed.


    For the current ADC code, which basically samples at 200Hz at least 2.2uF capacitor is needed, to take the bandwidth down to 96Hz.

    Click on the image to see the animation and compare to the other animation above.



    Actually when I look at it it seems that these 800+Hz is aliasing from somewhere above.

    Notice how the spike slides in from the border, i.e. disturbance frequency lowers as the disturbance source (motor) frequency gets higher. That sure looks like aliasing.

This reply was deleted.


Neville Rodrigues liked Neville Rodrigues's profile
Jun 30
Santiago Perez liked Santiago Perez's profile
Jun 21