A free MPPT battery charge controller for solar and wind power systems

Oliver Galvin 14a1567254 tidy readme 2 years ago
docs 7d430791de add THANKS 2 years ago
firmware 37d92fe1d1 typo 2 years ago
hardware eeb869b22b rename repo 2 years ago
software eeb869b22b rename repo 2 years ago
COPYING f4c56dec07 Switch of official GPL text 2 years ago
README.md 14a1567254 tidy readme 2 years ago



A free MPPT charge controller for renewable energy systems


The Leyden project is a flexible set of designs and code for a charge controller - a device that manages and monitors battery charging from renewable power sources like solar and wind. It does this as efficiently as possible to extract as much power as it can. Importantly, being free (libre), users have the right to inspect and modify the design, so it can be improved and adapt to many different environments.


Leyden uses a Maximum Power Point Tracking algorithm to get the most power possible from solar (photovoltaic) panels, wind turbines, or potentially other renewable sources, to charge either lead-acid or lithium-ion batteries in various configurations. It can display various statistics about the batteries and power source, 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.

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 free electronics CAD program.

Leyden is both completely free/libre hardware and software.


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.


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 - Documentation, notes, plans, theory of operation, images, etc.


Copyright (C) 2018 Oliver Galvin

This applies to 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