Arduino Uno: 12V to Vin but only 3.9V on 5V pin?

Hi,

Let me preface by saying that this is my first post on this forum. I have a strong programming background but only theoretical experience with electronics.

I started by using 2x Samsung 30Q Li-ion batteries wired in parallel connected to a TP4056 charging circuit such as the one here. A quick DMM test shows 4.1V on the BAT +/- terminals and the same voltage on the OUT +/- terminals; all good!

Now as my project will require a number of 12V components that will be operated via a separate relay board (the Arduino will only send 5V digital signals to the relay board), and the fact that the Arduino Uno is input rated 7-12V, I decided to use a common power supply for both the Arduino and the relay board (not connected). Only a minimal number of low-current 5V components will be connected directly to the 5V pin on the Arduino. For testing, only an LCD (like this one) is connected.

Using a DC step-up converter (like this one), I attach the OUT from the charging circuit to the IN of the converter, and DMM test the voltage out of the step-up converter: sweet!

Now, wiring the 12V input to the Arduino Vin and GND pins, the Arduino powers on and executes my test code. Only the LCD display is connected to 5V and another GND pin, and communicating via I2C (A4, A5), no other components are present. Voltage test on the step-up converter OUT pins shows 4.7V. Assumption: 12-4.7=7.3V is being used by the Arduino. A little confused by this, as I expected the Arduino to take the full 12V, but as this is within input specification, I assumed it is not a problem.

Testing the 5V pin output shows 3.4V, so I assume this means my LCD is using approximately 5-3.4=1.6V? Well below its operating specification of between 3.3 and 5V, yet it functions so no complains there. However, this warranted further investigation.

Unplugging everything from the board, resetting it, and testing the 5V pin shows 3.9V. Why so little? What could be causing such a voltage drop? After a fair bit of Googling, and the fact that things still work, I would conclude that I haven't done anything REALLY wrong. Perhaps a bad step-up converter, or maybe I'm just misunderstanding how this works?

Thank you for your help, and I hope I can learn from your experience!

Components don't consume voltage they consume current. And if the output of your converter drops from "sweet" (12V maybe?) to 4,7V then the things connected to it are probably consuming too much current for the converter to handle. But I lost track of what you actually had connected and when so I can't say much more than that. Can you draw a simple diagram showing exactly what is connected where and also exactly where you are measuring the voltages you talk about?

Steve

I attach schematics and DMM readings from all 3 cases I described.

slipstick:
And if the output of your converter drops from “sweet” (12V maybe?) to 4,7V then the things connected to it are probably consuming too much current for the converter to handle.

I believe the Li-ion battery is rated to provide up to 6A of current, with the step-up converter being able to output up to 0.5A at 12V (I realise now that this is too little for my application, but still not enough to fail in this scenario). The Arduino uses around 45mA itself, and the LCD uses around 16mA. This is still well below the 500mA threshold.

So what you are saying is that your converter output drops to 4.7V as soon as you connect even a minimal load to it. That sounds like a bad converter to me.

So what you really need to do is connect everything as in Case 2 (Arduino connected, nothing else) and then measure the voltage at all points. Is the input to the converter/output from TP405 still ~4V? What is the voltage from Vin to GND? 4.7V? If you're putting only 4.7V into Vin then explains the very low voltages at the 5V pin.

The reason has to be that either the converter is bad or the TP4056 module is bad or being misused. Do you have the 5V (USB or otherwise) connected to the TP4056? It is supposed to be a charger after all. Your pictures don't show it.

Steve

From the pics of that module it seems to be an MT3608 based boost converter and it should handle the
current, but I suspect the inductor is undersized, a 4.7uH to 22uH is recommended with > 1.2A handling.
Or its a fake.

Buy something reputable from Pololu or similar perhaps? But check all those voltages first, you might
just have a bad wire somewhere.

@MarkT thank you for your reply

@slipstick:

So what you are saying is that your converter output drops to 4.7V as soon as you connect even a minimal load to it.

Yes, with the minimal load being the Arduino and nothing else.

So what you really need to do is connect everything as in Case 2 (Arduino connected, nothing else) and then measure the voltage at all points. Is the input to the converter/output from TP405 still ~4V? What is the voltage from Vin to GND? 4.7V? If you're putting only 4.7V into Vin then explains the very low voltages at the 5V pin.

The TP405 outputs the voltage of the two batteries in parallel in all cases, so around ~4 (approaching 3.9V as my battery discharges). When plugged into 5V USB source, the TP405 outputs 4.2V (charging voltage of the batteries), even under load.

The converter outputs 12V at no load, and around ~5V +/- 0.5V with the Arduino connected. When the TP405 is being charged, the converter output voltage is slightly higher, or maybe within error.

So would the conclusion be that the converter is at fault? Any particular reason for this, especially given that the current load is more-or-less minimal, or at least lower than the 500mA it is rated for at 12V?

Either way, thank you for your responses!

With nothing connected to the Arduino and just that connected to the converter as you say the load will be around 50mA. So it appears that the converter is incapable of supplying anywhere near 500mA which is what I call faulty. I'd replace it.

Steve

If you are sure the boost converter input voltage is still around 4V when the Arduino is being powered by the converter output, then it seems the converter or something downstream has to be the problem.

But for future reference remember that with switching converters the power in and power out have to be in balance. So if the converter is outputting 45mA at 12V, it will draw 135mA of input current at 4V - actually a bit more than that because of losses in the conversion. And then you are going to dissipate most of that 12V Arduino input as heat when bringing it back down to 5V. So at some point you might want to rethink your power situation in the interest of getting some decent battery life.

If the boost converter is adjustable, just to see what happens I would set it to 5V output and see if it will power the Arduino successfully at the 5V input pin. The reason to do that is that if that works, it would bring the Arduino's regulator into the picture as a possible cause of the problem. If it's faulty and sinking lots of current, that might overload the converter. And it would get very hot. Did you actually measure the 45mA going into Vin?

I've always found it useful to do the mental exercise of assuming, hypothetically, that you've replaced the converter, but still have exactly the same problem. How would you explain that? That exercise will get you to start measuring the voltage under load everywhere, and the current too where you can.

But, you know, it's probably the converter. :slight_smile:

Thank you again @ShermanP and @slipstick for your help,

I am convinced it is the step-up converter. I have now gone and tested both the charging circuit and the converter under other loads (I know, I realise I could have done this before opening the thread, but I was convinced I was missing something obvious with my wiring or logic). The converter struggles to even power a relay board when it is wired to the Arduino, while the charging circuit does not struggle at all with all available devices I had connected to it.

If the boost converter is adjustable, just to see what happens I would set it to 5V output and see if it will power the Arduino successfully at the 5V input pin. The reason to do that is that if that works, it would bring the Arduino's regulator into the picture as a possible cause of the problem. If it's faulty and sinking lots of current, that might overload the converter. And it would get very hot. Did you actually measure the 45mA going into Vin?

Unfortunately, it doesn't haven't an adjustment dial like others I have seen, you can get lower output voltages by cutting some solder pads. I will test it on one other voltage but as I wrote originally, I didn't notice a fault with the operation of the Arduino, the only reason I noticed the oddly low voltage was when I investigated further (although I can now attribute some random power losses I observed to the converter). The converter does not get hot though, and although I was not able to measure the current draw (the Arduino refuses to power up with the DMM connected in series with the power input), the voltage and temperature of the battery makes it seem like nothing is really happening.

I would like to ask for some final advice regarding a better converter; the Li-ion battery I am using is rated for max 15A continuous output at its nominal voltage of 3.6V. I would like to calculate the maximum current that my converter should be able to provide:

Assuming 10A output from the battery (likely much higher than I will ever need), it is able to provide 10*3.6=36W of power. Outputting at 12V, this corresponds to a current of 36/12=3A, assuming no losses. So I should use a converter that is able to supply at least 3A of current at 12V. Is my train of thought correct?

No the converter should be sized for the amount of current you want to draw from it. The fact that the battery COULD supply more current if required is not relevant.

Steve

I agree. The converter should be chosen based on the needs of your project. Then the batteries just need to be able to support that requirement at a minimum.

I hate to keep bringing this up, but if the Arduino won't boot with the meter in series, it could be because you've blown the fuse in the meter. If that's the case, then the Arduino could be drawing a lot more current than you think it's drawing, and that could be the problem instead of the converter.

I guess I'm just having trouble with the fact that the converter produces 12V with no load, but bogs down when the Arduino is connected to it. Have you connected something else as a test load? Resistors even? Something other than the Arduino.

Thanks for the advice about the amperage. I was simply thinking in terms of scalability so that in case I will want to add more load (even if it is momentary), the converter isn’t the immediate bottleneck.

I hate to keep bringing this up, but if the Arduino won’t boot with the meter in series, it could be because you’ve blown the fuse in the meter. If that’s the case, then the Arduino could be drawing a lot more current than you think it’s drawing, and that could be the problem instead of the converter.

You were correct about the multimeter, I have replaced the fuse and I measured the current draw by the Arduino to be around 70mA between the charging circuit and the converter, and about 20mA between the converter and the Arduino itself.

I guess I’m just having trouble with the fact that the converter produces 12V with no load, but bogs down when the Arduino is connected to it. Have you connected something else as a test load? Resistors even? Something other than the Arduino.

I think I may have mentioned it above, but I have tested other components, most notably I tried powering my relay board which takes in 12V power and 5V signal, and the board powers up but is far from 12V so any other components on it refuse to power. I have tried a 12V solenoid directly with the converter now that I know it is probably broken, and the voltage drops to about 3V and the solenoid does not operate. So I think it is safe to assume that it is the converter.

I will purchase another higher quality one and report back, at least so that anyone reading this in the future knows for certain.

Update on the new converter, it seems to be working perfectly, both in terms of powering the Arduino (with a drop in the output voltage of around 10mV, so negligible), and the 5V pin now has 5V as expected. Also, operating relays and the relay board at the same time works well without interrupting power to the Arduino, even at relatively high loads, so it seems it was the converter that was faulty all along. Thank you very much for your help!