Need help choosing a rechargeable battery pack

Hello all-

So I'm working on a hexapod robot with the following stats, and need help choosing a battery. I've determined that the basics are 1200mAh and 6V, but that particular combo is hard to find in rechargeable battery packs. Can I go over the voltage or amperage by a certain amount without hurting the arduino?

12x HiTec HS-422 Standard Servos
Operating voltage range: 4.8V-6.0V
Current drain: 8mA idle and 150mA/no load running

Arduino Mega
Operating voltage: 5V

So I multiplied the 150mA by 12 for the servos, coming up with the 1200mA, and 6.0V total. How far can I go over without damaging the Arduino? Sorry if this is a beginner question, but that's why I'm asking, to learn. Thanks all!

Digging into the schematic for the Mega and then the datasheet for the linear regulator (MC33269) it shows it is rated for 800ma.

Your simplest course of action would be to buy a "BEC" and use it to regulate the voltage from your batteries. The BEC will also be more efficient at regulating voltage than the Arduino's linear regulator.

Don't take ATMega above 5.5 or you are very likely to damage it.
Motors have big current surges - you are likely to see atmega upsets if running the atmega off the same batteries as the motors.
Isolate with a switching supply could help - or add extra capacitors near the VCC/AVCC pins.

I'm attaching a little diagram on here to hopefully explain what I'm working on. I have 12 servos that are running the legs on a hexapod. Would I have to worry about the surges with this setup? And if so, what exactly is a switching supply, and how would I add it? Lastly, I found a 7.2V / 1600 mAh rechargeable battery. Would this be ok with the Arduino, or would it be too much for the board? Many thanks for your information, I'm trying to teach myself electronics, and I appreciate the help!

scan.jpg

ttkoshi:
Hello all-

So I'm working on a hexapod robot with the following stats, and need help choosing a battery. I've determined that the basics are 1200mAh and 6V, but that particular combo is hard to find in rechargeable battery packs. Can I go over the voltage or amperage by a certain amount without hurting the arduino?

12x HiTec HS-422 Standard Servos
Operating voltage range: 4.8V-6.0V
Current drain: 8mA idle and 150mA/no load running

Arduino Mega
Operating voltage: 5V

So I multiplied the 150mA by 12 for the servos, coming up with the 1200mA, and 6.0V total. How far can I go over without damaging the Arduino? Sorry if this is a beginner question, but that's why I'm asking, to learn. Thanks all!

So - you expect all of your servos to have "no load while running" - on a hexapod? That won't do...

You need to find out what the current drain is on a single servo - ideally when it is stalled (or close to it) - ie, maximum load. Then use that to figure out your "worst case" (ie, all servos on, and stalled - very unlikely to occur, I know - you might be able to shoot for something 10-20 percent lower) current needs.

Regardless - even if you only did need a 6V 1.2 Ah battery - you won't get an hour of run time; there's a little thing to factor in called "de-rating" with temperature (external temperature of the environment, as well as internal temperature of the battery as it heats up from being used due to its internal resistance). To figure out this - you would need to consult the data sheet for the battery (or, more likely, the individual cells of the battery).

As far as what the Arduino can tolerate - a battery doesn't "push" current; devices "pull" current from a battery. The battery can supply only so much current before it will toast itself (so - from your hypothetical 1.2 Ah battery - you could theoretically draw 4.8 amps from it - for 15 minutes; but that would likely violate its C10 rating badly, unless you don't care what happens to the battery). Your main concern is how fast can you discharge the battery at a given current and temperature, and how long at that temperature (realizing that it will rise as you pull from it) will it run?

Now - you would want to think about the output voltage of the pack - if you are running the Arduino off the pack with the on-board regulator, it will require at least 7-7.5 volts for it to operate properly (par for the course with a 7805); otherwise you would want to use a 4.8 volt pack running directly into the +5V pin to bypass the on-board regulator (stay around 5 volts - don't push up the voltage). If using the on-board regulator, don't go beyond 12 volts (even that's pushing it, IMHO) - the 7 volt diff in voltage is dumped as heat, and the 7805 isn't very efficient, and there isn't anything like a real heat-sink attached to it...

BTW - regarding the 7.2V / 1600 mAh battery: Besides the aforementioned issue with not knowing your loaded/stalled current of your servos; the 422 runs at a max of 6.0 volts. I don't know how well they would work at 7.2V or how long they would last at that voltage (based on the unknown load) - you might want to look for 7.2 volt servos if you plan on using such a battery.

Thank you for that reply. So I found online that the max load draw is 700mAh, so I would need a battery with 8400mAh correct? Now am I safe to say that the voltage of the battery should not go over 6 volts (the rating on the servo), since the voltage is pushed from the battery to the servo, and the servo draws current from the battery so having too much mAh in a battery won't hurt it? Sorry for my extreme simplification, and thanks again!

Now am I safe to say that the voltage of the battery should not go over 6 volts (the rating on the servo), since the voltage is pushed from the battery to the servo, and the servo draws current from the battery so having too much mAh in a battery won't hurt it? Sorry for my extreme simplification, and thanks again!

Those are both correct statements.

Lefty

Many thanks to all of you, brilliant answers and definitely helped me see this clearly. One final question (before the final question): my servos run at 5V or 6V, so would running using a 6V battery make them run better, or 5V because its less taxing on the system? Thanks!

I don't mean to throw another wrench into the works here, but after reading you talking about getting an 8400mAh battery, I think you need to be aware of payload capacity as well. And with HS-422 servos, your hexapod is not going to have a very high payload capacity. An 8400mAh battery is going to be a heavy battery. Likely too heavy for a HS-422 servo hexapod. Even if you were to use a lipo battery (which are the lightest available batteries), you're probably going to need to stay below 4000mAh, and maybe even under 2000mAh.

Best plan would be to get the hex up and running off wired power, and use weights to determine payload capacity, then find a battery with the highest mAh capacity that is well below the robots max capacity.

No no, I don't consider it throwing a wrench into the gears, just brainstorming with people who have the expertise I'm hoping to have one day. Good idea, I'll do that. Right now, I know that using 4 AA batteries it ran fine, so i know that i can use that as a starting weight and add to see how much before the servos start straining. Many thanks again!!!

Note that you don't -need- an 8400 mAh battery pack. Your total "worst case" current draw (all motors stalled) would be 8400 mA (discounting the 200 mA or whatever the Arduino and anything extra would draw - you may need to factor this in, if you are running everything off of one pack); this condition is highly unlikely to occur in real life, though.

You definitely should take the advice of running it using an external supply, then add an amount of weight (whatever you figure for an example battery pack), and measure the peak or average current usage of the motors in a "standard pattern" walking gait. You might also try turning gaits, and raising/lowering stances - in case any of those show a higher value or such. Then add 15-20 percent to the value.

This you can call your "maximum current" usage.

From there, you can figure out how many amp-hours of capacity will be needed to allow your robot to run for a given length of time (keeping in mind the caveats I mentioned earlier) - one hour is easiest, though.

So - if your motors had a figured maximum current draw of 1500 mA; plus 10 percent would be 1650 - add on a bit for the Arduino - round it to 2000 mA. If you wanted it to run for 1 hour, then a 2000 mAh (2 Ah) battery is a good starting point (in reality, you would want to go with something slightly larger, like a 2500 mAh battery - because of derating and such, as mentioned).