A completely open MPPT solar charge controller and battery charger

Oliver Galvin 46496076bf tidying 4 years ago
docs 1b18673ff1 First commit 4 years ago
firmware 88eac2ef60 fix formatting 4 years ago
hardware 93817f2149 tidy READMEs: short lines, minor fixes 4 years ago
software 69414b0eff fix and shorten links 4 years ago
COPYING f4c56dec07 Switch of official GPL text 4 years ago
README.md 46496076bf tidying 4 years ago



A free and open MPPT solar charge controller and battery charger


LibrePower uses a Maximum Power Point Tracking algorithm to get the most power possible from solar panels to charge either lead-acid or lithium-ion batteries in various configurations, can display various statistics about the panels and batteries, protects the batteries against over and under charging, can estimate the battery's State of Charge, and records data for logging and analysis purposes retrievable via a serial interface.

From the ground up the design aims to be as power efficient as possible, and use as few components as possible, not only to be environmentally concious, but in order to be a useful tool in making renewable energy accessible to everyone, by being easily and cheaply buildable anywhere. It aims to both be easy to produce and use, and buildable with commonly available parts, tools, with no royalties or expensive proprietary hardware/software. This could allow us to stop relying on cheaply made devices shipped from China that we can't inspect or modify, and use designs that are open source appropriate technology, allowing the user to adapt the design to their needs.

It uses an open source RISCV based microcontroller by SiFive, and is programmed in Rust, a reliable, memory safe and efficient language.

Hardware design is done with KiCad, an excellent and free electronics CAD program.

LibrePower is both completely free hardware and software.

Project Organisation

This project is organised into these directories, see the README.md files in each for more information about the subprojects. All are GPLv3 licensed, see below for details.

  • /firmware - Code for the firmware that runs on the microcontroller, build instructions and prebuilt images.
  • /software - Program which runs on a PC for configuring, monitoring, updating, or getting data from the controller.
  • /hardware - KiCad project with hardware designs, schematics and PCB layout. Also a bill of materials and manual.
  • /docs - Extra documentation, notes, plans, theory of operation etc.


Copyright (C) 2018 Oliver Galvin

This applies all files in this repository, see COPYING for the full text.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

Email: odg at riseup dot net
PGP: 491E 0D9E E7AA 9E15 D089 950A 7879 6625 7046 CC21