MPPT charger (20A)

After a few prototypes using Arduino boards and AVR 8-bit microcontrollers, the current version of the charge controller is based on 32-bit STM32 ARM MCU. This change was necessary in order to be able to implement a CANopen stack. In addtion to that, the used STM32F072 allows for some additional nice features like USB or a real-time clock.

The prototype of the previous version with 12A maximum current has successfully been tested and is working in a caravan energy supply system now. The PCB is shown in the following picture.

Charge controller PCB

The new version will have 20A charge current. The first PCB is currently manufactured and will be assembled in Jan 2017. A picture of the PCB can be seen here:

Charge controller PCB


  • 20A MPPT charger
  • 55V max PV input
  • 12V or 24V battery output
  • 32bit ARM MCU (STM32F072)
  • CAN communication interface with standard RJ45 jacks
  • USB interface for firmware update and serial monitor
  • Housing for DIN rail mounting
  • Expandable via Olimex Universal Extension Connector (UEXT) featuring I2C, Serial and SPI interface (e.g. used for display, WIFI communication, etc.)
  • Built-in protection:
    • Overvoltage
    • Undervoltage
    • Overcurrent
    • PV short circuit
    • PV reverse polarity (for max. module open circuit voltage of around 40V)
    • Battery reverse polarity (destructive, fuse is blown)


The charge controller is under active development and you are welcome to participate.

Visit the GitHub page for schematics and board layout.