DIY Solar Boost Converter with MPPT Charge Controller

This is a simple solar boost converter and voltage limiter circuit that charges a 12V battery from a 6V solar panel. It also demonstrates MPPT (Maximum Power Point Tracking) capability. When we think of MPPT, we generally think of microcontrollers and complex power computing algorithms, but such computing power is not actually required. Note that this concept may be new to the world.

Two schematics are provided. The first simply illustrates how the boost switching converter topology functions, while the second is a workable DIY schematic. This is recommended for the more advanced experimenter who has an oscilloscope at his disposal. It is also a great experiment for students and those who wish to expand their minds a little.

Schematics of Boost Topology and DIY Solar Booster Circuit

Photos of the prototype

Boost converter theory

Per the boost converter topology sketch, inductor L1 charges when Q1 turns on. When Q1 turns off, L1 discharges into the battery via D1. Performing this simple operation thousands of times per second results in appreciable output current. It is also called inductive discharge. For this to function, the input voltage must be lower than the output voltage. Also, with a solar panel source, energy storage in the form of a capacitor (C1) is required so that the solar panel may continue to output current between cycles.

Boost converter circuit schematic

The circuit consists of essentially three sections including a 555 MOSFET gate driver, 555 PWM modulator and op amp voltage limiter. The 555 with its totem pole output can source as well as sink roughly 200mA and makes a great low power gate driver. The 555 PWM modulator is the classic 555 oscillator circuit. To regulate the C3 discharge time (inductor charge time), pin 5 is held at a regulated 5V.

Voltage limit

Op amp U1A integrates the battery voltage signal when the divided set point voltage is compared with the 5V reference. When the voltage exceeds the setting, the output integrates in the negative direction thus reducing the repetition rate of the PWM generator and limiting any subsequent charging. This effectively prevents overcharging.

Circuit power sourced by the solar panel

To prevent unnecessary battery discharge when the sun is not shining, all circuitry is powered via the solar panel. The one exception is the voltage feedback divider that draws approximately 280uA.

Logic level MOSFET

Since the circuit must operate at low voltages (this one works down to about 4V input) a logic level MOSFET is required. It turns on at fully at 4.5V. The device I actually used was the MTP3055.

D2 voltage clamp

In this circuit, the battery MAY NOT BE DISCONNECTED or the MOSFET will self-destruct when it turns off. Since this is too much to be expected, 24V zener D2 performs a safety clamp function. Without this, I, myself would have destroyed many MOSFETS.

MPPT function

As the solar panel voltage /current increases, the PWM generator increases its repetition rate thus resulting in increased output current. At the same time, additional voltage is applied to the inductor thus increasing its charge current. As a result, the boost regulator really digs in as the voltage increases, or lets up as the voltage diminishes. To achieve maximum transfer of power with full sunlight, potentiometer R8 is adjusted so that the battery charging current is maximized –this is the maximum power point. If the circuit is operating properly, there will be a very shallow peak as R5 is rotated. Diode D3 makes the automatic MPPT adjustment function more sensitive by subtracting a fixed voltage from the voltage difference between the battery and the average voltage across C3. Under lower light conditions, you will find that R3 is not exactly at optimum, but it will not be significantly off. Note that intelligent MPPT controllers can do a better job across the full range, but such improvement is very marginal.

Component values

This circuit is tuned for a 9V, 3W solar panel. Boost regulators tend to be finicky and will not operate over a wide range of conditions –if your system uses a different solar panel power rating, expect problems. The only items that need adjustment are the inductance of L1 and the value of C3. I was surprised that the repetition frequency turned out so low (approx 2kHZ). I started with a 100uH inductor, but it just seemed to work a whole lot better with the 390uH inductor –originally, I wanted about 20kHZ. For best operation, plan to charge the inductor to about 5 to 10 times the solar panel current, and then allow an extended period of time (3X) for the inductor to completely discharge. This allows for acceptable operation when the source gets close to the battery voltage. Note that low resistance inductors offer the best efficiency. The greatest loss actually occurs in the schottky diode, and lowest loss is what these diodes are noted for.

High frequency operation is generally preferable in order to minimize the inductor size. However, for experimentation, use what works best.

Suggested components are indicated on the schematic. Of course, the charger may be scaled for actual requirements.



For the future

  • MPPT solar boost regulator (12V panel to 24V battery)
  • MPPT solar buck regulator (12V panel to 12V battery)

Undocumented words and phrases –for our ESL friends

dig in –idiomatic phrase –literally to dig a hole –in electronics, it indicates extreme effort


Join the conversation!

Error! Please fill all fields.
  • amir

    hi jim.
    forgive me.but I have a silly question.
    since I presented your circuit to some people,there was some discussions about of them ask me some questions and I didn’t had any idea what does he talking about!
    and because of that I had no choice but asking you.
    so,how much is the duty cycle of this circuit?
    and how can I change that?

    • amir

      thank you very much. 🙂

    • Jim Keith

      The duty cycle depends upon three conditions:

      1. Solar intensity and angle of incidence–duty cycle will tend to increase as solar intensity decreases due to reduction of solar panel output voltage.

      2. The difference between the solar panel output voltage and the battery voltage. When there is minimum difference in voltage (e.g. 11V – 9V + 0.5V diode drop = 2.5V), the duty cycle is 2.5V /9V = 28%. When the battery is nearly charged (e.g. 13.9V – 9V + 0.5V diode drop = 4.4V), 4.4V /9V = 49%. The reason for this is that it (dT) takes longer for the inductor to discharge into a low voltage (difference) than a high voltage difference. dT = L * dI /E

      3. When the battery reaches full charge voltage, the duty cycle is greatly reduced by the voltage regulator to maintain the battery at the maximum voltage (14V in this case). Approx duty cycle may be about 10 to 20% and is dependent upon battery leakage and minimum load current (if load is connected).

  • Ben

    Hi jim, how can i use this using 12v panel? Do i need to change some parts?

    • Jim Keith

      Not compatible with 12V panel–a boost regulator can be used only when the source is lower in voltage than the desired output voltage. I have a 12V MPPT buck type regulator on the back burner–hope to publish soon.

  • amir

    Thank you for your circuit.
    How much is The minimum current for this circuit?
    I don’t,I have a science project and I just want to know at how much currency this circuit is working? With my homemade solar panel I can parallel or series the cells,but since it’s a science project I need the exact minimum current and voltage,and I don’t need 3 watts.the minimum is better and cheaper!

    • amir

      hi jim.
      thanks very much for your answer.
      your quick and accurate answer is very helpful.

    • Jim Keith

      I think that it should work OK down to about 0.5W (56mA) from the solar panel, but I recommend 1W (111mA) as a minimum. The circuit, itself, consumes about 10mA. Good luck with your project!

  • Kubik

    Hi Jim,

    I am trying to understand why did you choose the 24V Zener for clamping – I mean, why 24V. Is it based on the 30V maximum Vdss for the particular MOSFET you use?
    I have some higher voltage MOSFETs and Zeners I’d like to use, so I believe that as long as I keep the Zener voltage below the maximum Vdss, I am good, right?

    BTW: some other booster solar chargers use snubber network (100nF+200Ohm in series) across the inductor to reduce the ringing. Do you think it would help in this case, or is the Zener safer solution?


    • Jim Keith

      Easiest way of set up is to make sure that the control is not voltage limiting (battery fully charged). If it is at full voltage, throw a load across the battery for a while to discharge it somewhat–load may remain connected–then adjust R8 for maximum charge current.

    • Kubik

      Hi Jim,

      thanks for the answer. The circuit works so far, the MOSFET survived my experiments thanks to the clamping diode so I didn’t try the snubber network either.

      Could you possibly suggest the best way to set the circuit to the maximum power (without an oscilloscope)? I assume that I should wait for a sunny day and then tweak the R8 to maximum current flowing into the battery. The R2 sets the maximum voltage, thus is should be used to set the output voltage to cca. 13.8V with light load (capacitor and resistor in parallel).

      Would you agree to that?

      Many thanks again,

    • Jim Keith

      Any zener clamp voltage is OK provided that it is substantially above the battery voltage and below the MOSFET voltage rating.

      A snubber across the inductor may be helpful, but I did not evaluate this detail.

  • Rajeev Srivastava

    I want to use it for 12V/20Amp Load, will it work perfectly?
    12V PV and 12V battery. Could you suggest me a good and stable circuit.

  • prince s. owen

    Please I need circuit for 300w panel and 400 amp battery@ 12v

  • Arup

    Hey Mr. Jim !! I am working on my final Engineering Project. Can you give me the details of the components used to implement this project?

  • Willail974

    Hello Jim,

    Thank a lot for your reply
    Could you please inform me when you will finish the MPPT regulator


  • Willail974

    Hello Jim,

    Good job for this circuit, thanks for sharing it !! I very impatient to realise it !! But before, i want your help for some details. For example, what are the modifications of your circuit for charging 12V battery with 12V solar panel. I sorry for my bad english. Thank you !!!


    • Jim Keith

      Hi Willail,
      Per the writeup, it will not work in your application: “For this to function, the input voltage must be lower than the output voltage.” However, it will actually charge, as the higher voltage solar panel (12V nominal, 18V no load) feeds straight through to the battery, but there will be no voltage regulation and it can overcharge the battery –in the case where the sunlight is poor and the input voltage is below the battery voltage, the boost feature will cut in and provide a slight benefit.

      I still have a MPPT buck regulator design on the back burner –hope to finish it within a few weeks. I have so many ideas that it is hard to stay focused.

  • Paul

    Hi Jim,

    Thanks for sharing this great work!

    I have implemented your circuit using a 9V solar panel and a 6V battery. It seems to be working well charging the battery however can you further expound on the initial setup required for the circuit to work efficiently? I’m confused on the R2-10k Potentiometer. Is it correct that this is used to set the voltage seen on pin 2 of the LM358 OpAmp? What voltage should we expect to see on pin 2 of the said OpAmp?


Looking for the latest from TI?