Solar Homelabs
Flat isometric illustration of three pink charge-controller boxes with vented panels and green status lights, wired together on a purple grid of glowing nodes.
Charge Controllers

MPPT vs PWM Charge Controllers for Homelab Solar

How MPPT and PWM controllers differ for continuous loads: harvest, array voltage limits, LiFePO4 charge profiles, wiring freedom, and when PWM still fits.

By Solar Homelabs Editorial · ·Updated August 22, 2026 · 6 min read

The charge controller is the component people economise on and then replace. For a homelab running around the clock it deserves more attention than it usually gets, because it decides how much of the array’s output actually reaches the battery bank and how the bank is charged once it gets there.

The two technologies are not variations on a theme. They are different circuits doing different jobs.

What each one actually does

A PWM controller is a switch. It connects the array to the battery and modulates the connection to hold the battery at the target voltage. While connected, the array is pulled to whatever the battery voltage happens to be. A module whose maximum power point sits at 36 V, connected to a bank sitting at 27 V, is forced to operate at 27 V. Current is roughly unchanged, so the power that voltage difference represents is simply not collected.

An MPPT controller is a DC-DC converter with a tracking algorithm on the front. It continuously searches for the array’s maximum power point, operates the array there, and converts the resulting high-voltage, low-current input into the lower-voltage, higher-current output the battery needs. The surplus voltage becomes usable charge current instead of being discarded.

Victron’s white paper on the comparison sets this out in the manufacturer’s own terms, and its framing is the useful one: PWM is not “less efficient MPPT”, it is a controller that requires the array voltage to be matched to the battery voltage in order to work sensibly at all.

Side by side

PWMMPPT
CircuitSwitch between array and batteryDC-DC converter with tracking
Array operating voltageForced to battery voltageHeld at maximum power point
Usable modules“Solar format” panels whose Vmp sits just above the bank voltageAlmost any module, including grid-format
Array wiringEffectively parallel, low voltage, high currentSeries strings permitted up to the controller’s PV voltage limit
Cable to arrayThick, short runs preferredThinner, long runs practical
Cold and low-light performancePoor; the voltage surplus is discardedBest case; surplus is converted
Harvest, per Victron’s white paperWithin 10 % of MPPT where the module is voltage-matched and cells are warm; their worked mismatch example collects 81 W where MPPT collects 100 W, a 19 % shortfallReference case, taken as 100 %
LiFePO4 supportOften lead-acid profiles only, sometimes with forced equalisationUser-definable absorption, float and cutoff on most units
Cost per ampLowerHigher

The module compatibility problem nobody mentions first

The harvest difference is the argument everyone leads with. The compatibility constraint is the one that actually decides most builds.

PWM only makes sense with modules whose maximum-power voltage sits a little above the battery voltage: roughly 17 to 18 V for a 12 V bank, and multiples of that for higher banks. Those “solar format” modules exist, but they are a shrinking, more expensive corner of the market. The cheap, widely available, high-wattage modules are grid format, with maximum-power voltages in the 30 to 45 V region and open-circuit voltages higher still. Connect one of those to a PWM controller on a 12 V bank and it operates at roughly a third of its rated voltage, which means roughly a third of its rated power.

So the real comparison is rarely “the same array on two controllers”. It is “an expensive small array on a cheap controller” against “a cheap large array on a more expensive controller”, and at homelab scale the second usually wins on cost per delivered kilowatt-hour before harvest efficiency is even considered.

Voltage limits, and the mistake that kills controllers

Every MPPT controller documents a maximum PV input voltage. The number that must stay under it is not the array’s operating voltage but its open-circuit voltage at the coldest temperature the site reaches, because module voltage rises as cells cool. Datasheets give an open-circuit voltage temperature coefficient, meaning voltage climbs by that fraction for every degree below the 25 °C standard test condition. The reference panel in Victron’s white paper is specified at -0.35 % per °C; read the figure off the datasheet for the module you actually bought rather than assuming a typical one.

A string that measures comfortably inside the limit on a mild afternoon can exceed it on a clear morning at -15 °C. Controllers are destroyed this way every winter. Compute string length against the record cold for the location, not against today’s weather, and leave margin. String design interacts with array size, which is worked through in solar panels for a homelab: how many do you need?.

MPPT units also document a maximum array wattage. Exceeding it is generally permitted and generally safe, because the controller clips output at its rated charge current, but check the specific model’s documentation rather than assuming.

Charge profiles matter more than harvest for LiFePO4

If the bank is lithium iron phosphate, the controller’s charge algorithm is not a detail. Victron’s lithium battery documentation lays out what the chemistry expects, and it differs from lead acid in ways that cheap controllers handle badly:

  • Constant current to an absorption voltage, then a short absorption phase. Lead-acid style multi-hour absorption is unnecessary and holds cells high for no benefit.
  • Float low or effectively disabled, rather than a lead-acid float that keeps the pack at elevated voltage indefinitely.
  • No equalisation, ever. Lead-acid equalisation deliberately overcharges the bank. Applying it to LiFePO4 will push cells past their limit and trip the battery management system, or worse.
  • Temperature-compensated voltage set points, which lead-acid controllers apply by default, are wrong for lithium and should be disabled.
  • A low-temperature charge cutoff, because charging LiFePO4 below freezing damages cells. Discharging cold is comparatively harmless; charging cold is not.

Many low-cost PWM controllers offer only fixed lead-acid profiles, sometimes with equalisation that cannot be turned off. That alone disqualifies them from a lithium build regardless of what they cost. Most MPPT units in the same market expose user-defined set points. When a bank stops accepting charge, a mismatched profile is one of the first things worth checking, and the full diagnostic order is in solar batteries not charging: how to diagnose it.

Wiring freedom is a real cost line

Because MPPT allows series strings, array voltage can be several times the bank voltage. Power is voltage times current, so for the same power a higher-voltage string carries proportionally less current, and voltage drop over a cable run is proportional to current. An array on the far side of a garden or on a detached outbuilding roof is a materially cheaper install on MPPT purely in copper.

PWM forces low array voltage, which forces high current, which forces heavy cable on any run of length. That cost is easy to overlook when comparing controller prices on a page.

When PWM is still the right answer

It is not universally obsolete:

  • Very small systems where the whole array is one modestly sized solar-format module.
  • Warm climates with a well-matched module, where the voltage surplus MPPT would have harvested is smallest.
  • Short cable runs where the wiring penalty is negligible.
  • Lead-acid banks with simple requirements and hard cost constraints.

None of those describes a rack that has to stay up through the worst week of the year. A continuously loaded system is one where every recovered watt-hour shortens the deficit, and where the charge profile has to match the chemistry precisely.

Sizing the controller once it is chosen

Rated charge current is the specification that matters, and it follows from the array and the bank: array watts divided by nominal bank voltage gives an approximate maximum current, which is why higher bank voltages allow smaller, cheaper controllers for the same array. The solar and battery sizer produces the array wattage and bank capacity that feed this calculation, and the whole-system order of operations, from measured load through bank and array to inverter, is in sizing an off-grid solar system for always-on homelab loads.

Everything above is drawn from manufacturer documentation and published modelling references rather than installed hardware. Verify the specific limits, profiles and permitted array ratios in the manual for the controller you buy, and follow local electrical code for the installation.

Sources

  1. Victron Energy - Which solar charge controller: PWM or MPPT? (white paper)
  2. Victron Energy - Lithium Battery Smart manual (charge parameters and BMS behaviour)
  3. Sandia National Laboratories PV Performance Modeling Collaborative - modeling guide

Related