I'm trying to determine if I need to rethink my circuit for a solar + Li-Ion powered Arduino. Basically a solar powered module with 3.7V Li-Ion backup for night / clouds (to be charged during the day). Being my first go at utilizing solar + rechargeable batteries, I've been looking at this [1] instructable, specifically Part 6.

Essentially my circuit is a solar panel connected to a TP4056 Li-Ion charge controller's IN connectors. I have my BAT+ connected to a 3.7 Li-Ion + terminal and the IN+ boost regulator to boost up to 5V, and likewise with the negatives. My boost regulator then connects to the Arduino.

My worry is that with all these in the same circuit, the charge controller will never stop outputting power to the regulator in order to run the Arduino, which could then cause anything unused to flow into the Li-Ion battery, possibly overcharging it.

Is this a legitimate possibility, or is there just something I've yet to learn more about?

[1] http://www.instructables.com/id/SOLAR-POWERED-ARDUINO-WEATHER-STATION/?ALLSTEPS

  • \$\begingroup\$ Please post more details of your schematic and plans. \$\endgroup\$
    – Triak
    Dec 30, 2015 at 23:00
  • \$\begingroup\$ @Triak Hopefully this sort of explains it... apologies, this would be my first schematic. schematics.com/project/solar-li-ion-25398 The Arduino will have an 915.0Mhz RF transmitter and a light sensor connected to it, running in sleep mode for a majority of the time (only waking when light is detected to send off an RF transmission). \$\endgroup\$
    – dajaffe
    Dec 30, 2015 at 23:34

1 Answer 1


The TP4056 reports that the charge-point accuracy is 4.2V within 1.5%. Your battery is essentially acting as a nice, large pseudo-capacitor in feeding the input of your 5V boost regulator. In an ideal world, if your solar input is sourcing enough power to keep the battery fully-charged, and run the Arduino, I would expect the TP4056 to sit in constant-voltage mode keeping the battery topped off while the boost regulator operates nominally. This would keep the voltage around 4.2V (assuming some hysteresis) and you're set.

The major 'concern' here in my head is that while the battery is a beefy enough device to feed your boost regulator, I don't know how the TP4056, which appears to be a mass-market ASIC out of Shenzen for consumer devices, deals with a potential switching load on its output. You don't want a scenario where the boost regulator causes such ripple that the TP4056 oscillates wildly; luckily, you have a large reservoir known as a battery on the line, so it should bear the brunt of the load. I assume it was at least considered, thinking about the types of product the chip ends up in, but the boost regulator will apply some ripple to the battery as it continuously switches current into its inductor. I've seen enough projects and products do this that damage is not going to happen, but I'd personally get scope waveforms of what's going on on the BAT+ rail.

  • \$\begingroup\$ Awesome, thanks. I did read that these charge controllers switch to a constant mode once the target voltage is hit. The part I'm not understanding around that is: with the controller both supplying the battery and arduino (during sunlight), how does the controller know the battery has hit 4.2V? Does the circuit between the controller and arduino read 4.2V as well? Or does the controller only "see" the battery's voltage? \$\endgroup\$
    – dajaffe
    Dec 31, 2015 at 16:07
  • \$\begingroup\$ The controller only sees the voltage of the BAT+ net, which is the same as the battery / the node between the controller and Arduino, and uses that to charge accordingly. Additionally, re-reading the datasheet, looks like it puts itself to sleep when Vin gets to 30mV of BAT+ as well. \$\endgroup\$ Dec 31, 2015 at 16:17
  • \$\begingroup\$ Gotcha, makes perfect sense now. \$\endgroup\$
    – dajaffe
    Dec 31, 2015 at 16:19

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.