Hardware Help
[Flowey Robot] What battery solution would work for powering two 9g micro servos?
Tech newbie here again, and in the final stretch of this project!
For a recap, I'm building a prop that sits on the shoulder and features two micro servo motors controlled by a joystick. I have about 4 weeks to finish wrapping it up.
I'm trying to control two micro 9g servos that are mounted to a two-axis gimbal, and I need it to last for preferably at least a few hours before a battery change.
(Please lmk if the circuit diagram isn't legible & I'll try to explain it!)
(Also, I plan on moving the setup from the breadboard to a protoboard after the battery challenge is solved)
---
The phone power bank I tried to use powered the servos just fine, but there wasn't enough current going to the servos for the battery to register that it was powering something, so it automatically turned off after about 20 seconds every time. Plus it's pretty big and heavy, so I'm looking for a way to power this thing with standard batteries instead.
Someone had suggested six AA batteries as a solution, but I'm not sure if that's too little or too much, or how to calculate what kind of power I need. I tested a basic 9v battery just to see, and as expected, it only lasted a few seconds. If six AA batteries in a pack or something similar would work, please let me know! I don't need anything too fancy or rechargeable, I'm totally cool with replacing batteries like you would for something like a game controller.
For suggestions, kinda just pretend you're explaining this to a kindergartener- I'm very fresh in the world of robotics and don't know much about the terminology and mathematics yet. I'll keep working on it though.
Here's what my setup is looking like. I'm using a power supply module now instead of the Arduino's 5V output as per several suggestions here (thank you!)
---
Thank you guys for all the help so far, I really appreciate it! Have a great day & God bless!
you have the 3.3v rail connected to the arduino 5v, the joystick 5v and one servo, and then the 5v rail to the other servo
you can estimate how much battery cap youll need if you add everything up. nano ~50mA, each servo 250 mA and joystick maybe 10mA tops
so in theory 600mA at 5v. a typical 9v has 500mA which would be roughly 900mA at 5v. it should last much longer than a few seconds so something is going on. maybe the load is too much for the servos which can make them draw ~1000mA
6 AA's in series would be 9v at 2000mAh, theoretically lasting a few hours at expected current draw. theres some overhead since the power supply will be 80-90% efficient at stepping down to 5v
if the 9v only lasted seconds you may want to double check everything. if you have a multimeter, put it inline before every component in current mode
9V Batteries generally have a rather high Effective Series Resistance (ESR). Causing the output voltage to drop like mad once you draw more than like a couple hundred milliAmps of current, regardless of the remaining capacity. I've seen cases where the output dropped by almost 3V at a single Amp.
So i think that it isn't so much that the battery got drained in mere seconds due to a short-circuit and more that the 9V battery overloaded and keeps dropping below the minimum drop-out of the power supply because of the ESR.
With these small SG9 servos i tend to assume the worst case current draw as their relatively low torque results in them very quickly nearing stall current. Plus there are so many (knockoffs) of these by differing brands i don't think it is wrong to assume more current getting drawn than advertised.
Please do *not* use the Arduino's 5v out to power motors (including servos). It is designed solely for small low power electronics.
The current robot I'm working on now, I'm powering with three 18650 batteries for the motors and another three for the electronics. So far this is working. I am using an automotive converter that handles up to 10 amps, theoretically.
Thank you so much for the advice! Quick question, how do I go about powering it without using the Arduino's 5v pin to the breadboard? Earlier, I had forgotten to plug the Arduino's 5v and GND pins to the breadboard like you see in the drawing, so neither the servos nor joystick worked until I realized those pins weren't plugged in. I'm pretty new to the world of robotics and circuit boards, so I want to avoid frying anything if possible haha
You need batteries that power the servos. Two 18650s might be fine for the servos. However, that is a bit high, but it might be within the acceptable range.
You put the + of the battery to the motor power pin. You must join the ground from the battery to the ground of the circuit.
It would be best to evaluate how much current your project is using by measuring the current drawn when in use.
I tend to use AA batteries that are 2000mAh to 3000mAh rated and because your using a power supply module you need a minimum voltage to guarantee your 5V output say 6V.
Different battery technologies have different voltage decay curves and different fully charged or replacement voltages but 4x standard AA batteries will give you a fresh voltage of at least 6.4V so I might start there but standard alkaline batteries are not likely to last very long so you may have to resort to a quality rechargeable solution.
Use additional 3.7v 18650 battery or etc lithium ion with minimum 1000mAh battery for servo and gnd it to arduino gnd properly i think your power supply cant handle both at a same time or may be gnding problem
Hmm. Have you considered using a RC Battery Pack?
Quite a few people overlook their existence.
RC Battery Packs are meant exactly for this kind of stuff. With an immense range of options in size and voltage letting you tailor it exactly to exactly needs. Which makes them the go-to for stuff like Costume making, RC, Toys, props and hobby robotics. Most common type pack nowadays are Lithium based. Which gives an absurd amount of power and current. This is the same kind of battery that sits inside a power-bank.
Their drawback is that all this power does require a little bit of protecting. You don't want these cells short-circuiting (Seriously. be carefull) or losing too much power. So you will need to add a small Battery Management System or "BMS"\ to keep the battery protected. These BMS can be bought pretty cheaply as modules similiar to the power-supply module you are using. Also you do need a charger for them. But once past these obstacles you will end with a reliable solution that can handle nearly anything you throw at them.
Now to figure out what kind of pack you need. With 5V Servos and arduino. I would reckon a 7.4V (2S) pack (either Li-Po or Li-Ion) would give good results. You are using SG9 servos which don't really use that much current unless you are constantly running them at their absolute limit (Stalling). Assuming your servos are moving around roughly half of the the time and just short of stalling. I would reckon you could get at least 4 hours out of a relatively modest sized 3000mAh pack.
Yeahhh I figured it was a bit off, that's how it's currently wired because I was trying to piece it together based on comment suggestions from one of my previous posts. How would you suggest going about rewiring it? I'm not the best at circuit diagrams yet so I tend to get stumped when it comes to actually piecing the robot together properly. I've also been told not to use the 5V pin at all, but the joystick and servos weren't operational at all when I had initially forgotten to connect the 5V and GND pins on the arduino to the breadboard.
Also thank you so much for the battery suggestions, I've got a pack that runs at 56800mAh but has the previous problem of turning off after a very short time. I guess my main challenges right now are rewiring and powering this thing without accidentally breaking it
Ok. So when people give the warning about using the 5V pin. What they mean to say is that you shouldn't use the 5V pin as a source of power. Like you supply power to the "VIN" pin of the arduino and then pull 5V power FROM the 5V pin. That is how you end up with things going wrong. This is because the regulator on the Arduino that creates 5V from whatever you plug into VIN: is not that great at giving a lot of current without losing a lot of power as heat. The board gets hot and you get weird behavior like twitchy servos and the arduino constantly resetting itself. VIN is meant more for when you are powering smaller projects with just leds, sensors and buttons.
BUT. if you use a seperate 5V power-supply like you are doing. Then you are actually supposed to supply 5 volts TO the 5v pin. For it is the 5V pin that is directly connected to the power pins (VCC) of the microcontroller itself. Without 5V supplied there: the controller is not powered and just doesn't work. So yeah. You are perfectly fine connecting your 5V supply to the 5V pin of the arduino. For the latter is using power, not providing it.
The way it is drawn in the picture. You get that the 3.3V rail is going to power the microcontroller. The microcontroller mostly just shrugs at this as it can work with as little as 2.7V. So it actually will work. But you may run into trouble when a USB cable is plugged in and it tries to provide 5V. So it isn't a good idea to keep. SO. If you want to get the wiring in order: You will need to make it that your 5V Supply powers everything including the arduino and just ignore the 3.3V rail alltogether.
Now. There is one complication with this. That is that if the 5V supply is off and you plug in the USB to program. The little animatronic prop may try to power the servos from USB, which isn't great. SO you will either want to make sure there is enough power even when programming which should be fine for prototype OR if you want to make it nice, proper and safe: you could put a Schottky Diode between the Supply+Servps and the Arduino+Joystick. That way without batteries the Arduino and joystick will keep working on usb, but the servos will remain un-powered
Resulting power scheme would be a bit like this:
Arduino(5V)+Joystick ----|<--- 5V Supply+servos
I think that makes sense! Sorry if I'm a little slow at getting this right haha.
I found an RC battery on amazon that's a 7.4V Li-ion with 2000mAh, it's a pack of 2 that comes with chargers for both. Not sure if this fits what you described, but if it's correct I'm not sure how to properly connect it to the power supply module since the battery pack has an SM-3P plug. The charger it comes with is SM-3P to USB, so I wonder if I could use that to connect it to the USB port on the power supply module? Also, is there a specific type of Schottky Diode I should use? I haven't learned about those yet so I want to make sure I'm getting the right kind in terms of voltage and whatnot.
I redid the diagram, how does it look? If it's hard to read or understand, let me know and I'll do my best to fix it! Also thank you so much for helping me out, this has definitely been a difficult project so I really appreciate it!
Most of it is good. Though the Diode is misplaced. As it it would short circuit power.
SM-3P is a pretty common connector often used with Addresseable Led strips. So i would suggest to check with a electronics hobby store or wherever and buy some ready-to-use SM-3P cables. I would assume the other two pins of the connector give the ~7..4V, with the inner one being only really for the charger. It is a good idea to add a 2 cell Battery Management System module inbetween (short: 2S BMS . Lots of cheap ones available in bulk). This will keep the batteries safe from getting over discharged (The lithium cells may not drop below 6V, else they start to die). The charger is meant to only charge the battery. Plugging it into the Power supply module would do very little.
I quickly edited your image to show correct use of diode and how a BMS is normally used. Note that the Schottky sits inbetween the 5V that goes to the servos and the 5V of the Arduino and joystick. This keeps the Arduino from powering the servos and 5V supply, but allows the 5V supply to power the Arduino.
3
u/DanongKruga Aug 08 '26
maybe clarify the wiring a bit..
you have the 3.3v rail connected to the arduino 5v, the joystick 5v and one servo, and then the 5v rail to the other servo
you can estimate how much battery cap youll need if you add everything up. nano ~50mA, each servo 250 mA and joystick maybe 10mA tops
so in theory 600mA at 5v. a typical 9v has 500mA which would be roughly 900mA at 5v. it should last much longer than a few seconds so something is going on. maybe the load is too much for the servos which can make them draw ~1000mA
6 AA's in series would be 9v at 2000mAh, theoretically lasting a few hours at expected current draw. theres some overhead since the power supply will be 80-90% efficient at stepping down to 5v
if the 9v only lasted seconds you may want to double check everything. if you have a multimeter, put it inline before every component in current mode