User Tools

Site Tools


Words of wisdom: “Any Solar is better than no solar, but having too much solar is difficult. The best solar systems are those which can keep the batteries the happiest. Happy batteries are those which are recharged quickly after depletion.”1) - SternWake

Solar charge controllers


  • solar panels → solar charge controller (SCC) → battery bank
  • the SCC's main job is preventing battery overcharge
  • The two main types of SCC are PWM and MPPT
    • PWM - Cheaper, less efficient
    • MPPT - More expensive, but more efficient
  • SCC LOAD outputs are vestigial features but may be useful for triggering certain loads

about this summary


A solar charge controller (CC) regulates the charging of a battery bank from the solar panels. Counterintuitively, the primary job of the charge controller (CC) is to keep the batteries from being overcharged. Solar panels run at higher voltages than batteries, often at voltages high enough to damage the batteries. The CC provides the correct amount of power the battery needs at the correct time; this is called smart or three stage charging. Charge controllers are generally rated by the amount of output they can provide. This output is shared by charging circuits and LOAD circuits. For example, a 20A controller might be using 18A for charging and have 2A available for LOAD. Controllers operate based on factory- or user-defined setpoints (values) stored internally.

Cautionary example: 12W Unregulated Panel vs. 220Ah AGM Bank


To charge correctly the controller needs to know the precise voltage and temperature of the battery bank. In the best case scenario these measurements are done with an external temp sensor and voltage sense2) that plug into the controller or talk to the controller via bluetooth.

In the absence of external sensors the controller tries to use any internal sensors it might have. The values will be inaccurate:

  • battery voltage will read falsely high during charging, and
  • temperature will read falsely high because of the heat the controller generates from its own electronics

With lead-chemistry batteries both conditions can cause chronic undercharging, a key cause of premature battery failure. Many LiFePO4 batteries have their own low temperature charging cutoff but those that do not must rely on the charger to disconnect when battery temps are ~freezing.


Regardless of type, controllers will have several specifications in common.

  • rating (or “size”) - this is usually the maximum output in A (amps) the controller can produce (charging + loads).3)
  • 12v/24v/48v - this refers to the nominal voltage of the battery bank it will be charging.
  • Maximum input voltage - the highest voltage the controller should ever see from the solar array.4) NOTE: a 50v input max does not mean a PWM controller can make efficient use of mismatched panel/battery voltages; that requires MPPT. See how to choose below.
  • Minimum input voltage - a PWM controller will requires panel voltage ≥ battery voltage to charge. MPPT controllers will usually require a bit more voltage headroom to start/run the MPPT algorithm.5)

Types of charge controllers

[note from frater secessus: PWM vs. MPPT debates can get overheated in forums and comments. It's your money and your build so do it the way that meets your needs.]

The quick and dirty

PWM is much less expensive, and typically makes less power over the course of the day. Panel voltage and battery bank voltage need to be matched.

MPPT is more expensive and but typically makes more power, especially when battery voltage is low. Panel voltage and battery bank voltage can diverge.

The more power / less power dynamic is highly dependent on the setup and use case; there are no definite answers about which is right for you. For example, there are edge scenarios where PWM can make more power than MPPT.6)


images-na.ssl-images-amazon.com_images_i_41pwjorizhl._ac_us160_.jpgPWM (pulse width modulation) controllers charge by connecting panels to battery until a given voltage setpoint is reached. When the desired setpoint is reached the controller switches current on/off to the battery in very fast cycles and in such a duration needed to keep voltage from rising. This time slicing power delivery is called is pulse width modulation, or PWM. Some heat will be generated by the switching. Counterintuitively, the PWM may be cooler the touch when it is running full open because there is no switching going on to limit voltage. This runs the panels at7) battery voltage (Vbatt). Vbatt is usually much lower than the panels' Vmp8) and so PWM generally cannot capture the panels' maximum available power9) under typical conditions. A side effect of this is the PWM controller will have highest power output when Vbatt is highest: Absorption (Vabs) and Float (Vfloat). Setpoints can be tweaked for longer duration Absorption and higher Vfloat to maximize power output of a PWM controller. PWM controllers are simple, inexpensive, and sufficient for many uses, particularly if ambient temperatures are fairly high, paneling is ample, and batteries are not deeply cycled.

Note that there are some simple PWM controllers like Morningstar's SunGuard that run at a single voltage.

For technical reasons PWM can deliver more current than the panels' Imp, even nearing Isc.

panel selection for PWM

PWM makes the most power when coupled with panels whose operating Vmp is very close to the controller's Absorption (“boost”) voltage setpoint. Since ambient temperatures affect operating Vmp the panel's Vmp spec on the label should be about 10% higher than Absorption voltage.


  • 16.28v Vmp panel spec would be optimal for 14.8v Absorption, as we might use for flooded lead acid. 14.8v x 1.1 = 16.28v.
  • 15.62v Vmp panel spec would be optimal for 14.2v Absorption, as we might use for Gel or LiFePO4.

Some thin-film panels have Vmp in that range but most panels are much higher. So we find the lowest Vmp practical. 17Vmp panels would perform better on PWM than 18v or 19v.


images-na.ssl-images-amazon.com_images_i_51bi9ijcsrl._ac_us160_.jpg MPPT (maximum power point tracking) controllers have two defining abilities:

  1. discover (track) and utilize various power points along the panel's power curve. Sometimes this is the maximum power point (MPP); often in a 'dweller context the system needs less power and the controller runs the panels at some other power point. It might be more accurate to call them PPT controllers.
  2. DC-DC downconvert excess voltage to amps - this is possible because MPPT decouples panel voltage (Vpanel) from charging voltage (Vbatt)

When maximum power is required10) the controller will run the panels at Vmp (the maximum power point). At other times the controller will find a less-than-maximum power point to match panel output to system needs. images-na.ssl-images-amazon.com_images_i_512x3hbc6jl._ac_us160_.jpg

Since panel voltage at a given power point is usually too high for system needs11) the controller performs a DC-DC conversion to bring the voltage down to a directly usable level. Because current through a conductor is directly proportional to voltage12) this downconversion effectively turns excess voltage into increased amps.(minus conversion losses).

This ability to decouple panel and bank voltage can result in 10%-30% more power harvested from 12v nominal panels than with a PWM controller, depending on conditions. Average daily production with MPPT is typically ~+15%13), which may or may not justify the added cost on its own.

"boost" effect

When compared apples-to-apples on identical systems with only the controller being different, the “boost” effect is most pronounced:

  • during bulk stage and the early part of absorption stage when the battery can take in the most power
  • anytime the system is fully loaded down (charging and/or loads)
  • when the battery is most depleted (ie lowest resting voltage). This is the result of a cascade of factors:
    • When a battery is deeply discharged it will go into Bulk charging mode until it reaches the Absorption voltage (Vabs). For the purpose of illustration we will assume the bank is depleted to 12.2v (~50% state of charge), a commonly recommended lower limit for deep cycle batteries.
    • PWM controllers can only run the panel at whatever voltage they are charging at right now. In our example that is 12.2v.
    • Nominal 12v panels usually have max power output (Vmp) around 17v.14)
    • when a typical 100w panel15) is run at 12.2v in lab conditions it puts out ~68.32W. The same panel run at Vmp (~17v) would put out 100W. MPPT is capturing more power than the PWM when the battery needs it most.16)
  • during times of greatest PV efficiency17) (clear, cold weather)
  • during times of low irradience (low light levels due to low angle or overcast conditions)18),19)

There are some considerations when designing a system around an MPPT controller.

panel selection for MPPT

MPPT thrives on voltage. In general, we should select panels that have the highest-practical Vmp while staying safely under the controller's voltage input limit. MPPT efficiency tends to be greatest when panel voltage is ~twice the charging voltage. The exact ratio varies by controller so read the docs for specifics.

Note that panels can be run in series to increase their voltage.

when PWM beats MPPT

There are edge cases where an optimal PWM setup can make more power than MPPT for a time. This can happen because MPPT has DC-DC losses that PWM does not, typically ~5%. Since MPPT harvest from the panel is typically 10-30% greater than PWM the DC-DC losses are hidden.

But when PWM controllers and panels are optimally matched (difference between panel Vmp20) and Absorption21) voltage is <5%) then PWM will make a bit more power during Absorption.


see article below

single-stage chargers

images-na.ssl-images-amazon.com_images_i_41gwyw0bt5l._ac_us160_.jpg Single-stage chargers hold the bank at a setpoint (Vdisconnect)22) as long as sufficient solar harvest is present. When the setpoint voltage is achieved the controller current is turned off for some amount of time.23) There are several different ways of turning off the current:

  • PWM - open circuit the panels very rapidly (tens-to-thousands times a second)and for varying lengths of time to hold the voltage setpoint more precisely. Same as PWM controllers above, but in this market range the modulation tends to be cruder/slower and there is only one charging voltage setpoint.
  • shunt - shorts the panels ON/OFF (charge-and-stop, less common)
  • series - open circuits the panels ON/OFF (charge-and-stop, less common)

Simple versions use simple electronics24) or relays to turn charging on until Vdisconnect is reached, at which point charging is turned off off. If/when voltage falls to some lower voltage (Vreconnect) charging begins again. This is sometimes called charge and stop charging or on/off charging. Voltage tends to wander a bit as the charging stops and starts. They are often used where extreme simplicity/robustness is required, or where more complex electronics might cause electrical interference.25)

More complex shunts use electronic components26) to hold the single voltage setpoint with finer accuracy, dissipating switching heat through the backplate or other heatsink. The difference is mainly one of time and therefore stability of the setpoint; a relay shunt might go ON/OFF 1x/second every few seconds if the loads were neatly balanced with solar harvest. The electronic shunt might switch power tens, hundreds or thousands of times each second and may be PWM or quasi-PWM. It would take an oscilloscope to know for sure what's happening under the hood.

For the purposes of this discussion the two types will be grouped together.

…PWM [and] shunt controllers apply full panel voltage, or something close to it, across the battery terminals, at a duty cycle (fast for PWM, slow for shunt) that keeps the battery happy, and the controller monitors the battery voltage and then adjusts the PWM duty cycle accordingly, or in the case of a [relay-based] shunt, it clamps the panel output. – Tx2Sturgis27)

They may be hardcoded with setpoints or allow user configuration. If configurable, you can get better results by choosing setpoints to fit your situation. Usually on cheap shunts there is one setpoint, which we can think of as the absorption voltage (Vabs). Holding Vabs as long as the sun shines might seem weird but to quote Sternwake again:

If your charge controller only holds [absorption] voltage for an hour or two, that is likely not enough time. As long as [there is a load] and you cycle the battery daily, you could set float voltage to 14.8v [to match absorption] without worry. Only when you stop cycling the battery do you need to return float voltage to more regular 13.2v levels. Premature application of float voltage by automatic charging sources is a battery killer.28)

Also see this comprehensive teardown that assesses:

….a rather inexpensive piece of equipment but it doesn’t do a terrible job of being a basic solar charge controller. On the whole, it behaves as one may expect – protecting the battery from excessive voltage and overdischarge, with an integrated dusk timer function and USB outputs…what do you expect for $10-20? Something that works is already a big surprise to me.

with Bnn settings

Units with Bnn settings purport to have Absorption29) profiles for various batteries and configurable Float setpoints.

  • B01 - Sealed lead acid (AGM), typically 14.4v
  • B02 - Gel, typically 14.2v
  • B03 - flooded lead acid, typically 14.6v
  • B04 - 4S LiFePO4 ←- like drop-in LFP
  • B05 - 5S LiFePO4 (uncommon)
  • B06 - 3S Li-NMC
  • B07 - 4S Li-NMC

Absorption duration is unknown.

Example manual for controller with B01-B03 and B01-B07.

Further viewing:

USB converters These aren't controllers in the normal sense, but there are modules that connect to your panel's MC4 connectors and output USB power.

If you only need 5v USB power up to 2.5A per port this may be a workable solution.


[note: this is a placeholder for a possible new entry.] There are DC-DC converting charge controllers (DDCCC) appearing on the market that claim to be MPPT but do not actually track power points (maximum or otherwise). They do downconvert some excess voltage into amperage. See this blog post.


Most charge controllers that convert voltage do it by bucking (reducing) panel voltage down to the appropriate charging voltages.30)

Boosting (voltage-increasing) controllers do exist (example) but they are niche products. In most cases it makes more sense to increase panel voltage with serial wiring.

how to choose

PWM is a reasonable default choice in typical scenarios31); they work well enough and are inexpensive. PWM controllers can cost half or a third of their MPPT workmates for any given rated output.32) If more power is needed (and there is physical space) additional PV can be added to match the charging output of an MPPT charger, often at a lower cost. [There are no prizes for fanciest or most expensive charge controller! Do what is best for you – frater secessus]

There are also edge cases where PWM can actually make more power than MPPT. An example of this might be low-Vmp poly panels during Absorption stage in very hot weather, due to MPPT DC-DC conversion losses and temperature derating.

MPPT is effectively required when:

Further reading: an excellent and readable whitepaper by Victron (PDF).

MPPT may be a better fit when:

  • the existing PWM system is not providing enough output but is close (like 10%-20% shortfall)
  • nominal 12v panels have a relatively high Vmp (>=18v) for reasons discussed here.
  • battery banks are cycled deeply on a regular basis so more time is spent at low Vbatt where PWM struggles.
  • with deeply-discharged banks of low internal resistance (AGM and especially lithium). Their voltage will take more time to rise from deeply-cycled levels.33)
  • charging is by solar only; no generator, shore power, or alternator charging to help.
  • if temperatures are very low (rising Vmp means increasing output which PWM could not capture)
  • the increase in cost is not an undue burden

Shunt controllers are extremely inexpensive, making them useful for even very small systems, test configurations, and backups.

Shunt may be the best fit::

  • when price point is critical, as in shallow-cycling configurations
  • when very little space is available to mount the controller
  • when used off-grid with deeply-cycled lead banks (eternal absorption)
  • Their simple ON and OFF setpoints may also make them useful for holding lithium chemistries at quasi-Float voltages.

See also shunt tweaking.

should I upgrade my PWM to MPPT?

If the system has changed and now MPPT is required for one of the reason above, then yes.

But most people consider this switch to make “more power”, forgetting that solar only makes power when it is demanded.34) If you are presently consuming every watt the system can make then, yes, replacing PWM with MPPT will likely increase your harvest by ~15%. If you aren't hammering the system then +15% is immaterial; there is no difference in the performance of a 150mph car and a 165mph car in a school zone.

So the questions are:

  1. do you need more power than you are getting now?
  2. would +15% be enough to meet your needs
  3. if so, would you pay [whatever the MPPT costs] to get that +15%?

There is a saying in solar circles that “adding another panel is a better deal than upgrading from PWM to MPPT.” This may or may not be true in your particular use case.

multiple charge controllers

Multiple controllers (with separate arrays) can be used to charge a common bank. The controllers should be configured with similar charging setpoints for the greatest efficiency.35)

sizing your charge controller

NOTE: in no case can the panel voltage limit be exceeded.

As with inverters, sizing the controller correctly will help system efficiency and save money. An oversized CC will have unnecessarily high parasitic drains as it powers itself and will cost more, weigh more, and take up more space. An undersized CC will either not perform well (MPPT) or be damaged (PWM).


PWM controllers are sized based on the maximum input power they will ever see.

One formula is something like (panel wattage / 13) * (1.2 oversize for safety) = charge controller amps.36) A faster, cruder method is (panel wattage / 10) = charge controller amps.


MPPT controllers are sized based on the average power they will see.

The approach is different because

  • MPPT are expensive
  • MPPT can trim incoming power to avoid exceeding their output rating

So MPPT controllers generally have more panel put on them than their rating would suggest (“overpaneling”).

There are a few ways of calculating this. The Victron MPPT calculator is quite good. It will generally suggest 10-30% overpaneling.

You can ballpark it manually by dividing *panel wattage / 14.25v37)). Example:

400w / 14.25v = 28.0702A

  • 28.0702 / 25A candidate = 3.0702A. (3.0702A / 25A) = 12.28% overpaneled. On the lower end of Victron's overpaneling recommendation.
  • 28.0702 / 20A candidate = 8.0702A. (8.0702A / 20A) = 40.35% overpaneled. This exceeds Victron's overpaneling recommendation. 40% overpaneling might be fine at higher latitudes like Canada or Alaska, but the controller would be maxxed out quite often elsewhere.

Conclusion: 25A is appropriate for 400w of panel.

25A? 20A?

  1. (28.0702A - 25A) =


this section has been moved.

Using LOAD output

It is common for charge controllers to have a LOAD output for powering (or switching) loads. A common-and-understandable misperception is that it is there to run your loads. Kinda.

historical use

LOAD terminals were originally used to control nighttime lighting, like pathway or garden lights. These are relatively small, resistive loads. Power to the LOAD terminal could be associated with sun (or lack of sun) and/or battery voltage.

present use

In practice the LOAD terminals typically are either ignored38) or used as low voltage disconnect power relays. You can define Low Voltage Disconnect (LVD) and Low Voltage Reconnect (LVR) setpoints to protect the battery from excessive discharge.

why loads aren't powered from LOAD terminals

The load outputs take power from the battery terminals…. the only advantage in using the load terminals is displayed info and the ability to disconnect the load at programmable voltage levels. – mikefitz39)

Some loads are inappropriate for the LOAD output. Morningstar says:

Heavily inductive or capacitive loads such as pumps, motors, compressors, and inverters should not be wired to the controller’s Load terminals. In addition, loads exceeding the Load Current Rating of the controller should not be connected to the controller’s Load terminals.40)

elsewhere they say:

Inductive loads can generate large voltage spikes that may damage the controller’s lightning protection devices.41)

although an exception is made for the SunSaver MPPT which “Handles inductive loads without problems.”42)

One can run loads heavier than the controller is rated for (or inductive/capacitive loads) by connecting those load[s] to a relay43), which is in turn connected to the LOAD output. This still allows for Low Voltage Disconnect because the CC will turn off power to the LOAD output, which turns off power to the relay, which turns power off to the load.

You may also be able to use the LOAD output to create a separate 12v circuit for non-essential ("opportunity") loads.

Note: in wind and hydro power applications the output can be sequenced so that LOAD is activated only when batteries are fully charged. This is called a “dump load” because those power sources need to be able to “dump” excess current to prevent damage to themselves. Dump loads are not necessary in solar because panels can be open- or short-circuited without damage.

connection order

Solar charge controllers use the battery bank to provide a reference voltage for operation. For this reason the battery should always be present when solar panels are connected. This suggests a particular order for connection/disconnection/resetting:

  1. disconnect solar panels
  2. disconnect battery
  3. wait a moment
  4. connect battery, wait for controller to power on
  5. connect solar panels

For an overview of official procedures by manufacturer, see this post.

positive ground controllers

Some controllers are labeled or described as “positive ground”, often by their competitors. The term is incorrect and misleading:

… “positive ground” terminology is wrong. There is nothing connecting positive supplies to chassis ground, earth ground, or any other ground. – Trebor English44)

A more accurate term would be Low Side Switched Controllers (LSSC hereafter). A how and why of low side switching is found at the end of the article. These LSSC can be incorporated into your camper's electrical system as long as:

  1. anything powered by the LOAD output does not ground the negative wiring to the vehicle.45)
  2. any communications i/o (like ethernet or other jacks) do not connect to devices that are grounded to the vehicle.46)
  3. solar panels are wired directly to the controller and do not use the vehicle as an electrical path47)

If you are not using the LOAD output, communicating with the controller, or using the vehicle as an electrical path for the solar panels, LSSC (so-called “positive grounding”) doesn't matter.48)

use of LOAD output on an LSSC

If some basic steps are not taken the device may not turn off/on as expected. Here are some appropriate ways to use the LOAD output with LSSC:

  • run all positive and negative wires back to the LOAD output; or
  • run them through buses that lead back only to the LOAD output; or
  • put a relay on the LOAD output and run all the loads through that.49)

low side switching

LSS means switching (turning on-off) is done on the negative (or low) side rather than on the positive (or high) side. Referring to a low side switched PWM controller, Trebor says:

All three plus connections, solar panel, battery, and load, are tied together. Loads are turned on with a switch (transistor) between the load minus terminal and the battery minus terminal. Charging is turned on (bulk) or pulsed with a switch between panel minus terminal and battery minus terminal.50)

He goes on to explain why this is the case:

The reason for the low side switching is the intersection between physics and economics. N-channel field effect transistors are faster, better, cheaper than P-channel parts. The designer can A) use good parts in a simple circuit or B) use more expensive not so good parts or C) make a complicated circuit that uses 18 volts to control a 15 volt switch.51)

further reading

not a typo, it's called voltage sense
for technical reasons with PWM this will also be the *input* current limit
it is common to leave ~20% margin
although less common, boosting MPPT do exist that can increase incoming voltage in order to charge a higher-voltage battery bank
like high ambient temps + low Vmp panels
or very close to
unless the panels are very hot
adjusted for temperature, insolation, etc
in Bulk or at other time when loads + charging >= panel output
particularly with higher than nominal 12v panels
Iop = 5.6A
there are minor inefficiencies not considered here
i.e. highest voltage
this is a function of higher input voltages
actual, not spec
whether generally or exactly
In a hydro or windpower scenario the power cannot be turned off and is diverted (shunted) instead to a diversion load like water heating, water pumping, etc.
as with Flexcharge
as in a ham shack
like FETs
which they often call Equalization
normal PWM don't reduce/convert voltage in the normal sense; they run the panels ~at bank voltage
12v house power, 12v panels
10A, 20A, 40A, etc
for loads or charging
this appears to be the constant used in the Victron calculator
some well-respected controllers don't have them anymore
PM correspondence with frater secessus
electrical/solar/charge_controller.txt · Last modified: 2024/07/01 22:48 by frater_secessus