01 MPPT vs. PWM Controllers

Solar Testing MPPT vs. PWM

In the spring of 2014, early May to be exact, I set up a series of tests to compare MPPT controllers to PWM controllers for charging a LiFePO4 battery bank. Some on the net professed that an MPPT controller simply won’t work with LiFePO4 batteries because the voltages are higher and an MPPT’s boost works off the differential between panel voltage and battery voltage. The reality is that while a LiFePO4 battery has a nominal voltage of around 13.2V, and stays there most of the time, it is also a bank that for a solar array is very hard to raise the voltage of. I knew this net theory to not to be the case because I use an MPPT controller on my own vessel.

MPPT In a Nut Shell:

An MPPT controller utilizes excess panel voltage, in bulk charging, and turns it into usable charging current.

MPPT vs. PWM Closer Look:

Because the battery essentially determines the current which can flow into it, when the controller reaches absorption voltage, MPPT gains over PWM are only possible during BULK charging. This is important!

What is BULK charging?

Bulk charging simply means the battery terminal voltage has not yet risen to the limiting voltage or the controllers absorption voltage set point. Think of a solar controller as a bulk charger then a voltage limiter and it becomes much easier to picture what is actually happening.

Bulk Charge:

In bulk charge the solar panel is providing all it possibly can based on the conditions presented to the panel. These conditions include solar irradiance, shade, panel angle/orientation and panel temperature. In bulk mode the battery terminal voltage is at its lowest and has not yet risen to the controllers limiting voltage.

During bulk charging the battery terminal voltage slowly rises to the absorption or the limiting voltage level. With an MPPT controller bulk charging is where the voltage differential between the panels voltage and the battery voltage are the widest. A larger difference between solar array voltage and battery terminal voltage means the MPPT controller can effect more boost by using the excess panel voltage and converting it into usable charging current.

Absorption Charging:

In absorption charging the battery can not continue to take all the current the panel can provide so the voltage climbs to the limiting voltage where the controller now enters a PWM or pulse width modulation mode. In PWM (absorption) the controller only allows enough current from the panel so as to not over shoot the controllers voltage limit.

In absorption mode an MPPT controller is doing virtually the identical thing a PWM controller is, limiting the voltage to the battery to the preset level. The battery decides how much current it can take at that particular SOC and voltage thus no “boost” can take place. MPPT boost only occurs during bulk charging with an MPPT controller. There is no real quantifiable boost benefit of an MPPT controller once the batteries have attained the limiting voltage, only in bulk.

All 12V nominal solar panels are in the 17-19V range and lead acid batteries charge at 14.1V to 14.8V depending upon brand, type and chemistry. This means that extra panel voltage goes to waste with a PWM controller.

With a PWM controller in bulk charging the panel is essentially direct connected to the battery. This means the panel voltage becomes identical to the battery terminal voltage, minus any wiring voltage drops of course, and the panel slowly increases battery voltage to the absorption level.

Because of this direct connection the excess voltage is simply not used as efficiently as it could be. Once at absorption voltage the PWM controller limits the voltage to the absorption set point just an an MPPT controller does. There are no gains or boosts in bulk with PWM and the extra panel voltage simply goes to waste.

So how does this apply to LiFePO4 or large lead acid banks?

Because the LiFePO4 battery is a very stubborn source to move or increase the voltage on, the solar controller remains in bulk mode for much longer than it does with lead acid batteries. The 400Ah bank seen here only charges to a max of 13.8V but with the solar panels in this test it would not come up to 13.8V until the battery was at nearly 99.5% SOC. In contrast a typical AGM or flooded lead battery will come up to 14.4V significantly easier and significantly faster with the same current source. This higher absorption voltage 14.4V vs. 13.8V means less MPPT boost towards the tail end of bulk. Longer bulk times mean longer boost times for MPPT controllers. The MPPT controller on our boat is almost always in bulk mode with the LiFePO4 bank.

The Test Bench

Data Capture:

For this test I set up the Bogart Engineering Pentametric with two shunts, one for the MPPT controller & panel and one for the PWM controller & panel. This data was fed into a laptop computer and captured via screen shots for this article. I captured; Battery voltage, panel 1 Amps, Panel 2 Amps, Panel 1 Ampere Hours and Panel 2 Ampere Hours.

Solar Panels & Wiring:

I used two identical Kyocera KD140SX panels. The wires from panel to controller were identical lengths & gauge and used MC-4 connectors at the panel end. All wiring was identical including all crimped terminals. Crimp terminals were made with AMP ratcheting crimp tools and were AMP brand terminals. The panels were placed flat on saw horses, as they would be on a boat, and placed in an unshaded area of my back yard. Each day the panels were swapped to the opposite controller in order to eliminate any panel manufacturing variances. This is why MC-4 connectors were chosen for the panel ends for quick connect nature of them.


In this test I used the inexpensive Genasun GV-10 MPPT controller and the Morningstar PS-15 PWM controller. They can be seen connected in front of the Rogue and MidNite KID controllers. Both controllers were set to GEL voltages but neither controller ever attained absorption voltage.

Other Monitoring:

A Fluke 179 DVM was used for at a glance voltage monitoring of panel voltage and battery terminal voltage. An infrared temp gun was used to periodically shoot the panels for temperature. A Victron BMV-602S was used to track overall SOC of the LiFePO4 battery bank.

From Left to Right:

400Ah LifePO4 battery, Victron BMV-602S (blue light on), NIST calibrated Fluke 179 DVM, Gray wires coming though window from panels, Morningstar PS-15, Genasun GV-10, Bogart Engineering Pentametric data dogger, USB interface & shunts.

02 MPPT vs. PWM Controllers

03 MPPT vs. PWM Controllers

Two Identical Panels

Pictured outside the window are the two Kyocera panels. They were oriented flat to the sky just like they would be on a boat. They were also placed in the most unobstructed point in the yard for the suns track in early May. The wires were swapped each morning before the data logging began.

In the foreground is the LiFePO4 battery and Fluke DVM voltage sense leads..

The Controllers I Tested

It should be noted that beyond PWM vs. MPPT I also tested MPPT to MPPT. I tested the Midnite KID MPPT, the Rogue MPT-3048 and the Genasun GV-10 to see if I could record any differences in performance between the three controllers. I could not.

Contrary to popular misconception not all MPPT controllers are truly a “high performance” MPPT product. To explain this as simply as I can, older MPPT technology would pause charging to check array voltage and find the maximum power point to track to. This was often referred to as “sweep & sleep”… After the pause it would then resume charging again. This pause and observe or sweep & sleep type of behavior can eat into charging performance especially on a boat that moves and the maximum power point or maximum voltage point is ever changing.

Many of the Chinese controllers sold on eBay, and various other places, use this older technology or, in some cases, are flat out lying that they are MPPT at all. I have seen a few of them labeled as “MPPT” that are in-fact PWM. It is a true buyer beware market when dealing with Chinese solar controllers via eBay and other venues.

Higher quality & high performance MPPT controllers, such as the three tested here, use more sophisticated charge algorithms. These algorithms continually test the maximum power point and can adjust output performance in fractions of a second. Midnite, Rogue, Genasun, Morningstar TriStar MPPT’s, Outback and some others are all true high performance MPPT controllers well suited for marine applications.. eBay controllers, sold direct from Shenzhen, who the “F” knows what you are getting?? Heck you might as well go to Vegas, if you like throwing your money away. (wink)

Bottom line is the performance differences were within my equipments range of discernible resolution. Put simply, I noted no performance gains between the Midnite KID, Rogue MPT-3048 & the Genasun GV-10.

That said the differences between these MPPT controllers is in the options, programing ability and voltage and current carrying capability. The Genasun is inexpensive and any real programming changes require it to go back to the factory for a $50.00 charge. It is limited to 10A of maximum output . If the voltages fit your bank then it represents a great value in an MPPT controller and is very, very simple, provided your panel is not bigger than 150W.

The Midnite KID and Rogue MPT-3048 can be adjusted 18 ways from Sunday and both offer on-battery temp sensing. These are both 30A capable controllers.

The Rogue can handle battery banks of 12V, 24V, 36V and 48V and up to 100V of solar array. The MPT-3048 has an excellent computer interface and remote option as well. It is a rather large, heavy & robustly built controller which means out of the way mounting. This is where the remote display panel comes in very handy. The MPT-3048 comes standard with the remote battery temp sensor and is a tremendous value in a 30A full featured MPPT controller.

EDIT: Since this was written the Rogue 3048 has unfortunately been discontinued.

The Midnite KID can handle battery banks of 12V, 24V, 36V and 48V and up to 150V of solar array. It does not however offer a remote panel or computer interface. The marine version of the KID comes standard with the remote battery temp sensor.

If you have batteries that require specific charging parameters you would be wise to invest in a controller that has more options. The Midnite KID or the Rogue MPT-3048 fit this bill as would a Morningstar TriStar 30 MPPT.

Summary of MPPT vs. MPPT Performance:

MPPT Boost Performance Differences = Not Discernible / Three Way Tie

Programing Options = Midnite KID and Rogue MPT-3048 / Hands Down Winners

Best Value In A High Performance MPPT Controller = Genasun GV-10

04 MPPT vs. PWM Controllers

05 MPPT vs. PWM Controllers



The weather for this testing could not have been worse but it is real world. I did not stop the testing for rain, fog or clouds because real weather happens and I wanted realistic data. The data is what it is, and simply represents Maine in the spring… Despite the lousy weather MPPT beat PWM every single day charging the 400Ah LiFePO4 battery.

MPPT Ah’s 7 Day Total = 220.44

PWM Ah’s 7 Day Total = 182.48

Percentage Gain For MPPT = 20.8% Boost

The results are pretty clear but are only representative of this particular testing. Solar performance can vary widely and the results seen here may not be what you will see on your boat. Temperature, conditions, panel locations, batteries, wiring etc. can all play a roll. On average I regularly see & measure 10-20% gains on lead acid and saw almost 21% in this test charging LiFePO4.

Despite early spring weather in Maine the MPPT controller bested the PWM controller netting a nearly 21% gain over the 7 test days, despite horrible conditions.