I take off in Stabilize mode and settle in on an altitude. Then, when I flip to either ALTHOLD or POSHOLD, the copter surges straight up. I then immediately pull the stick down to stop its’ rise. After that, I can switch mode without any issues.
I was running Copter 3.3.3 and prior releases without this issue. When I updated to 3.4.2 is when it started, and is still there in 3.4.4 . I don’t see any parameter that is controlling it.
Does it have to do with the new throttle mid learning feature MOT_HOVER_LEARN ? I have that set to default, which is 2 LearnAndSave . If so, should it be changed to 0 Disabled after it has been saved at disarm?
It depends on the position of your throttle when you make the switch. If you have it above mid, especially when you are switching from a non altitude holding mode such as stabilize into any of the altitude holding modes such as you’ve described, this is likely going to happen.
It appears that you ran into what several of us have. Do you have the buzzer stuck to the flight controller? I think the newer firmware have a louder and perhaps different tone when armed. I found that you can alias “falling” into the z-accelerometer, that is what causes the temporary full throttle. Once the tone is over, it will most likely settle out.
This should happen if you switch to any mode that uses the altitude controller. You can either move the buzzer, or disable it in parameters, to test this theory. You can see here that your primary z accel was recording near free-fall, while the secondary was seeing multiple Gs upward.