I have a trinket that I'm going to be powering off of a small lithium ion battery. I was also considering adding a small solar panel to the mix, and using the solar panel to charge the battery. I'm wondering if I can use the trinket itself as a smart charge controller to charge and monitor the battery.

  • I'm not saying you can't. All I'm saying is by the time you do have the equivalent of a "good" Power Management Chip (PMC), you will have used up a lot of trinket resources. But it you are in it to learn - go for it!
    – st2000
    Commented Nov 22, 2016 at 14:37
  • Yeah, wondered if I could simplify it, not make it too complex, something similar to the way Arduino approximates a PID, monitor the voltage and toggle the charge on and off periodically
    – user379468
    Commented Nov 22, 2016 at 14:49
  • If you're new to this then you should consider using LiFePO4 instead. It's a little more forgiving of screw-ups. Commented Dec 22, 2016 at 23:55
  • Why not use a charging+protection IC?
    – aaa
    Commented Jan 21, 2017 at 23:56

3 Answers 3


If you are going to design your own battery management system here are a few issues you will need to deal with:

  1. You need to understand the methods to determine the End Of Charge (EOC). This could be monitoring cell temperature, measuring cell voltage or current for patterns, or integrating current over time (coulomb counter). Different battery chemistries usually dictate which approach to take.

  2. You need to check with the specific battery manufacturer to determine what charge rate you should use for this specific battery. Knowing the chemistry is good. But it is usually best to use the charge rate data from reputable manufactures.

  3. Some batteries can not be completely drained. If not already part of the LION battery, you will need to design a protection circuit to cut the battery off before this happens.

  4. For such batteries, you need to add a trickle charging circuit in case the battery has been overly discharged. Such a circuit only allows a small amount of current in. The current is usually so small that normal monitoring is not necessary. This is a last resort procedure built into most good chargers to recover overly discharged LION batteries.

...this is not a complete list. These are some of the issue which might be considered when designing a secondary battery charger. There is a lot more good information about batteries here if you would like to research this subject in greater depth.


If you have a small solar panel, you probably don't have to worry about limiting the charge current (as the battery will be able to handle more that the solar panel can supply).

So the only thing left to do is prevent over-charge (i.e. disconnect the solar panel if the voltage on the battery goes above 4.2V). Protected cell can do this for you. I'm not knowledgeable enough to know if it's a good idea to rely on this.

Also make sure the solar panel isn't connected when it's dark, as the solor panel will use current when it's not generating it. Though a simple diode will do this trick. But you'd get a 0.6V drop on the diode, so you might want to get some extra efficiency by detecting output and switching the solar panel using the Arduino.

The last problem is overdischarge, unless you have a protected cell. But that's a problem you have, even without the charging bit.

  • 2
    Never rely on the in cell protection. It is there as an emergency fail safe, not part of the battery management.
    – Andrew
    Commented Nov 22, 2016 at 15:42

Try this. It's the Adafruit PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost @ 1A - 1000C.

It's designed for Lipo, but I think it should work for Li-ION

  • well, cost is an issue, was wondering if I could simplify it ... also I want to use a solar cell as the charger, so this chip would not work
    – user379468
    Commented Nov 22, 2016 at 14:48

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.