13 Servos, Jitter Shake when all in use


I got an arduino mega 1280, I connected 13 servos to the board and they shake. They are powerd by 5V from an external power source, a PC ATX power source.

When I start sending command to the servos they work, for a short amount of time then they start shaking.

If I unplug servos, after they have started shaking they don't stop, I have to unplug the arduino.

If I use just 7 servo it works great.

Now I have 4 servo connected, and I use another 8 outputs for controlling transistors, but the servo don't shake.

Is this cause by interference?

I recently tested a servo's current draw and it was over 1/2 an amp. It could be that you're drawing something like 10A with those servos: check the current specs of the power supply. Voltage is only half the story.....

The pros suggest to budget 1 ampere of current per straining servo, for as many servos as could possibly be active at once.
You'll have fewer problems if the Arduino is powered by a completely separate power supply, but make sure that all ground connections are connected together.

Here is a video Vimeo of a project with plenty of servos I helped someone with, on this forum. No problem having many servos as you see. It is all down to the wiring and powersupply.

There is Interference. I am using 18 PWM outputs. Data is sent through USB.

I connected all the servos to one power supply and they don't jitter , but most of them where not on load.

But there is interference of some kind, the LED's blink at specific intervals but off LED's get turned on for a short amount of time at random intervals.

Is this because arduino receives data through USB and the "write" instruction uses the same Serial something and this cause in interference?

Should I buy a Pololu Maestro Servo Controller to control the servos and arduino to receive data from PC?
I plan to control 22 servos

But there is interference of some kind, the LED's blink at specific intervals but off LED's get turned on for a short amount of time at random intervals.

There's something strange going on, then. Maybe worth posting your code and circuit diagram plus more details of the symptoms, and perhaps somebody will be able to suggest likely causes.

Solved it partialy.

This is a software and hardware problem.

Every time arduino received a servo update from PC it was sending back to the PC the pin number and the value separately.
I am sending updates perpetually, to all servos, arduino was sending back twice the amount of data so it caused a traffic jam.

I am getting the 24 Maestro Servo Controller, so I will have a backup it this repeats itself when I will add more servos.

I am sending updates perpetually, to all servos

There is a recurring design that people use in this situation, which is to send the updates as fast as possible so that there is as little delay as possible in the system. That's a mistake which will actually make the latency worse. The problem is that the sender and receiver both have buffers and if the serial link is saturated then both sets of buffers will be full. When a change occurs at the sending side the message containing the change has to wait in the sending buffer while all the preceding messages are sent, then be transferred over the link, then wait in the receiving buffer while all the preceding messages are processed, before it finally gets handled. The way to minimise latency is to keep the link load below 100% so that any messages that is sent gets transmitted immediately, and any message that is received is handled immediately. One way to achieve that is to rate-limit the transmissions to keep the data rate below the speed of the connection. A better way to do it is to filter the messages so that only changes are sent, and if that still overloads the link then add in the rate limiting too.

Sending more data than you receive is another common gotcha but I'm glad to see you've spotted that one.

Yes, the Maestro Servo Controller contains a processor chip that is programmed correctly, thus it will help your problem.