I have a robot with 8 servos on it. Previously, it was working just fine. But it suddenly developed a problem where all of the servos are shaking violently. Not a slight twitch, but a seizure-like shake, and the servos don't stay near where they are set to. I've isolated the problem to a single servo: When I call servo.attach() with that servo, the shaking starts. I tried the servo on a few different pins with the same result. And like I said before, this servo worked just fine before, and no changes were made when this problem started.
So I have a few questions:
Why would a broken servo cause the other ones to shake like that?
If the broken servo is dragging down the power supply, the outputs of the Arduino can be randomised. Do you have a way of measuring the power supply voltage?
So you have definitely established that it's the physical servo and not the wiring to that position?
Is it possible the faulty servo got overloaded and its internal gears have become stuck? Can you turn it by hand when the power to it is disconnected? Or maybe its internal potentiometer has slipped so it is at the end of its travel but does not realize it. In both cases it would draw a lot of current.
If the problem is due to the servo drawing too much current it also suggests that your robot does not have an adequate power supply.
Not enough current available from the power source probably.... Budget 1A per servo - can
your battery pack handle 8A? Have you tried measuring the battery voltage when things
are mis-behaving to confirm there's a power issue?