I'm working on DIY robotic arm. Robotic arm has 5 servos. The problem is that servo motors are shaking. I found different solutions but none of them works. What happens is that when I connect one PWM pin it works fine. Then add second pin and it works fine and so on. But when I connect power supply when all 5 pins are connected to ESP32 microcontroller it starts vibrating. I tried to power all servo motors separately but it doesn't work either. Does anyone have similar experience? P.S. I use JMT200 servo motors with 50 Hz frequency and 800 ~ 2200 uS pulse width. Here is link https://www.amazon.com/JMT-Happymodel-Steering-Suitable-12v-24v/dp/B086HKQTC5
$\begingroup$ I'm having a hard time understanding how this is setup - is the same PWM pin on your controller connected to ALL the servos? Are you trying to drive all of them to the same angle? $\endgroup$– ChuckMay 14, 2021 at 13:32
1$\begingroup$ Also, what do you mean when you say you've tried powering the servos separately? Do you mean you're using different power supplies for each one, or do you mean you've wired them individually back to the same power supply (as opposed to, for example, wired back to the same power pin on the microcontroller?) $\endgroup$– ChuckMay 14, 2021 at 13:34
$\begingroup$ the way your description is worded, you do not connect power until all five motors are connected to control signals .... what happens if you connect one control signal to all five motors? $\endgroup$– jsotolaMay 14, 2021 at 16:01
In my experience, when a servo is shaking, that's how it tells you its power source (battery, etc) is inadequate. Especially if the servo hums or buzzes at around the command frequency (50 Hz in your case).
That beefy servo model you cite is rated at 12V-24V with a stall current of like 11 amps. Normal operating current will be less, but running all five servos at once will be demanding.
Personally I would try two multimeter measurements.
Voltage sag. Set up to measure the voltage as close to the servo as you can, then run the servos in "shaking" mode. I suspect the voltage will be significantly less than the 12 V those servos need at minimum.
"Normal" current. Set up to measure the current drawn by one servo. With a mechanical load on it (e.g., robot arm parts) command the servo to move from one end of its range to the other end. I hope your ammeter reading will stabilize in the time the servo takes to travel its full range.
If your voltage measurement is low, that confirms the voltage-sag hypothesis. If it's normal, that still leaves the possibility of a bad connection between where you measured and the servo itself.
Your power source must be capable of supplying well in excess of the measured "normal" current, times five (the number of servos). In fact, you may want it to be capable of delivering stall current to all five (like 50A) -- otherwise one stalled servo could disable all the other degrees of freedom.
If all that's ok too, I would (re)check the connections, and confirm the wires are fat enough to carry the current. Beyond that, ask for more help, providing more detail.