12 Servo's, Arduino and external power won't work


Currently i've got 12 servo's connected to a v4 sensor shield that i modded to have it's own powersupply since the arduino can't even handle one servo without resetting..

But i bought several powersupplys to get the whole thing running.. and all i got so far is three servo's at once with a 5v 800mah adapter.. so i figured that going to a more powerfull adaptor would help. So i bought a 5v 2A adapter, but now it's the same as running the servo's from the arduino.. only one can try to start but the whole thing shuts down..

So i figured that i'm missing something, but what? I use the same servo's as this guy ( http://letsmakerobots.com/node/2423 ) and he got 12 running with Atmega chips.. but i can't figure out what the difference is between my setup and his.

They are talking about h-bridges and mosfet's .. but on this forum nobody is using them to run more servo's..

So i would really appreciate it if somebody can give me some hints on this :) 8-)

I would suggest conservatively budgeting 1 amp per servo, so a 12 servo application would justify a 12amp external supply. So much is application dependent, how much peak current does each servo require, how much mechanical load is on each servo, how many servos are going to be moving at the same time? Many have used larger PC power supplies as they tend to have lots of reserve current availability.

I would also suggest some decoupling:-


I will read about this de-coupling (don't know what it is yet) thanks.

Some more details about the servo:

Control System: +Pulse Width Control 1500usec Neutral Required Pulse: 3-5 Volt Peak to Peak Square Wave Operating Voltage: 4.8-7.2 Volts Operating Temperature Range: -20 to +60 Degree C Operating Speed (4.8V): 0.20sec/60 degrees Operating Speed (6.0V): 0.19sec/60 degrees Stall Torque (4.8V): 9kg.cm Stall Torque (6.0V): 11kg.cm Operating Angle: 45 Deg. one side pulse traveling 400usec 360 Modifiable: Yes Direction: Clockwise/Pulse Traveling 1500 to 1900usec Current Drain (4.8V): 8.8mA/idle and 350mA no load operating Current Drain (6.0V): 9.1mA/idle and 450mA no load operating

And i'm building a robot, so all servo's could be used at one time - i'm even planning on placing more servo's so the solution should be scalable :)

With an Arduino Duemilanove or Uno, the Servo-library won't drive more than 6 Servos. You'd need an Arduino Mega for, I think 18 is the limit there, then you run out of timers too.

From the description your servos behave like plain vanilla RC-Servos with 3 wires, power, control and ground. Use the Servo library to drive them.


Korman, thanks for your input, but it's not correct; i quote from the arduino servo lib:

Note that as of Arduino 0017, the Arduino Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.

so driving them all shouldn't be a problem.. and atm i can't even drive four at once :P wish i could do 6 :)

My Mega ran 18 servos just fine.
I did use an external power supply.

I have a Watt meter at home. The robot is currently disassembled, but I am working on getting it back together. When I do, I can post the amps that all 18 servos pull when walking.

Yes, you're right, sorry about that.

Very cool bot vinceherman!

What is the type of servo you used? I can search for the details myself then.

And how did you connect the servo's to the shield, are there any resistors and/or capacitors on the shield? And what was the mAh of the battery used?? :) ;D

I started out with all Hitec HS 311 servos because they are cheap.

I replaced the 6 innermost servos with digital servos since I had them and they have a higher torque rating. I believe that are JR DS821, that came with my Spektrum RC transmitter. I want to be able to go longer before servo strength is an issue, and the 6 inner servos have the higher torque requirement. These digital servos accept the typical servo signal or they can read the faster frame rate signal used on newer 'digital' systems. Bottom line, the Arduino servo library talks to them just fine.

The shield is just a prototype board with wires and pins soldered to it. I got it when I ordered the Megas from nkcelectronics.com I picked up a ton of pins, headers and such (can't remember at the moment where). I could have just run wires to the headers on the Mega, but keeping the existing plugs on the servos makes things easier. The servos are just plugged in to the central 3 rows of pins. One row is +6V, one is ground and one is the signal.

The battery is a 2100mAh, 11.1V, 3 cell LiPo battery. I have a zillion of these packs for my RC aircraft. I used the voltage regulator (Dimension Engineering) to efficiently cut that down to 6V.

Ok cool thanks for the information, i will try this too.

Those batteries arn't that expensive on ebay so i could give it a try, in the meantime i will search the secondhand shop for some other ac-dc adapters with some more current.

I made a custom power supply from an old atx pc supply. Result is all 12 servo's working at once :) http://www.youtube.com/watch?v=HnyU_iUFqC8 Thanks for the info.

(And my topic can be moved to the 'hardware' interfacing if possible, i noticed it today that i misplaced it in the software section ;) )

AWESOME solution. I use PC Power supplies to run my battery chargers. Glad you are moving forward! :)