overshoot in mg996r servo motor

i am making a self stabilizing platform but i am having trouble with the overshoot present in the motors. Need some advice on how to decrease overshoot in MG996r servo motors

You can't. Well, you coild, if you open the servo and flash your own program to it. Only workaround is to remove the I and D terms in your PID loop, so that it'll become a dumb P loop.

zwieblum:
You can't. Well, you coild, if you open the servo and flash your own program to it. Only workaround is to remove the I and D terms in your PID loop, so that it'll become a dumb P loop.

I assume a servo already has PID code (or similar) within it.

...R

The usual items are missing such as the sketch and the schematic ?

Could you also take a few moments to Learn How To Use The Forum.
It will help you get the best out of the forum in the future.
Other general help and troubleshooting advice can be found here.

zwieblum:
You can't. Well, you coild, if you open the servo and flash your own program to it. Only workaround is to remove the I and D terms in your PID loop, so that it'll become a dumb P loop.

.
Can i open the servo and change the pid parameters and tune my servo motor(MG996r) according to my requirements. How can it be done ?

Open the servo. Identify the uC. Make a schematic from the PCB. Write PID loop for uC. Flash it. Use it.

If you cannot identifly th uC, you are doomed.

(deleted)

All RC servos have a PID controller built in - since the beginning of IRC servos. There is no black magic in it, it's just the cheapest way to get crappy hardware perform decently.

tove_pedersen:
Last time I ever saw a reference to how they worked internally it said the servo was merely "p".

Whether it's P or PI or PID what does it matter - they seem to work well.

I suspect the OP's problem is of his own making and is not due to any deficiency within the servo.

...R

What amount of overshoot are we talking about here? Can you quantify it?

Without seeing the code the OP is using to drive the servo I'd go with the most obvious way to reduce overshoot which is to move the servo more slowly.

Steve

slipstick:
Without seeing the code the OP is using to drive the servo I'd go with the most obvious way to reduce overshoot which is to move the servo more slowly.

I would be very surprised if the servo is overshooting. I reckon the OP's code is instructing the servo to move too far.

...R