Skip to content
PWM solar charge controller with USB charging port
Branch: master
Clone or download
Latest commit 401c0c0 Mar 13, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Mar 13, 2019
LICENSE Initial commit Mar 13, 2019 Initial commit Mar 13, 2019
fp-lib-table Initial commit Mar 13, 2019
libre_solar_template.kicad_wks Initial commit Mar 13, 2019
power_supply.sch Initial commit Mar 13, 2019
pwm_charger_20a.png Initial commit Mar 13, 2019 Initial commit Mar 13, 2019
pwm_charger_20a.sch Initial commit Mar 13, 2019
pwm_charger_20a_bom.csv Initial commit Mar 13, 2019
sym-lib-table Initial commit Mar 13, 2019

PWM Solar Charge Controller (20A)

Development Stage Prototype built, development ongoing (major issues might still be open).

This PWM charge controller is cheaper than the MPPT charge controllers, as it does not contain the internal powerful DC/DC converter necessary for MPPT. The lower production cost and easy manufacturing with larger SMD components makes it ideally suited for solar home systems (SHS) for rural electrification.

The design allows to use either SMD MOSFETs or TO220 THT MOSFETs, which can be easily attached to a heat sink.

PWM charge controller PCB

Schematic: PDF file in repository

Gerber files: PCB ordering documentation

Bill of Materials: BOM export from KiCAD

Firmware: Charge Controller Software repository (Remark: PWM charge controller support not yet fully implemented)


  • 12V/24V battery voltage
  • 20A max. charge current (10A with cheaper MOSFETs possible)
  • 55V max. solar input
  • 32bit ARM MCU (STM32L072)
  • Expandable via Olimex Universal Extension Connector (UEXT) featuring I2C, Serial and SPI interface (e.g. used for display, WIFI communication, etc.)
  • USB charging (single port)
  • Low-side load switching

Built-in protection (yet to be tested):

  • Overvoltage
  • Undervoltage
  • Overcurrent
  • PV short circuit
  • PV reverse polarity (for max. module open circuit voltage of around 40V)
  • Battery reverse polarity
You can’t perform that action at this time.