Persistent Vibe Z Issues on 16kg Quadcopter – Need Help

Hello everyone,

I’m reaching out for help regarding a persistent vibration issue I’ve been struggling with since the very first flight of my custom-built quadcopter. Despite my best efforts, I haven’t been able to resolve it, and I would greatly appreciate any guidance or suggestions.

System Specs:

  • Frame: Custom-built quadcopter (~16 kg AUW)
  • Propellers: 30-inch carbon, non-foldable
  • Motors: T-Motor P80III KV100
  • ESCs: Alpha 80A
  • Battery: 2x Tattu 6S 22000mAh LiPo (wired in series for 12S)
  • Flight Controller: Cube Orange Plus
  • GPS: Here4 GPS

Background:

Initially, the drone was designed to run on four batteries, but due to delays in delivery, I began testing with just two. On the maiden flight (log: 00000011.BIN), I observed severe vibrations even at low throttle. Vibe X and Y averaged around 20, while Vibe Z averaged 30 and peaked at 58, which I found very concerning.

In the next flight (log: 00000014.BIN), I made the following changes:

  • Improved vibration damping and mounting of the flight controller
  • Switched from 32.4" foldable props to 30" rigid carbon props

This reduced average vibrations:

  • Vibe X/Y: ~5
  • Vibe Z: ~15
    However, Vibe Z still peaked at 54, which remained problematic.

Further Attempts:

I decided to run AutoTune (logs: 00000016.BIN, 00000017.BIN, 00000019.BIN, 00000020.BIN). Initially, it felt overly aggressive, so I reduced its aggressiveness and continued. After tuning, in normal flight (later part of 00000020.BIN), I still saw:

  • Vibe X/Y avg: ~7 (max: 41 / 17)
  • Vibe Z avg: ~14 (max: 64)

Suspecting mechanical resonance from the GPS mast, I reinforced it before performing an autonomous mission flight (00000023.BIN):

  • Vibe X avg: 15 (max: 32)
  • Vibe Y avg: 12 (max: 19)
  • Vibe Z avg: 34 (max: 61)

Notch Filter Setup:

Based on documentation, I implemented a throttle-based notch filter with the following parameters:

INS_HNTCH_ATT    = 40  
INS_HNTCH_BW     = 18  
INS_HNTCH_ENABLE = 1  
INS_HNTCH_FM_RAT = 0.7  
INS_HNTCH_FREQ   = 35  
INS_HNTCH_HMNCS  = 3  
INS_HNTCH_MODE   = 1  
INS_HNTCH_OPTS   = 0  
INS_HNTCH_REF    = 0.22  

After applying this filter, I performed a short test flight (00000025.BIN), and results significantly improved:

  • Vibe X avg: 2.3 (max: 12.1)
  • Vibe Y avg: 3.7 (max: 11.2)
  • Vibe Z avg: 7.5 (max: 31.8)

Conclusion:

While average values are now within acceptable range, Vibe Z still occasionally spikes above the safe threshold of 30, and I’m running out of ideas. I’ve exhausted most of what I can think of — if anyone has suggestions, especially based on the logs provided, I’d be extremely grateful for your time and help.

Here are all the logs: https://drive.google.com/file/d/1i63zd_19leBadamcyseRDDS390EqhVj2/view?usp=sharing

Thank you very much in advance!

Have you tried the configurator?

I am no pro but running autotune and setting notch filters with bad vibrations will give you bad results and make it fly bad.

If you really want this thing to fly you need to use the methodic configuator. I learned the hard way.
Also pictures of the build can help diagnose problems.

2 Likes

Send a couple of pictures of the frame and where the flight controller is mounted. The construction will play an important role here.
It will be handy to see these before you progress to another flight.

Some of these are absolutely essential (practically mandatory) settings for any big copter.

  • I think the Yaw P&I can be lower, over 1.0 while possible can cause oscillation before takeoff (with long landing gear) and can take away a bit too much from pitch and roll attitude control They can go back up later if really necessary.
  • You must get the voltage monitor working and then put in these exact battery parameters.
  • I’ve altered the harmonic notch filter somewhat, because only the 2nd harmonic is an issue, so I’ve treated it as if it’s the 1st and only harmonic. The real 1st harmonic would be around 33Hz but there’s no significant noise there at all. Higher harmonics dont get past the Gyro low pass filter.
  • I’ve asked for altered logging too - all that Fast stuff and extra things are great if you know exactly what to do with them or which very specific issue you are chasing - for the rest of us it just makes bigger logs.
  • Check that your fence settings are appropriate, but do keep the fence enabled.
ATC_RAT_YAW_I,0.08
ATC_RAT_YAW_P,0.8
BATT_ARM_VOLT,44.30
BATT_CRT_VOLT,42.00
BATT_LOW_VOLT,43.20
BATT_FS_CRT_ACT,1
BATT_FS_LOW_ACT,2
FENCE_ENABLE,1
INS_HNTCH_FREQ,67
INS_HNTCH_BW,40
INS_HNTCH_REF,0.31
INS_HNTCH_FM_RATE,0.7
INS_HNTCH_HMNCS,1
INS_LOG_BAT_MASK,1
INS_LOG_BAT_OPT,4
LOG_BITMASK,180222
PSC_ACCZ_I,0.72
PSC_ACCZ_P,0.36

The Alpha ESCs should be using:

MOT_PWM_MIN,1100
MOT_PWM_MAX,1940

I would have expected MOT_THST_EXPO,0.6 with Alpha ESCs - 0.2 seems extremely low and I suspect it only works because the PWM values are wrong.
You will need to recheck MOT_SPIN_ARM and MOT_SPIN_MIN and include these too:

ATC_RAT_PIT_SMAX,50
ATC_RAT_RLL_SMAX,50
ATC_RAT_YAW_SMAX,50

Also level the copter across the tops of the motors, from motor to motor in all combinations, and pack under the landing gear to achieve level. Dont assume some surface is level or the landing gear and frame is all created perfectly.
When you are satisfied the motors and props are all spinning on the same level plane, in MissionPlanner press “Calibrate Level” in the accelerometer calibration section.

That will do for now, come back with the next log after you’ve worked through all that.
There is a few more things to do, but we can leave them until later.

3 Likes

Hi xfacta,

First of all, thank you so much for your thoughtful and incredibly helpful response, I genuinely appreciate the time and effort you’ve put into reviewing my setup. Your quick and detailed feedback is a huge help, and I’m truly grateful for your support.

As requested, I’ve taken a few pictures of the frame and flight controller mounting, and also recorded a video of the last autonomous mission. You can find everything in the following Google Drive folder, including the corresponding flight log:

Here’s a summary of my current plan based on your advice:

  • I’ve already reduced the Yaw P and I values as you recommended.
  • Regarding the voltage monitor: I wasn’t able to connect it for the previous flight, but I recognize its importance and I’ll do my best to integrate it in upcoming tests.
  • I haven’t finalized the GeoFence setup yet, but I’ll aim to configure and enable it in future flights when possible.
  • The notch filter settings you provided make perfect sense and I’m planning to update them accordingly.
  • I’ll also review the other parameter suggestions (such as PWM limits and SMAX values) and apply them as appropriate, I may take a gradual approach over the next few test flights to ensure stability.

Regarding the level: I’ve carefully checked the motor-to-motor alignment using a digital level, and shimmed under the landing gear where necessary. Everything is now nicely leveled, and I’ve run the Calibrate Level procedure in Mission Planner accordingly.

I do have one question before my next flight (which I expect will take place in about five days):
All the vibration data I’ve mentioned earlier was taken from IMU 0. In the logs, IMU 0 and IMU 1 show nearly identical and acceptable results. However, IMU 2 (which is hard-mounted) shows significantly worse performance. In our last autonomous flight, while IMU 0 and IMU 1 had zero clipping events, IMU 2 experienced 35,944 clipping events.
Additionally, IMU 2 reported an average Vibe Z of 88 and a maximum of 186, which is obviously well beyond acceptable limits. Since the other two IMUs are soft-mounted and show relatively healthy values, I was wondering if disabling IMU 2 would be a sensible approach, or whether that could cause issues down the line.

Also, I’ve included the flight video along with the log file in the Drive folder in case seeing both together helps assess the situation more clearly.

Thanks again for your generous help, it means a lot. I’ll follow through with the next round of testing soon, and I’ll share updated logs and findings with you afterward. Looking forward to your thoughts whenever you have time.

Make sure all those wires are secured to the frame, and nothing is touching the Cube or carrier.
What is the carrier mounted on?
I’ve seen where payloads are attached to the underside base plate, and this causes some sort of trampoline effect enhancing Z axis vibes. A couple of standoffs between the top and bottom plates can improve stiffness.

You can just enable the fence and check the altitude and radius is OK for your testing and local laws. Later you can get into adding stay-in and stay-out zones.
It’s important to have the fence enabled with these big copters, it prevent arming in ANY mode until there is a GPS 3D fix and Home can be set. One of these big copters heading off to the Sea of Japan is not like losing a tiny whoop.

All those settings I gave can be implemented in one go, they are all tried and true for your sort of copter. SMAX settings are quite benign and are not going to cause any problems - they just place a limit on how much PIDs can change, which is important with those big T-Motors and Alphas.

You will need to check and set those MOT_SPIN_ARM and MOT_SPIN_MIN after changing those PWM settings and the expo.

IMU2 always shows clipping first because a) it’s got a more limited range, and b) it’s not vibration-isolated. It’s the old fashioned “if everything else fails” unit, or indicator of what’s really going on.

1 Like

Hi xfacta,
Thanks again for the detailed follow up.

To answer your questions:

  • The carrier is mounted on top of two layers of 3M vibration damping pads, which are placed on a balsa plate. The balsa itself is also mounted on another layer of 3M pad.
  • I’ve done my best to keep all wires from touching the Cube or the carrier, and to prevent movement during flight. I’ll make an even more thorough pass before the next flight to ensure every wire is firmly secured and vibration free.

I’ve also made note of your point regarding MOT_SPIN_ARM and MOT_SPIN_MIN, and I’ll definitely double check and update them after modifying the PWM and expo settings as advised.

If I may ask a quick follow up question:

  • Since I’ve changed the PWM and expo characteristics, do you recommend running AutoTune again to ensure optimal control performance?

Thanks again for sharing your experience and advice.

Yes that will probably be necessary. Let’s see how it flies first - there might be quite a bit of difference.

Would you mind expanding on this a little more?

Yeah, if the flight controller changes motor PWM too quickly, or in too much of a jump, there are some ESCs that either a) dont respond well leading to instability, or b) try to respond but can generate a fault like an overcurrent condition and shut down.
This is most likely to happen in Autotune.

1 Like