Buck converter drops voltage when powering hexapod servos

I'm trying to design/build my first hexapod, and am having some issues powering the servos. There are three SG90 servos per leg, so 18 in total.

I am using two 18650 20A batteries (LG HG2). They are connected to a buck converter with a large heatsink that is set to lower the voltage to 6V. That then goes to two Adafruit servo boards.

When I turn it on, the output from the buck converter drops down to about 2.5V. There is still about 8V at the battery output and the buck converter input, but it drops as soon as it gets to the output.

For some reason it was doing this previously even with only one servo connected, when it was using about 300mA.

The buck converter is rated up to 20A. From what I've read, that should be enough for the SG90s, and it doesn't seem to be getting hot or anything.

The problem with one servo seemed to go away when I last measured it though, this time it would output 6V with 9 of the servos connected, but drop when adding the other 9. So I connected another identical buck converter in parallel, and used one for each servo board. This time both of them dropped to 2.5V output. I found that a bit confusing since I thought they should be less likely to hit any sort of current limit that way.

All of this happens as long as the servos are on, regardless of whether they are holding weight or laying flat.

Is this likely to be a battery/wiring problem, or have I got something else wrong? If the batteries can't supply enough current, wouldn't their voltage drop before they reach the buck converter(s)?

I'm not sure if I should add another pair of batteries parallel to the first two, or try something else. I had also considered using 6 smaller (3A rated) buck converters, one per set of three servos, each with their own capacitor, but I don't know if that's a bad idea.

The other issue is that the more I add, the less space I have, and the more weight the servos have to lift (which is why I considered 6 small converters over 2 big ones with heatsinks).

Should I try a couple more batteries first?

When you turn it on, all 18 servos try to go to the default position at the same time, how many amps does that require? Try attaching the servos 2 or 3 at a time with a, say, 75 mS delay between groups.

The buck converter is rated up to 20A

Sounds like a marketer's brag, for how long, 5 milliSeconds? What is the buck's continous rating?
And post a wiring diagram.

Does the default position of the servos involve lifting the hexapod in to a standing position?
If so, you might be stalling the servos.
As an experiment, support the hexapod frame so that the feet are in free space and power up. Do you get the same result?

Something to think about - the SG90 is not a powerful servo. It will be VERY easy to overload the servo, asking it to maintain position with more torque that it can handle. Especially when you start walking and have multiple feet in the air - this means that there are less legs supporting the weight, increasing the torque required to maintain position.

You can do some math to see if you servos are strong enough - You just need 4 numbers:

  • the 'reach' of a leg during your walking stance? By 'reach' I mean the horizontal distance between the pivot point of the hip of the leg and the foot when it is in contact with the floor.
  • the weight of your hexapod
  • The torque capacity of your servo (1.80 kg-cm) according to TowerPro
  • the number of feet that will remain in contact with the floor while walking

Take your weight in kg, multiply it by the number of cm of reach and divide it by the number of legs on the floor during the walk. If that result is less than 1.8kg/cm, you are in the right ballpark. I would want a margin, running right at the max often results in failure as soon as some small part of the equation changes.

Buck converters have a minimum input voltage and a minimum dropout voltage rating.
Dropout voltage could be ~1.5-2volt for a buck that delivers a few amps.
A higher battery voltage might be needed.
Post a links to the buck converters.
Leo..

At the moment it's not set up to try and stand or hold its own weight when it's switched on. It lays flat with the legs pointed straight out, and the weight resting on the base in the middle. I have tried to make it stand, but at 2.5V it fails at that pretty quickly.

The legs move fine as long as they're just waving about and not pushing down in any way, but even if I can just about get it to stand (by positioning the feet directly under the "knee" joint so the outer servos aren't holding an angle), it still sits at 2.5V.

I'm not sure how much control I have over attaching servos since I'm using the Adafruit PWM boards that drive up to 16 servos each (or 9 each in this case). I guess I could try switching on one board after the other, rather than both at the same time. If that is the issue though, would the voltage stay consistently low?

I will try and weigh the robot, but again I'm not sure it applies if it's basically laying flat, and at 2.5V it doesn't have much torque anyway.

The buck converter is 6-40V input and 1.2-36V output. The batteries are in series so are over 8V when fully charged, and it does give the right voltage when nothing is connected to the output. It claims to be 20A/300W max, it was from Amazon so I'm not sure where to find a datasheet:

https://www.amazon.co.uk/gp/product/B06XYH1KKJ

It's a lot bulkier than any of the lower rated converters I have. If it does really have a lower limit than stated though, would joining two of them have raised the output voltage on each one slightly?

That buck converter could have a 2-4volt dropout voltage. Who knows.
That means you must power it with 8-10volt minimum to get your 6volt out.
Try three or four LiPo batteries in series.
10-12volt is better for the batteries as well, because battery current is lower when battery voltage increases.
Leo..

Wawa:
That buck converter could have a 2-4volt dropout voltage. Who knows.
That means you must power it with 8-10volt minimum to get your 6volt out.
Try three or four LiPo batteries in series.
10-12volt is better for the batteries as well, because battery current is lower when battery voltage increases.
Leo..

Thanks, I think this was it. I put another 18650 in series with the other two to push it above 12V and started getting a steady 6V out, with the servos running much better.

So much better in fact, that the full current melted one of my cheap battery holders, so I'll have to upgrade those now.