Maximum Power Point Tracker for Small Wind Turbines

Introduction: Maximum Power Point Tracker for Small Wind Turbines

About: After a degree in micro-engineering in Switzerland, I moved to Russia to discover new landscapes

There is a lot of DIY wind turbine on the internet but very few explain clearly the result they obtain in terms of power or energy. Also there is often a confusion between power, voltage and current. A lot of time, people are saying : "I measured this voltage on the generator!" Nice! But it doesn't mean that you can draw current and have power (Power = voltage x current). There is also a lot of home made MPPT (Maximum Power Point Tracker) controllers for solar application but not so much for wind application. I did this project to remedy this situation.

I designed a low power (< 1W) MPPT charge controller for 3.7V (single cell) Lithium Ion Polymer batteries. I started with something small because I would like to compare different 3D printed wind turbine design and the size of these turbines should not produce much more than 1W. The final goal is to supply a stand alone station or any off grid system.

To test the controller I built a setup with a small DC motor coupled to a stepper motor (NEMA 17). The stepper motor is used as a generator and the DC motor allows me to simulate the wind pushing the turbine blades. In the next step I will explain the problem and summarize some important concepts so if you are just interested by making the board, jump to step 3.

Step 1: The Problem

We want to take kinetic energy from the wind, transform it into electricity and store that electricity in a battery. The problem is that the wind fluctuates so the available amount of energy fluctuates too. Moreover the tension of the generator depends on its speed but the battery tension is constant. How can we solve that?

We need to regulate the generator current because the current is proportional to the braking torque. Indeed there is a parallel between the mechanical world (Mechanical power = Torque x Speed) and the electrical world (Electrical power = Current x Tension)(cf. graph). The details about the electronics will be discussed later.

Where is the maximum of power? For a given wind speed, if we let the turbine spin freely (no braking torque), its speed will be maximum (and the voltage too) but we have no current so the power is null. On the other side if we maximize the drawn current, it is likely that we brake too much the turbine and that the optimum aerodynamic speed is not reached. Between these two extremums there is a point where the product of the torque by the speed is maximum. This is what we are looking for!

Now there is different approaches: For example if you know all the equations and parameters that describes the system you can probably calculate the best duty cycle for a certain wind speed and turbine speed. Or, if you know nothing, you can say to the controller: Change a bit the duty cycle then calculate the power. If it is bigger it means that we moved in the good direction so keep going in that direction. If it is lower just move the duty cycle in the opposite direction.

Step 2: The Solution

First we need to rectify the generator output with a diode bridge and then regulate the injected current in the battery with a boost converter. Other systems use a buck or a buck boost converter but as I have a low power turbine I assume that the battery voltage is always bigger than the generator output. To regulate the current we need to change the duty cycle ( Ton / (Ton+Toff) ) of the boost converter.

The parts on the right side of the schematics shows an amplifier (AD8603) with a difference input to measure the tension on R2. The result is used to deduce the current load.

The big capacitors that we see on the first image is an experiment: I turned my circuit in a Delon Voltage doubler. The conclusions are good so if more voltage is needed, just add capacitors to make the transformation.

Step 3: Tools and Material


  • Arduino or AVR programmer
  • Multimeter
  • Milling machine or chemical etching (for PCB prototyping by yourself)
  • Soldering iron, flux, soldering wire
  • Tweezers


  • Bakelite single side copper plate (60*35 mm minimum)
  • Microcontroller Attiny45
  • Operational amplifier AD8605
  • Inductor 100uF
  • 1 Schottky diode CBM1100
  • 8 Schottky diode BAT46
  • Transistors and Capacitors (size 0603) (cf. BillOfMaterial.txt)

Step 4: Making the PCB

I show you my method for prototyping but of course if you can not make PCBs at home you can order it to your favorite factory.

I used a ProxxonMF70 converted into CNC and a triangular end mill. To generate the G-Code I use a plugin for Eagle.

Then the components are soldered starting with the smaller.

You can observe that some connections are missing, this is where I make jumps by hand. I solder curved resistor legs (cf. image).

Step 5: Microcontroller Programming

I use an Arduino (Adafruit pro-trinket and FTDI USB cable) to program the Attiny45 micro-controller. Download the files to your computer, connect the controller pins:

  1. to arduino pin 11
  2. to arduino pin 12
  3. to arduino pin 13 (to controller Vin (voltage sensor) when not programming)
  4. to arduino pin 10
  5. to arduino pin 5V
  6. to arduino pin G

Then load the code on the controller.

Step 6: The Testing Setup

I made this setup (cf. picture) to test my controller. I am now able to select a speed and see how the controller reacts. Also I can estimate how much power is delivered by multiplying U and I showed on the power supply screen. Although the motor doesn't behave exactly like a wind turbine I consider that this approximation is not so bad. Indeed, as the wind turbine, when you break the motor, it slows down and when you let it turn freely, it reaches a maximum speed. (the torque-speed curve is a strait line for a DC motor and a sort of parabola for wind turbines)

I calculated a reduction gearbox (16:1) in order to have the small DC motor spinning at its most efficient speed and the stepper motor spinning at an average speed (200 rpm) for a wind turbine with low wind speed (3 m/s)

Step 7: Results

For this experiment (first graph), I used a power LED as a load. It has a forward voltage of 2.6 volts. As the tension is stabilized around 2.6, I only measured the current.

1) Power supply at 5.6 V (blue line on the graph 1)

  • generator min speed 132 rpm
  • generator max speed 172 rpm
  • generator max power 67mW (26 mA x 2.6 V)

2) Power supply at 4 V (red line on the graph 1)

  • generator min speed 91 rpm
  • generator max speed 102 rpm
  • generator max power 23mW (9 mA x 2.6V)

In the last experiment (second graph), the power is directly calculated by the controller. In this case a 3.7 V li-po battery has been used as a load.

  • generator max power 44mW

Step 8: Discussion

The first graph gives an idea of the power we can expect from this setup.

The second graph shows that there are some local maximums. This is a problem for the regulator because it gets stuck in these locals maximums. The non linearity is due to the transition between continue and discontinue inductor conduction. The good thing is that it happens always for the same duty cycle (doesn't depend on the generator speed). To avoid the controller being stuck in a local maximum, I simply restrict the duty cycle range to [0.45 0.8].

The second graph shows a maximum of 0.044 watts. As the load was a single cell li-po battery of 3.7 volt. This means that the charging current is 12 mA. (I=P/U). At this speed I can charge a 500mAh in 42 hours or use it to run an embedded micro-controller (for example the Attiny for the MPPT controller). Hopefully the wind will blow stronger.

Also here are some problems I noticed with this setup:

  • The battery over voltage is not controlled (there is a protection circuit in the battery)
  • The stepper motor has a noisy output so I need to average the measurement over a long period 0.6 sec.

Finally I decided to make another experiment with a BLDC. Because BLDCs have another topology I had to design a new board. The results obtained in the first graph will be used to compare the two generators but I will explain everything soon in another instructables.

Arduino Contest 2019

Participated in the
Arduino Contest 2019

Be the First to Share


    • CNC and 3D Printing Contest

      CNC and 3D Printing Contest
    • Anything Goes Contest

      Anything Goes Contest
    • Lamps Challenge

      Lamps Challenge



    Reply 3 months ago

    Have you made any progress using an Anemometer to control your MPPT controller?
    I noticed you have another post on using an Anemometer.
    One control strategy would be.
    1) Create a look up table with a field for each knot of wind speed.
    2) Repeatabley store a variable of the wind turbine rpm/AC frequency that produces the Maximum power point at each wind speed.
    3) Control the current flow to the battery to maintain the rpm/ ac frequency that produces MPPT, and keep updating the variable.
    4) When the wind speed changes go to the field for that wind speed and control to that rpm, then keep updating the variable for the MPPT rpm.

    This would allow the turbine to quickly come to the MPPoint without hunting.


    6 months ago

    Subj: 0V drop across “synchronous rectification”:

    Thank you so much for you inspiration, and last but not least documentation!

    I would like to bring down the power loss of the bridge rectifier close to zero by power mos FETs instead of diodes.

    Is anyone interested in a version using synchronous rectification ?

    I found these two links useful;


    But with similar keywords you will find useful AC-DC step converters that fit your needs and are efficient.

    Especially democratic energy decarbonisation that is st my doorstep, on my roof, at the balcony, needs affordable, yet efficient designs.
    Since voltages of smaller moters tend to be really low, you are stuck without these cool tricks or have to re-wind the coils, which Robert Murray-Smith dies for his PC fan based wind wall construction. Since it is a huge effort to re-wind 100 PC Fans or build 100 synchronous tectifying step-up converters, watch his Darreus based wind wall Mark IV especially. Search (on yt) for
    Robert Murray-Smith wind wall mark IV

    Hope you can glue Rob‘s cool ideas with a micro MPPT together- and if it has 0V drop, of the meagre 2-3V it may generate, the better.

    I hope to find a way to do some continuous transmission with a single core filament cord line of nylon for fishing or cutting lawn or using molybdenum diamond saw wire for wafer cutting systems to transmit mechanical power from each micro wind turbine to a somewhat bigger generator resching a decent efficacy. Since you can regulate the rpm by this, and could regulate the load by some excitation (field?) winding, perhaps additionally to permanent magnets, one has all parameters to gain a directly synchronizing 3ph 400V synchronous generator- you just leave out all power electronics, but probably need some dmall energy storage in the transmission line like a spring buffer to dampen the system to a smooth run and give the continuous transmission some time to regulate it against fluctuating winds eg..

    This was inspired by a 10kW communal wind machine using a hydrostatic transmission with continuously adjustable transmission:

    Experimental Validation of a Hydrostatic Transmission for Community Wind Turbines
    From: Biswaranjan Mohanty et al



    1 year ago

    I think that this is a great project and I like your ideas that you have come up with. I have a couple thoughts here that might worth considering. Well, maybe only one idea. The method of deciding the best power point could be done by having a small weather station "wind" reader turbine installed nearby that would read the true wind speed at that moment. This would then feed your microcontroller with the wind speed and you would have a look-up table in your microcontroller that would directly control your amperage demand that would be associated with that wind speed. Of course there would also be a maximum speed that would force the wind turbine into a short circuit in order to avoid it from spooling up and away. Still, this idea is only practical for that exact wind turbine since the ideal power points for it would be different than for another turbine type. I would think that the little sensored weather station could respond faster to variable wind demands than the main turbine could. of course there probably needs to be a sensor monitoring the battery level since at some point it would be full and the power demand would then cease and then the wind turbine needs to be shorted in order to also avoid a spool up. What do you think? too much hardware? too complicated?


    Reply 1 year ago

    Yes it is clearly possible to measure the wind speed and regulate accordingly. This is what is made in big commercial wind turbine. The only difficult part is to place the anemometer on top of the windmill. Also the inertia of the anemometer and the turbine could be integrated in the calculation. I made a new meteo station with Wifi on a ESP8266. The goal was to measure the wind speed but I could also use it to regulate the current. See my old meteo station: