Intermittent Vibration Issue in X-Axis on 36-inch Heavy-Lift Quadcopter


Hello everyone,

I am working on a 36-inch heavy-lift quadcopter running ArduPilot 4.6.3 on a CUAV X7 flight controller. I have been troubleshooting an intermittent vibration issue for several weeks but have not yet identified the root cause. I would appreciate any suggestions from experienced ArduPilot users.

Platform

  • ArduPilot 4.6.3

  • CUAV X7

  • X Configuration

  • 36-inch propellers

  • MTOW: ~35 kg

  • Heavy-lift cargo platform

  • 10 kg water tank mounted close to the center of gravity (CG) on the center plate

  • Dynamic FFT Harmonic Notch enabled


Initial Problem

Initially, the vibration issue only occurred during AUTO missions.

The copter flew normally in Stabilize, AltHold, and Loiter, but during AUTO the vibration gradually increased until VIBE X reached around 100, forcing me to abort the mission.

Later, the problem became worse and now the vibration starts immediately after takeoff while hovering, even before starting AUTO.


Symptoms

  • VIBE X increases significantly (up to ~100)

  • VIBE Y and Z remain comparatively low

  • IMU AccX becomes much noisier during the bad flights

  • RCOUT shows continuous motor corrections

  • During landing, I observed the airframe physically shaking in the roll direction

  • Roll tracking remains reasonably good, but the controller continuously compensates for the disturbance


What I Have Already Checked

Propellers

  • Static balancing completed

  • Visual inspection completed

  • No visible damage

  • Same propellers used on both good and bad flights


Motors

  • Checked for mechanical issues

  • Performed Motor Test with propellers installed at:

    • 20%

    • 30%

    • 40%

    • 50%

    • 60% throttle

  • Held each arm during the motor test

  • No abnormal vibration could be felt on any arm


Flight Controller Mounting

Initially, I installed a damper plate under the flight controller.

Results:

  • VIBE X/Y/Z dropped below 30–40

  • Aggressive roll and pitch maneuvers were clean

  • Autonomous flight also started normally

This initially appeared to solve the issue.


Problem Returned

On the following day:

  • Autonomous mission started normally

  • Mission had to be aborted (for reasons unrelated to vibration)

  • During the next flight, VIBE X suddenly increased to around 100

  • Switched to RTL and landed

During landing I noticed the entire aircraft was physically shaking in the roll direction.


Mechanical Inspection After Landing

Immediately after landing I checked:

  • Flight controller mount

  • Damper plate

  • Frame bolts

  • Motor mount screws

  • Arms

  • Propellers

Everything appeared tight.


Additional Tests Performed

Removed FC Damper Plate

Performed another flight.

Result:
Exactly the same vibration.


Removed 10 kg Water Tank

Performed another flight.

Result:
No improvement.


Gyro Filter Tests

Original:

INS_GYRO_FILTER = 15 Hz

Changed to:

INS_GYRO_FILTER = 25 Hz

Result:

  • Vibration reduced significantly.

Then reinstalled the 10 kg water tank.

Result:

  • Some vibration returned.

Installed the FC damper again.

Result:

  • Vibration became worse.

Reduced INS_GYRO_FILTER to 20 Hz.

Result:

  • Vibration reduced but was still present.

Installed the 10 kg water tank again.

Result:

  • Vibration increased almost back to the previous level.

Filter Configuration

INS_GYRO_FILTER = 15 Hz

Dynamic FFT Harmonic Notch:

  • INS_HNTCH_MODE = Dynamic FFT

  • INS_HNTCH_FREQ = 74 Hz

  • INS_HNTCH_BW = 40 Hz

  • INS_HNTCH_ATT = 35 dB

  • 1st and 2nd harmonics enabled

Filter Review appears normal and the notch seems to be tracking correctly.


Flight Log Comparison

Flight #72 (Good)

  • VIBE X Mean ≈ 14

  • IMU clean

  • Stable hover

  • Stable flight

  • Good PID behavior

Flight #74 (Bad)

  • VIBE X Mean ≈ 42

  • VIBE X Max ≈ 104

  • IMU AccX significantly noisier

  • PID outputs much noisier

  • RATE outputs much noisier

  • RCOUT continuously compensating


Important Observations

  • Same motors

  • Same propellers

  • Same ESCs

  • Same frame

  • Same 10 kg water tank

  • Same payload location (close to CG)

  • Same ArduPilot version

  • Same filter parameters during both the good and bad flights

The only significant difference is the large increase in VIBE X during the bad flight.


What Confuses Me

If this were purely a filter issue, I would expect both flights to behave similarly because the filter configuration is identical.

If this were purely a mechanical issue, I would not expect changing INS_GYRO_FILTER from 15 Hz to 25 Hz to noticeably reduce the vibration.

This makes me wonder whether I am dealing with:

  • Frame resonance

  • Roll-axis structural resonance

  • Center plate resonance

  • Motor mount flex

  • Dynamic notch / gyro filter interaction

  • Or another issue that I have overlooked.


Attached Logs

I have attached:

  • BIN logs

  • VIBE graphs

  • IMU graphs

  • RATE graphs

  • PID graphs

  • RCOUT graphs

  • Filter Review screenshots

I would really appreciate any suggestions regarding the root cause and what additional tests I should perform.

Thank you.

It’s not tracking at all, you have 0 for the reference. And you have logging misconfigured for collecting data for the notch filter. You don’t want to check every box in the log bitmask, enable batch logging and enable Raw logging. I’m curious where you got that direction from.

Rate PID’s look too low for a craft this size and ATC_ANG is still at default, so that’s probably too low also. You only did a Quick Tune?

Try filtering like this.


apply stated settings for both harmonic notches.
Throttle notch filters will work only if the craft don’t change the weight in flight (not dropping payload).

ATC_RAT_PIT/RLL_D looks too low, but you need good filtering first.

> Thank you very much for taking the time to reply. I really appreciate your help. You have also helped me solve issues in the past, so I truly value your guidance.

> Regarding your comments:

> 1. I have already enabled Raw Logging. My current setting is **INS_RAW_LOG_OPT = 9**.

> 2. For **LOG_BITMASK**, I enabled almost all available log options because I thought that would capture all the required data. If this is not the correct approach, could you please advise which specific log options should be enabled for proper notch filter analysis?

> 3. I’m also a bit confused about your comment that the notch filter is **not tracking**. In Filter Review, the notch appears to be centered on the vibration peak, so I assumed it was tracking correctly. Could you please explain what indicates that it is not tracking and what I should change to make it work properly?

> Regarding the PID values, I intentionally kept them lower because this is a large heavy-lift multicopter. Also, **ATC_ANG** is still at its default value.

> Finally, I did **not** use QuickTune. All tuning was done manually.

> I would really appreciate any further guidance. Thank you again

for your time and support.

As a prove Im sharing log data in Google drive link

Actually craft change weight because payload it’s a water tank

Your current filters are misconfigured, they are not working.
FFT for motor noise is very fragile, it can easily catch some frame vibration instead of RPM. Having real RPM feedback is a must for such setup, or you need really good and sturdy frame where just LPF will be enough.
Please follow FFT manual Advanced In-Flight FFT Setup — Copter documentation

I see your craft looks overpowered - adding more weight like batteries will damp the system and will move the propeller frequencies UP which will help LPF.

Also PSC_ACCZ_D does not help, probably you took this recommendation from Chris Rosser manual, it’s not universally applicable, you better set it to 0 and move PSC_ACCZ_P/I down, let’s say 0.2/0.4, also filters need to be correctly configured first. If you look webtools you can see that vertical controller does not oscillate while climbing

Another option is to use AMC GitHub - ArduPilot/MethodicConfigurator: A clear ArduPilot configuration sequence · GitHub
you will still need to read a lot of documentation and understand all parameters that are changed but it will split everything in steps with clear path. Built in templates will be also helpful.

You have already batch logging configured, don’t need to have both enabled, set
INS_RAW_LOG_OPT,0

Default is enough, maybe just enable fast instead of medium attitude logging
LOG_BITMASK,180221

You need to have at least INS_HNTCH_REF, 1 enabled to not be a static notch.

You can lower it to 3 while basic setup configuring.

Agree with most of what @mike_tk posted so follow those guidelines. But, I would not lower the ATC_ANG Pitch and Roll below default. They will need to be higher at some point but for now you can leave them at default. Your manual tune is not suitable for a craft this size. Rate PID’s are almost always higher then default not lower as you need the attitude authority.

That proves it’s not working. A dynamic notch filter isn’t much good if it’s not configured to be dynamic.

why would throttle notch filters not work with changing weight?

The throttle based dynamic notch filters do work with weight changes but their tracking will not be accurate because their hover frequency is constant and does not change with the weight. So they will filter noise out of the wrong frequency. Basically rending them useless.

Do yourself a favor, get ESC RPM telemetry. And configure your vehicle using AMC. As soon as you tell AMC that you have ESC telemetry, it will correctly configure the notch filters to use it.

I have already configured the Dynamic FFT/Harmonic Notch Filter according to the recommended setup and then performed a complete QuickTune. I have also installed a damper under the flight controller (FC) to isolate it from frame vibrations.

However, after these changes, I am still seeing relatively high vibration on the X-axis, with VIBE.X generally around 75–80 m/s².

Current situation

  • Dynamic FFT/Harmonic Notch Filter: Enabled and configured

  • QuickTune: Completed after configuring the filters

  • FC damper: Installed

  • VIBE.X: Approximately 75–80 m/s²

  • VIBE.Y/Z: Lower than VIBE.X

  • The issue appears to be mainly concentrated on the X-axis

I have attached the BIN log for analysis.

Thank you.

Balance the props and if necessary balance the motors as well.

I wouldn’t trust what the Filter Review Tool is telling you with the misconfiguration of logging options you have here. This is another case of “check all the boxes” in that regard.
Raw IMU and Fast Harmonic Notch in the Log Bitmask.
Batch logging and INS Raw Log Option enabled.
You hit them all!

Quick Tune did not find a good solution here.