I'm at a total dead end with a problem, so I signed up to the forum in the hope somebody could guide me a little.
I have a TP4056 module on an 18650 powering one of the little red 5v boost converter modules from ebay. Effectively, it's a 5v UPS for a solar system that powers a project.
Now, the problem. I made a control board for a project. It simply takes the 5v and offers a 5v rail, an LDO for a 3.3v rail, some opto-isolators to protect my arduino, and a little PNP PWM motor controller. It all works perfectly if I put 5.1v from a usb charger in to the board.
The problem is the servo (Tower Pro MG90s). When I'm running off the battery/UPS whenever I connect the servo it shuts down the 5v boost module. Instantly. The 5v module will not even turn on if I connect it to my board with the servo already plugged in.
As I said, if I'm running this off a USB powerbank or wall charger, it all works perfectly.
Nevertheless I added a 100nf ceramic cap and diode across the servo +/-, as well as a 10uf electrolytic on the board 5v input in the hope of catching any inductive spiking that may be upsetting the boost converter, but to no avail. I've tried running another inductive load by plugging in a small 5v cooling fan directly in to the servo power pins and this doesn't upset the boost converter at all. It is ONLY when the servo is plugged in. I've tried multiple servos.
The boost converter is rated for 1amp, and I'm pulling < 100mA normally, and I can't imagine the (unloaded) servo pulling 800mA. Unfortunately, I don't have access to a 'scope, and the boost converter shuts down so quickly my multimeter just can't pick it up if it is doing so briefly.
jremington:
Motors and servos all draw the stall current every time they start up.
I didn't know that, though now you've told me it seems obvious. A good bit of knowledge to bear in mind for the future, thank you. I'm not convinced that that's the problem here though.
I've found a site ( http://www.arxterra.com/micro-servo-tower-pro-mg90s-current-test/ ) that claims that when shifting 500g @ 1.6cm, the mg90s only draws 460ma. Is "stall current" really likely to be over an amp? In which case, how is it running the project's "propulsion motor" successfully when that's a motor size up from the one in the servo? The 5v cooling fan I tested with is a much larger motor than either the servo or propulsion motor, and it runs fine.
It can be difficult to find the stall current for a particular servo, but 1 Ampere works well as a rule of thumb. This problem shows up nearly every day on the forum.
I'm not convinced that that's the problem here though.
You will notice that I mentioned TWO possible problems in reply #1.
I tested it again, this time purposefully stalling the 5v cooling fan and there was no shutdown.... oh, but then I realised the cooling fan is brushless. I tried a brushed motor of similar size to the servo motor and, yeah. You are entirely correct. Well, this has been a learning experience.
I'll have to source a smaller servo I guess. I'm stuck with the 1amp supply. Thanks for your help. I can't immediately solve it, but at least you've stopped me pulling my hair out about the unknown error.
jremington:
You will notice that I mentioned TWO possible problems in reply #1.
I may have grasped it? It's the TP4056 causing the problem. The datasheet seems to say 1050mA max output, so I reckon its protection is shutting it down. My hunch is that by adding an electrolytic between the TP4056 and the boost converter, I'll solve it by providing a buffer.
I would have tested it already instead of asking on here, but I only have one boost module, and I foolishly got over confident a few days ago and it's hot glued to death so putting a cap between the modules may prove destructive. Before I embark on a potentially one-way endeavour... am I on the right lines here?
For a boost converter, (power out) = 0.8*(power in), with a margin for error. Some are a bit more efficient.
That means that a boost converter supplying 6V at 1 A, will draw about 2.5A from a 3V source. That input current can overload some converters so you have to consider both input and output current rating.
SOLUTION for the benefit of google searchers: I can't solder due to the aforementioned "hot-snot," but I did manage to pull off a minor act of finger contortion and hold a 100uF (25v) cap on the TP4056 output whilst plugging in the servo to my board. That's the answer: Add a decent sized cap between your TP4056 and the 5v boost converter.
Thanks, jremington, my train of thought would have not gone down that track without your assistance.
The "Solution" didn't work. I got a bit overexcited and should have tested more than once before posting that. I think it so happened that the commutator was in a favourable startup position or something, because twice now it has worked by shear luck. I'm on my lunch break now but when I finish work I'll try a bigger cap - I don't think that's the proper fix though.
I woke up in the middle of the night and thought why not just use the TP4056 (actually the DW01 battery protection chip) to run the base of a large PNP. That way I can pull whatever current I desire within reason and the battery undervolt protection will still work.
I'll let you know how I get on. I've been googling like made, but can't find anybody else describing the same problem.
jremington:
Take heart, you are not alone! At least 95% of the servo problems reported almost daily on this forum are due to inadequate power supplies.
Thanks for the link! I was looking all over the place for that info. Looking at the quite confusing DW01 datasheet,the chip has over current protection. It'll be that. I'm going to try using it to drive a PNP connected directly to the battery to avoid running the servo through that tiny protected NPN output. I just wish I hadn't hot-snotted everything before finding this issue!
Thank you again. I'm pretty sure I've got a grasp on the problem now thanks to you.