I have an outdoor arduino project I'd like to power with a battery + solar panel. I'm a bit of an EE n00b, so would like to make sure I've got the basics right.

I'm using a 3.7v 1800mAh LiPo battery, with the guts of a SparkFun LiPo charger: https://www.sparkfun.com/products/8293

I'm using this solar panel rated for 8V open voltage and 310mA short circuit. I'm going to put in a 5.8v zener diode to limit the voltage coming off the solar panel to the charger.

Here's a (rough) schematic of how I intend to wire everything together. Ignore how the charger is wired in, it's there just to illustrate where the solar (vin) and battery (vbatt) go, nothing else.


simulate this circuit – Schematic created using CircuitLab

My question is - can i have the charger running to the battery and the battery going to the arduino off the same line, or do I need something in between?

  • \$\begingroup\$ ... and forgetting the fact that i have the battery upside-down here... \$\endgroup\$
    – kolosy
    Jul 25, 2013 at 19:45

1 Answer 1


It's not the battery that's upside down, it's the entire circuit! Typically you want ground potentials on the bottom (only.)

That being said, I think your circuit will mostly work, except you need to move the resistor (R1) to be between the + output of the solar panel and the Zener(D1)/input(U2) pin, and probably also lower its resistance significantly. Dropping from 8V to 5V at 300 mA happens at (8-5)/0.3 == 10 Ohms.

Btw: To learn more about electronics, analyze the circuit until you see why the current position of R1 and D1 makes the U2 always see the full output of SOLAR, and all R1/D1 does in the schematic is wasting current.

Finally, the MCP1700 is just a linear voltage regulator, with a maximum input voltage of 6V. That's a pretty inefficient way of taking advantage of the voltage that comes from your panel. When the weather is overcast, the panel will provide less voltage than you can use, and you may not charge at all. When the sun is bright, the panel will provide a lot more energy than you can use, and you'll burn it off in all of R1, D1, and U1. I would highly recommend using a micropower harvesting circuit, or at least a buck/boost or SEPIC switching controller that can turn a variety of input voltages to useful output voltage (if not current.)

Finally, LiPo batteries do not like being trickle charged while full. Best case, you metalize the Lithium and the battery dies; worst case you overheat it and start a fire. If you're going to "float" the battery, make sure you "float" it below the "nominal recovery" voltage of 4.05V -- somewhere around 3.85-3.90V would probably be safer. Check the data sheet for your particular manufacturer/battery to get a better indication of where to set the limit.

Finally, if there is sufficient back-voltage prevention in the MCP1700, then it should be safe to leave it as indicated even when the panel is not providing (much) energy. However, many linear regulators, especially ULDO ones, do not like back-power, and thus you may need to add a low-drop diode or a P-channel MOSFET or other switch between the regulator and the battery, with the gate controlled by the presence/absence of power into the regulator.

  • \$\begingroup\$ Page 2 of the MCP1700 data sheet seems to indicate that there's a MOSFET inside the chip that will back-conduct into the panel and D1 when there is no voltage input, so it will drain the battery when the the panel is not charging it. Your best bet is a micropower harvesting solution. If you don't do that, at least put a P-channel MOSFET forward-biased between U1 output and battery, and arrange to drive the gate to ground when there is voltage on the U1 input. \$\endgroup\$
    – Jon Watte
    Jul 25, 2013 at 23:10
  • \$\begingroup\$ The charger part number is a misnomer - I was using it as a stand-in for a TBD charger, but I get what you're saying. thanks. \$\endgroup\$
    – kolosy
    Jul 30, 2013 at 19:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.