VFF tuning question

Hi guys, I am new to this forum forum and I am trying to tune my first Pixhawk heli which is a SAB 500 following the tuning method updated for Firmware 3.4 . When I was doing the VFF tuning, I found that in the LOG the RATE PIT and Rll lines are generally following the curve of the RATE PIT and Rll (Des.) lines, but they have many tiny ups and downs all the way through the entire curves. The frequency of these little waves are even higher than the vibration frequency. So what causes these little waves and how can I eliminate them to make the actual PIT and RLL lines smooth?

My heli can do pretty good hovering in stabilize and ALT hold mode, when I input some PIT and RLL movements, it follows my stick motions pretty well too. But once I release the stick to neutral or do some sudden inverted inputs, the “brake” maneuvers of the heli always come with some excessive bobbing on the relative axil. Does it have something to do with the little waves that I mentioned above?

1114-4 4s tail and ALT hold good 2nd try.param (13.5 KB)

That is the stabilization system making corrections independent of your stick inputs.

More than likely it does. I’ve been seeing that D-gain is many times responsible for that with certain combinations of CG and the mechanical setup of the heli. You have .001 on both axes. First try turning it off by setting it to zero and see if it straightens out. If it does, then you know what was causing it. Since it’s good to use even a little bit of D-gain, try cutting it in half and enter .0005 for D-gain. Try it again. If it’s back to the “bobby” behavior, then just turn it off by setting D-gain to zero.

The amplitude of your rate peaks don’t look too bad otherwise. And the settings for your H_COL_MIN/MID/MAX look pretty typical of the mechanical rates for most re-purposed 3D helicopters (assuming up to 10-12 degree pitch range). So I think it’s the D-gain making it too sensitive, causing the stabilization system to over-react a bit.

Hi Chris,

Thank you! I will try to set D gain at 0 to see if the wave goes away. Actually, the heli usually starts to oscillate at D setting around 0.005. Even with the existence of those little waves on the Rate lines, can’t really see any abnormal oscillations until the D gain is above 0.005.

I set to H_COL_Min/Mid/Max to collective pitches at -10 / 0 / +12.5, and I use the stabilize mode curve to make the collective pitch at 7 degrees as the hovering pitch.

The little wavy lines is normal corrections from the attitude control (stabilization) system in between your stick inputs. What I was referring to is this:

When you center the cyclic and the system brakes the heli there should be no bobbing or twitchiness on either axis. That is indicative of the gain being just a bit too much. I suspect the D-gain based on user reports of some folks that have had problems with it, especially on smaller more responsive helicopters. The movements of the helicopter should be smooth, i.e. hovering in Stabilize do say a quick roll right, roll back left to counter it, center the cyclic and let the heli drift. It should just go back to level with no extra “bobbing”. Same in the pitch axis. If it bobs back and forth a few times then the gain is a bit too much.

The other thing to be aware of is that if you just release the cyclic lever and let it snap to center some radios will “wiggle” the stick against the springs. If the Deadzone for that RC channel is set really tight it can make the heli wiggle as the stick wiggles against the springs.

Your RC1 and 2 DZ are set to 20, RC3 is 10, RC4 is 15. Depending on how precise the gimbal is on your cyclic in the radio, a DZ of 20 can definitely cause a wiggle by just releasing the stick. Pull your cyclic stick a 1/4" or so and release it - does the lever shake when it centers?

Hi Chris,

Thank you for your further suggestions and I made a new parameter with both D and P gains at 0 as what you said and the result of of the test fly was pretty good, the bobbling issue is obviously gone. I don’t think the bobbing has anything to do with the deadzone though, since I gave the maneuvers by reversing the stick inputs with forces on the lever all the time, instead of letting it go and allowing it to bounce back and forth around the mechanical center.

I even tried to use CH6 to tune up D gain from 0 on PIT to see when it triggers the oscillation. As far as what the LOG shows, the oscillation was not triggered until the D gain raised to around 0.1

Still puzzling though, the little waves on the actual RATE cure still exists, this time it is much more obvious on the Rate R curve, on the Rate P curve it’s almost unnoticeable. I assume that it has something to do with the mechanical issues, and this heli from the very beginning, always have a much higher Vibe read on Y than X. Do you think it could be solved by tuning the low pass filter params? Now P and R are both set to 10.1117 tuning DGain PGain 0.param (13.5 KB)

Thank you!


It’s worth a try to lower the low pass filter settings to see if it gets rid of it. But it almost looks like blades not tracking properly, i.e. a wobble in the main rotor disc caused by one blade running at higher pitch than the other.

So the plots shown in this post were from a flight with the parameters as provided in the Param file in the post? Before adjusting the low pass filter, I would suggest figuring out what the frequency of the oscillation is. If it is higher than 5 hz then I would say that you can lower the filter to no lower than 4 hz. Any lower and you will notice that it will affect your handling qualities (i.e. aircraft will seem sluggish).

As for the pitch bobble, it appears from your plot of the pitch axis that there is still an oscillation that occurs with 2 to 3 overshoots before damping out. I guess you are not seeing this behavior in flight? I’m seeing a similar thing with my heli but it is a flybarred heli. I did find that the D gain did help reduce the oscillation but not completely eliminate it. The P gain I found actually amplified it. My theory is that it is occurring due to the attitude feedback loop. So I lowered the ATC_ANG_PIT_P to 3.5 and used to D gain to help damp out the oscillation. The pitch bobble is still present but not as noticeable. remember that I have a flybarred heli which is already providing P gain mechanically. So your results my vary from mine.

Hi Chris,

The main blades are pretty carefully balanced in terms of CG and weight. And I will double check the tracking issue. Thank you again!

Hi Bill,

I read your post of how to tuning the low pass filter and magnify the P and D gains, it was very inspiring. And the “little wave” on my RATE RLL curve is at the frequency around 20hz. I don’t know if I should keep tuning down the low pass filter of RLL to any figure under 10.

The Y axil vibe has been troubling me for a while, if it has been caused by mechanical issues, then I should have a pretty high X vibe as well. I tried to test the Vibe read while all mechanical parts are still, and I got a higher Y axil Vibe read than other two axils even under that circumstance. So I assume that it might be an accelerator issue, but even after several very careful acc calibrations, it doesn’t change at all.

I just realized why you are seeing the oscillations in your rate.R signal. So the ATC_RATE_XXX_FILT filters will filter the error signal being sent to the Rate controller. I believe the rate.R signal is the gyro rate signal which is not filtered by that filter. I would return your ATC_RATE_XXX_FILT parameters back to 20 and then change the INS_ACCEL_FILTER to 10 and the INS_GYRO_FILTER to 10 and see what that does to the signal. These parameters are the cutoff frequencies for the filters that come from the accels and gyros which feed the Rate controller. You can leave the ATC_RATE_XXX_FILT params at 10 and that will further filter the signal that is feed to the rate controller.


Not necessarily. I’ve seen blades out of track cause that. You can set the pitch the same on the bench, but may need to put a piece of reflective tape on one blade and track them in hover visually.


Right now the heli is flying ok in the stabilize mode despite the oscillation on the RATE.R curve. In the ALT hold mode and Loiter mode, can still feel some little glitches when the maneuver is too dramatic.

The Rate PID params are:
ATC_RAT_PIT_D , 0.003500
ATC_RAT_PIT_FILT , 10.000000
ATC_RAT_PIT_I , 0.150000
ATC_RAT_PIT_ILMI , 0.000000
ATC_RAT_PIT_IMAX , 0.400000
ATC_RAT_PIT_P , 0.040000
ATC_RAT_PIT_VFF , 0.18000
ATC_RAT_RLL_D , 0.003500
ATC_RAT_RLL_FILT , 10.000000
ATC_RAT_RLL_I , 0.100000
ATC_RAT_RLL_ILMI , 0.000000
ATC_RAT_RLL_IMAX , 0.40000
ATC_RAT_RLL_P , 0.040000
ATC_RAT_RLL_VFF , 0.150000

Hi Bill,

I tired to set the both INS_ACCEL_FILTER and the INS_GYRO_FILTER to 10 while remaining the ATC_RATE_XXX_FILT at 10. It seems like the oscillations in the rate.R is not getting much improvement. Weird though, when I tune all these params back to 12, the heli oscillates on the roll axil when the maneuvers are dramatic. Do you think I can go any further under 10 for these INS filters?


That is strange because if the oscillation was up at 20 hz then a low pass filter at 10 hz should attenuate the signal quite a bit.

So each time you change the filter settings, you will need to retune the P and D gains.

Yes. You can go lower but I don’t recommend going lower than 5 hz.

I would look at the timing of the RCOUT signals to the servos vs the oscillation peaks and see if the flight controller is actually driving the rate oscillation or responding to it. I have doubts that it is driving it. That is interference or noise on the gyros and I would bet is caused by a low-frequency vibration, approximately in time with the main rotor or gear train. Which I think is a slight dynamic imbalance in the main rotor, a main gear that has axial runout, even a tail drive gear that has inconsistent backlash for the full revolution of the autorotation gear can cause it.

I have seen this before and it has always been vibration issues. Try adding a bunch of lead wheel weights to your Pixhawk’s case, or changing the headspeed and see if it changes or goes away.

I agree that oscillations above 10 hz most likely are not being driven by the flight controller. So going back to your original concern. Seeing these high frequency oscillations to a certain extent is acceptable especially if your vibe levels provided by your EKF are in acceptable ranges. You want to keep the filter cutoff frequency as high as you can but not above the default of 20 hz. In my experience, I have seen the actual rates to have some oscillatory behavior and not exactly follow the desired with the same smoothness. If I don’t notice it in flight then I typically don’t worry about it. But Chris is right, the oscillation is probably some vibration being fed into the controller and it is probably at a high enough frequency that it is being sensed by the controller but not being fed back into the servos.

As far as your original concern with the bobble, I assume that it is some lower frequency like 2 hz or less. In this case I doubt the higher frequency oscillations are causing that. That’s where you can try one of the methods Chris and I proposed to see if that gets rid of it.

Wouldn’t hurt to post an actual flight log on your Google Drive, DropBox, etc… There are situations where vibration is not in the frequency range being logged, but is still a problem. It would be nice to see if you’re getting any clipping or aliasing of the IMU’s and look at some other logged parameters.

Hi Chris,

I think you are right, I compared the RCOUT curves and the RATE R curve:

It is pretty clear that the RCOUT curves don’t have the same oscillation issue, so logically it has been nailed that it should be a mechanical problem, right?

I will replace some of the key mechanical parts like the rotor head and blades to see if the vibe can be eliminated. Thank you again!


I do want to share a log with you guys, but Google is a website that we can not really visit here in Shanghai… Let me try to figure it out… :frowning:

I don’t know that you have to replace anything. Tuning dynamic “wobble” out of a helicopter main rotor is somewhat of an art, not a science. Most times it’s “good enough” to not cause an issue. But it can be caused by anything from a slightly bent mainshaft, to worn head dampers. What I like to do is put different color tape on the leading edge of the blades - maybe red on one and green or silver on the other. Hover the heli and observe the rotor disc edge-on. If the green blade appears to want to track above the red one, for instance, reduce the pitch on the green blade with the pitch link.

You can set the pitch on the bench with a digital pitch gauge and most times it’s close enough. But for a really smooth running heli dynamic tuning of the pitch/blade tracking is almost always required.

At the RC club, tuning turbine scale models with 4 or 6 blade rotors that are 2-3 m diameter, we have even used a GoPro at high frame rate and spent a whole afternoon tracking a 4 or 6 blade rotor to get it scale smooth.