There are many MPPT solar battery charger projects out there. Most of them are standalone devices that tend to have higher power capabilities, up to 1 KW. This project is a little different and intended to be part of an off-grid low power embedded system. It fits in an enclosure with a small SoC board mounted on top (Beaglebone, Raspberry Pi, etc). It supports up to 100W of solar power so batteries can be charged quickly when sun is available. The main control interface is I2C or UART for easy integration with the host system.
For testing in standalone configuration, a secondary ESP32 board mounted in the case provides WiFi connectivity, monitoring, and control of the charger. A Qt app provides the user interface and streams data from the charger, accessing its I2C registers over TCP/IP.
Features include:
12V lead-acid or LiFePO4 battery charging.
Supports one or two '12V' solar panels in series (up to 45V).
Can draw 75W from a single panel, or >100W from two panels in series.
Software controllable load switch (4A) connected to the battery.
Battery and solar power may be connected or disconnected in any order.
Two external NTC temperature sensors (for battery sensing and general use).
I2C slave as the primary control interface.
Includes a real time clock (exposed as a separate I2C device), for scheduled load control and general RTC use.
Optional RS-485 control interface.
Optional logic-level UART interface, for control or debug.
3D printed case and aluminum heatsink.
Project files are hosted on github, both hardware and software.