ATmega32U4-Based Synchronous MPPT Buck Solar Charger

ATmega32U4-Based Synchronous MPPT Buck Solar Charger

You want to maximize the power output of your solar panel? Then you need a maximum power point tracking charge controller! Source files here.


  • Programmable with Arduino IDE
  • Input voltage: 15 – 22V
  • Output voltage: 1 – 14.4V
  • Simple MPPT (Maximum Power Point Tracking) solar charge controller for 18V solar panels
  • Proper buck converter topology, which increases the current on the output side, not just PWM
  • SparkFun Pro Micro 5V, 16MHz or 3.3V, 8MHz (3.3V recommended, more efficient)
  • ACS712 current sensor (5A version) on the output side
  • Voltage dividers for voltage measurement on panel and output side
  • Two N-channel MOSFETs, driven by IR2104 half bridge driver, inductor (synchronous buck converter)
  • Supplied by the panel voltage, so it can’t drain your battery during the night
  • Working frequency 31.5kHz
  • WARNING! This device is not intended to drive 5V USB devices directly. Do it at your own risk!
  • Always use a regulated 5V USB adapter on the output! Otherwise, voltage glichtes may damage your USB device!
  • This controller is COMMON NEGATIVE
  • Three operation modes: MPPT, CV, CC
  • SD card data logger for time, voltage and current. You can import the txt files in Excel
  • WARNING! Always adjust output voltage and output current limits according to your battery type!!
  • Efficiency between 84% and 92% (excluding board supply current of about 75mA)

ATmega32U4-Based Synchronous MPPT Buck Solar Charger – [Link]

Please follow and like us:
Pin Share
About mixos

Mike is the founder and editor of, an electronics engineering community/news and project sharing platform. He studied Electronics and Physics and enjoys everything that has moving electrons and fun. His interests lying on solar cells, microcontrollers and switchmode power supplies. Feel free to reach him for feedback, random tips or just to say hello :-)

view all posts by admin
Notify of

Inline Feedbacks
View all comments
Get new posts by email:
Get new posts by email:

Join 97,426 other subscribers