What a charge controller actually does
Solar panels produce variable voltage depending on irradiance and temperature. A charge controller takes that variable input and delivers a controlled charging current to the battery at the right voltage for the battery's current state of charge. Without a controller, panels would overcharge and damage batteries. The controller also prevents reverse current flow from the battery back through the panels at night.
There are two fundamentally different ways controllers accomplish this — PWM and MPPT — and they differ meaningfully in efficiency and compatibility with modern panel configurations.
PWM (Pulse Width Modulation)
A PWM controller works by connecting the panel directly to the battery and using rapid switching to regulate current. When the battery is partially charged, the controller allows full current flow. As the battery approaches full charge, it chops the connection on and off (pulse width modulation) to reduce the effective current. This is simple, reliable, and inexpensive.
The critical limitation: a PWM controller forces the panel to operate at the battery voltage, not at the panel's maximum power point voltage (Vmp). If a panel has a Vmp of 18V and the battery is at 12.5V, the controller wastes that 5.5V difference as heat. The result is that you only harvest the panel's Isc (short-circuit current) × battery voltage, not the panel's full rated wattage.
MPPT (Maximum Power Point Tracking)
An MPPT controller contains a DC-DC converter that samples the panel's voltage-current curve continuously and finds the operating point that produces maximum power (the maximum power point). It then converts that higher-voltage, lower-current input to the lower-voltage, higher-current output the battery needs. The conversion is typically 93–98% efficient.
The practical result: with a 200W panel (Vmp 24V, Imp 8.3A) charging a 12V battery, a PWM controller would produce roughly 12.5V × 8.3A ≈ 104W. An MPPT controller would produce 200W × 0.95 (efficiency) ≈ 190W — nearly double the harvest from the same panel.
MPPT controllers also tolerate a much wider input voltage range, which means you can wire panels in series to reduce wire losses on long cable runs from array to controller, then have the controller step down to battery voltage.
| Feature | PWM | MPPT |
|---|---|---|
| Efficiency vs panel max power | 70–80% typical | 93–98% typical |
| Panel voltage flexibility | Must match battery voltage | Wide range (up to 100–150V input) |
| Series panel strings | Not practical | Yes — reduces wire losses |
| Cost | Lower | Higher |
| Best for | Small matched-voltage systems (<150W) | Any system >150W or mismatched voltage |
How to calculate the amperage you need
The charge controller must be rated for the maximum current your array can deliver to the battery. This is not the same as the panel's short-circuit current (Isc) — it's the MPPT output current to the battery.
For an MPPT controller, calculate required amps as:
Required amps = (Total array watts × 1.25 safety factor) ÷ Battery voltage
Example: 400W array, 12V battery = (400 × 1.25) ÷ 12 = 41.7A → choose a 40A or 50A controller. The 1.25 factor accounts for the possibility that panels produce slightly more than nameplate in ideal (cool, bright) conditions, and avoids running the controller at its absolute maximum.
Shopping for charge controllers? Browse current eBay listings → (we earn a small commission; your price is unchanged).
Maximum input voltage: the spec that destroys controllers
Every MPPT controller has a maximum PV input voltage rating — typically 50V, 100V, or 150V depending on the unit. Exceeding this destroys the controller. The dangerous scenario: panels wired in series produce additive open-circuit voltage (Voc), and Voc increases as temperature decreases. On a cold morning with new panels, the actual voltage presented to the controller can be significantly higher than the panel's rated Voc at 25°C.
To calculate worst-case Voc for a series string:
- Find the panel's Voc at STC (usually on the datasheet or back of the panel).
- Multiply by the temperature coefficient of Voc (a negative %/°C figure — around −0.27 to −0.36%/°C for most mono panels).
- Apply the lowest expected ambient temperature at your location. Most MPPT sizing tools use −10°C to −20°C as a cold-weather assumption for safety.
- Multiply per-panel cold Voc by number of panels in series.
- Confirm this total is below your controller's max input voltage with at least 10% margin.
Battery-type settings
Charge controllers must be configured for the correct battery chemistry. Using AGM settings for a LiFePO4 battery (or vice versa) will either undercharge or overcharge the bank. Most modern MPPT controllers allow you to select between:
- Flooded / Wet: Higher absorption and equalization voltages, typically 14.4–14.8V absorption for a 12V bank.
- AGM: Sealed, slightly lower voltages, no equalization, typically 14.4–14.6V absorption.
- Gel: Lower absorption than AGM; gel batteries are sensitive to overvoltage.
- LiFePO4: Typically 14.2–14.6V absorption, no float required (or a low float voltage). Many controllers now include a specific LiFePO4 preset; some require manual custom voltage programming to match the battery manufacturer's specification.
- User-defined: Allows you to input specific bulk, absorption, float, and equalization voltages from your battery's datasheet. Recommended for LiFePO4 if no specific preset is available.
Features worth having
- Display: Real-time PV input power, battery voltage, and charging current. Invaluable for diagnosing issues and confirming your system is performing as expected.
- Bluetooth / Monitoring: Many modern controllers support Bluetooth or RS485/CAN communication with monitoring apps. Victron's VictronConnect app and EPever's SolarStation are commonly cited examples — lets you see historical data and verify charge profiles.
- Load output terminals: Some controllers include a load output that can be programmed to disconnect at a preset battery voltage, protecting the battery from over-discharge without a separate battery protect relay. Useful in simple systems; not present on all units.
- Temperature compensation: Adjusts charge voltages based on battery temperature (lead-acid chemistry benefits from this; LiFePO4 less so). Requires an external temperature sensor that some controllers include.