New octo build with extreme z axes oscillation

I was following Tuning Process Instructions — Copter documentation instructions here. After setting up MOT_THST_HOVER parameter, (by enabling MOT_HOVER_LEARN) copter started to oscillate on z axes with slow but large movements. Can anyone help me?
Log files LOGS - Google Drive

Vibrations are trending into the bad zone, see if you can check and secure wiring and all items, maybe even examine the flight controller mounting. Prevent prop wash over the flight controller.
Wiring needs to be secure to the copter frame, but have some flex between there and the flight controller connector, but no so much flex that it wobbles around in the prop wash. Wiring can not be pulled tight or rubbing against the flight controller.

Apart from the oscillations there is a clear physical yaw bias, which means twisted motor mounts.
You will need to better align the motors so props are all spinning on exactly the same plane.

These next steps are for after you’ve addressed those physical issues.

It looks like the altitude oscillations might be related to the rangefinder, since it’s altitude readings are constant while everything else (baro, GPS) is not. I would disable the rangefinder and examine its settings and operation separately - after the rest of the tuning so as not to confuse any issues.
Also your PSC_VELZ_P,7.5 looks very high and it could be contributing to the altitude oscillations, I would set
or even as low as 2 at least for testing.

I assume this is quite a large octo from some of the settings you have. These safety features should be essential and I strongly recommend you set these:


It is a mistake to think you dont need to set the battery voltage and failsafe actions “because this is just testing”
And setting the Fence means the copter requires a good GPS 3D fix and Home can be set before arming in ANY flight mode. This prevents it from heading off to Sea of Japan when it thinks it is going home, or wandering unnecessarily during takeoff and tipping over - the tip-over is common with big copters that dont have a good 3D fix.

Adjust these before the next test flight

INS_HNTCH_ENABLE,1  // set this then refresh params to see the rest

And you might want to consider these lower PID values and see if it settles the oscillations.
The default values that are in place now may work OK, so consider retesting with the existing PIDs before changing to these, since there is a lot of previous items that would affect stability and altitude.


With these big copters it is very important to start in Stabilise mode so you have complete throttle control, and only shift to AltHold if everything is responding as expected.
Loiter can be used after basic tests and any required tuning for stable flight.

1 Like

Thank you for the information! I will try these and post the results here. I was aware of the yaw bias but couldn’t find anything mechanically, all motors seems to be on a same plane and im using the same props on all motors, so i thought ccw motors turning faster meant something wrong with the tuning. I will make sure to check the mounts again.

I revised the copter mechanically and checked all wiring again. I believe yaw bias problem is gone approximately all motors are working at the same pwm during hover. Z oscillation is still the same. I uploaded the new logs to link i shared before. I didnt get the chance to try harmonic notch filters or lower PID’s. I will try them tomorrow and upload new logs. I also examined rangefinders raw data and it seems ok

Yes I see altitude is much the same.
I could easily be wrong about the rangefinder too, of course.

I think this might help a lot, and I’ve moved it to the top of the list (but dont ignore all the other suggestions)

MOT_HOVER_LEARN,2 // don't know why it was 0



because I think the hover thrust value has been incorrectly set, possibly offset because of other issues, and has been unable to learn the correct value because the Learn function was disabled.
Those PSC values are not critical and will do fine until there is better flight and more data.
Also set


when you are doing the harmonic notch filter settings, a slightly different value to what I had calculated earlier.

Proceed with the harmonic notch filter settings plus the Fence and Battery settings.
Your battery failsafe voltages and actions may need to go into the BATT2 parameters if that is the input you are using.
Also add this in, which I left out before because I thought it was already set but I see in the new logs it wasnt
and also add some extra logging for PIDs

I would say it looks like the compasses are not calibrated well, maybe done via the large vehicle mag cal procedure, which is understandable.
The flight controllers compass is disabled as per usual and the external compass is in use.
I used magfit over the logs, and I wouldnt expect a great result since you really need a flight with lots of turns and yaw, but this might be better and might even help the altitude and attitude issues


Do all of the above adjustments before the next flight, they are all helpful and some are quite important.

It time, when altitude and attitude are more under control a log with plenty of turns, circle and yaw would be handy to really sort out the compass calibration.

Then you will just have to asses if those suggested PIDs are going to be better, and probably proceed with some manual tuning, look up transmitter based tuning.

Thanks for the reply.

I did actually set INS_LOG_BAT_MASK to 1 in my first logs but i erased all params and set them up from the start just in case.

MOT_HOVER_LEARN seems to be not working for me. I enabled the param and hovered in althold for approximately 1 minutes but MOT_THST_HOVER didnt change at all, so i set it by looking at the CTUN.Tho value. I will try it again and upload seperate log file for MOT_HOVER_LEARN.

Copter is quite large but i will try manual compass calibration and enable the params you said and harmonic filters. I will upload the new log files in a few hours. Thank you so much again!

Definitely set the values I gave


which is based on the logs I’ve been looking at.
The learning function should work, but it needs time at a constant altitude and throttle levels in order to adjust.

Sorry for the late reply. I was unable to fly today due to rain. I Will upload the new log files as soon as i fly. Again, thank you for your interest.

Sorry for the wait. I was unable to fly last few days due to weather. I uploaded new logs and a flight video. I set all the parameters you said; I disabled the rangefinder, tuned the PID’s and calibrated the compass. Disabling rangefinder eliminated the z bounce but after tuning the copter i enabled the rangefinder and bounce was still there. Increasing RNGFND_FILT seems to solve my problem but than surface tracking works sluggishly.

I’m still struggling with Z oscillation. Desired altitude and achieved altitude is ok. I guess desired altitude is trying to follow sonar desired altitude but it always overshoots hence the oscillation happens. I’m not sure which PID’s are causing that (PSC_ACCZ_PID or PSC_VELZ_PID maybe?) any suggestions?

If it flies OK without the rangefinder, then the rangefinder data must be faulty - it’s misreading the terrain.
I think you should keep the PSC values you had working without the rangefinder and do more to to investigate the rangefinder readings.

1 Like

I examined the rangefinder data as you said.

Rangefinder readings and altitude values are almost identical. So i believe rangefinders are not faulty

Desired sonar altitude also seems ok. It tries to respond to changes in surface height

I believe problem is; Altitude tries to catch desired sonar altitude (SURFTRAK) but it always overshoots?

But i dont know which params are affecting that. I think rangefinder is fine because i used same radar on many other copters.

Here is another comparison between barometer readings and raw rangefinder data

Examining logs further shows that oscillation is caused by the high P values for PSC_POSZ_P and PSC_VELZ_P

Whenever throttle output peaks, altitude is at its lowest value and seems like it doesn’t stop.

Lowering the PSC_POSZ_P yields better results but this time there is a steady state error and P is still high

These are the current PID parameters that i’m using and these affect SURFTRAK i believe

PSC_VELZ_P       2.000000
PSC_VELZ_I       0.000000
PSC_VELZ_D       0.000000
PSC_POSZ_P       1.000000
PSC_ACCZ_P       0.320000
PSC_ACCZ_I       0.640000
PSC_ACCZ_D       0.000000