How to change PID in flight during a Mission

Hello everyone
I’m studying how to change PID in flight during a mission with Ardupilot and Mission Planner.

I know the PID tuning procedure through channel 6 but I can not find any command that allows to change the PID through a switch. Imagine that the drone during the flight becomes heavier, it is necessary to change the PID to a value previously tested.
I would therefore like, in flight, to make a switch that changes the PIDs and then continue the mission.

does anyone know how it could be done?
thank you

As far as I am aware, it can’t be done.

you can change the pids in flight from a GCS. however it is NOT advised, as a bad value will result in a crash.

1 Like

how i can change pid in flight ? Using mavlink Command?
thanks

Pid’s are stored as parameters in the FC, and you can change parameter via mavlink command or via MP’s GUI. However as Michael said it is not advised

Why not just use the CH6 function but instead of a pot or slider allocate it to a switch.
Setup you min and max rates to the values you want.

If you wanted to change a few PID’s at once you probably could do it with a script and Mavproxy or similar.

But I will echo what @Michael_Oborne tried to tell you, DON’T DO IT.
To illustrate, back in the ‘good old days’ when you had to tune by hand, it was a long and tedious process.
So using a second person on the GCS making changes to the PID settings while flying was the logical way to do it.
Until of course the user made a mistake.
In my case it was forgetting to put in a decimal point so instead of 9.000 going in 9000 went in.
The crash was spectacular, and I believe the hex managed to do 4 or 5 flips from only 10m up before driving itself hard into the ground.

When you make any PID changes you need to carefully test them.