Editor Version ×

1.Easy to use and quick to get started

2.The process supports design scales of 300 devices or 1000 pads

3.Supports simple circuit simulation

4.For students, teachers, creators


1.Brand new interactions and interfaces

2.Smooth support for design sizes of over 30,000 devices or 100,000 pads

3.More rigorous design constraints, more standardized processes

4.For enterprises, more professional users

Std edition USB/DC/Solar Lithium Ion/Polymer Charger

No Profile

License: CC-BY-SA 3.0

Published Time: 2022-04-08 04:24:31
  • 2k
  • 2
  • 12

This circuit is a charger for single-cell lithium (Li-Ion) and Polymer (LiPo) batteries. It can sources energy from DC jack connectors (two different dimensions), USB-C and solar panel. It uses MCP73871 which has the peculiarity to smartly adjust the current sank, making it ideal for solar-powered applications, where the available energy could be really scarce and high-varying over time.

The main application of this circuit is recharging a small battery of a weather station, which is a low power system and basically, not easily accessible for maintenance. So the battery life should be extended as much as possible. For this reason, I avoid recharge it at maximum capacity (set a high current threshold to stop it) and I limit the maximum recharge current to 100mA. However, these values can be changed replacing the value of the resistors (look at the schematic).

It does not integrate any protection for LiPo batteries (except the optional thermal monitor), so use batteries that are already shipped with integrated over charge, over discharge, over current, short circuit protection, and, optionally, over temperature protections.

This project is derived from the Adafruit USB / DC / Solar Lithium Ion/Polymer charger - v2. If you just need a cheap alternative to Adafruit board with no special form factor requirements, you can search on (Aliexpress)[https://www.aliexpress.com/af/mcp73871.html].

The main differences with Adafruit's version are:

  • USB-C connector instead Micro USB
  • Add DC Jack Connector 3.5x1.3mm
  • Protection diode on each input, except for USB-C

Main Components

  • Microchip MCP73871
  • USB-C Connector
  • 2x JST-PH 2 pins
  • DC050 Jack connector (5.5x2.1mm)
  • DC045 Jack connector (3.5x1.3mm)


You will need hot air gun for fine-pitched components like USB-C and MCP73871.

NOTE: The through-hole giant capacitor C2 is optional. Its purpose is to increase efficiency when the solar panel cannot deliver enough current (at least 30mA) for a steady recharge. This situation happens regularly (e.g., during sunset, dawn, or cloudy days). In this condition, MCP73871 continues to turn on and off at a frequency that depends on the available solar power. Continuously turning on and off lead to "recharge shots", which reduce the recharge efficiency, especially when frequency increases (>100Hz). You can add a big capacitor to limit this issue, something like hundreds or thousands of microfarads. So, if you need to scavenge each bit of energy, I recommend 4700uF capacitor, which is the "best" value picked by Adafruit's breakout board. However, if circuit size matters, you can select a smaller capacitor without any considerable loss. For example, I had tried 2200uF, which is less than half of the size, and the efficiency didn't noticeably change. If you try different values, let me know!


Except for USB-C, you can safely connect multiple power supplies (max 6V) because they are protected. Even if the battery is not connected, the board can delivery current to the load (4.2V, max current is regulated by R8-PROG1). Since the protection will dissipate a bit of energy (particularly precious limited when using solar panel), you may consider to short and remove a diode, at your own risk.


  • 1.0.0 ⚠: First version. Wrong pinout of 5.5x2.1mm connector, it is easily fixable with a simple wire
  • 2.0.0 ✅: Fixed DC050 connector; larger outline to allow capacitor bending; add plated mounting holes for M3 screws; rounded corner

Versioning conventions

Each printed board has a version. Version advancements are ruled accordingly to Semantic Versioning.

To show the status of each version I use the following symbols:

  • A White Heavy Check Mark (✅) means that it is successfully tested;
  • A Negative Squared Cross Mark (❎) means that it was almost successfully tested (the main functionalities are fine), but there are bugs affecting minor functionalities;
  • A Warning Sign (⚠) means that the board is not usable out of the box but the bugs are fixable in DIY (decent) fashion;
  • A Cross Mark (❌) means that there are some problems that make it unusable;
  • A White Question Mark Ornament (❔) means not tested.
design drawing
schematic diagram
1 /
1 /
Project Attachments
Project Members
Add to album ×


reminder ×

Do you need to add this project to the album?


周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675


周一至周五 9:00~18:00
  • 立创EDA微信号


  • QQ交流群


  • 立创EDA公众号