Skip to main content
SolarCalcWorks

MPPT & PWM Charge Controller Sizing Calculator

Size a charge controller on current, then check it on voltage — because the current calculation is the easy half and the cold-weather voltage check is what decides whether the controller survives its first January. Almost no free calculator runs the second one.

  • MPPT and PWM sizing
  • NEC 690.7 cold Voc check
  • Series and parallel string layout
  • 12 V · 24 V · 48 V banks

MPPT Charge Controller Sizing Calculator

Inputs
Controller type
Battery bank voltage
MPPT controller1,600 W array · 4 modules

100A

Why this rating

An MPPT controller converts array power down to battery voltage, so its output current is power divided by battery voltage: 1600 W ÷ 24 V × 1.25 = 83.33 A.

Charge current
83.33 A
66.67 A × 1.25
String Voc (STC)
99.0 V
2 in series
Voc at -10 °C
109.0 V
NEC 690.7(A)(1)
Array Isc
20.60 A
2 strings
  • NoteCold-weather voltage is 109 V against a 150 V limit — 27 % headroom.
  • NoteMany MPPT controllers permit more array watts than this figure implies, clipping output at their rating. That is a manufacturer-specific allowance — check the datasheet before relying on it, because the voltage limit still applies in full.
Calculation

1Array output

2 series × 2 parallel = 4 modules = 1,600 W
Voc 99.0 V · Vmp 83.0 V · Isc 20.60 A

Series adds voltage and leaves current alone; parallel does the reverse.

2Current the controller must carry

1,600 W ÷ 24 V = 66.67 A × 1.25 = 83.33 A

The 1.25 factor comes from NEC 690.8(A)(1) and is not padding: modules produce above their nameplate in cold, bright conditions, which is exactly when the array peaks.

3Cold-weather voltage — the check that matters

99.0 V × [1 + (-0.29 ÷ 100) × (-10 − 25)]
= 109.0 V against a 150 V limit ✓

NEC 690.7(A)(1). Module open-circuit voltage rises as temperature falls, and the governing case is the coldest clear morning before the array warms up — not any operating condition. A controller destroyed this way fails on a transient nobody was watching.

Reference 690.7(A)(1) · 690.8(A)(1) — NEC 2023. Controller current sizing is industry practice rather than a code requirement; NEC 690.8 governs conductors and overcurrent devices. The voltage check is code. Sources and limitations.

NextSize the wire for 20.60 A of array currentNEC 690.8 sizes that conductor from array Isc, which this tool just calculated.

Two checks, and the second one is the important one

Current decides whether the controller can carry what the array delivers. Voltage decides whether it survives at all. Sizing tools overwhelmingly do the first and skip the second, which is backwards — an undersized controller on current runs hot or limits output, while an overvoltage event is instant and terminal.

Current

MPPT: I ≥ 1.25 × array watts ÷ battery voltage
PWM:  I ≥ 1.25 × array Isc

The two differ because the controllers work differently. A PWM controller switches the array directly onto the battery, so the array operates near battery voltage and the current through the controller is essentially array Isc. An MPPT controller converts array power down to battery voltage, so its output current is power divided by battery voltage — higher than the array’s own current, which surprises people.

The 1.25 comes from NEC 690.8(A)(1) and is not padding: modules produce above their nameplate in cold, bright conditions, which is exactly when the array peaks.

Voltage — NEC 690.7(A)(1)

Vmax = Voc(STC) × [1 + (β ÷ 100) × (Tmin − 25)]

β is the module’s temperature coefficient of Voc in %/°C, printed on the datasheet and negative for silicon — typically −0.25 to −0.35. Tmin is the lowest ambient temperature your site sees.

A module with β = −0.29 %/°C at −10 °C gains 0.29 × 35 = 10.15 % over its datasheet Voc. At −25 °C it gains 14.5 %.

NEC 690.7 also caps maximum system voltage at 600 V for one- and two-family dwellings and 1000 V for other buildings, independently of what any controller accepts.

The bank voltage decision

Same 1200 W array, three different worlds:

Bank Charge current needed Typical controller
12 V 125 A Beyond most single units
24 V 63 A 70 A
48 V 31 A 40 A

Controllers are priced roughly by current rating, so this is a direct cost consequence — and it compounds with the cable savings a higher bank voltage brings.

String layout is a trade-off, not an optimisation

More modules in series raises string voltage, which lowers current, which makes the run from the array dramatically cheaper in copper. It also raises the cold-weather voltage, which is the thing that kills controllers.

More strings in parallel does the reverse: safe on voltage, expensive on wire, and past two strings you generally need a fuse per string because the others can back-feed a fault in one.

The right answer is the highest series count that stays comfortably under the controller’s input limit at your coldest temperature. The calculator reports that number directly, so you do not have to iterate.

What the controller rating does not tell you

Maximum PV input power is a separate specification from output current on most MPPT units, and some controllers also specify different maxima per battery voltage. Read both.

Overpaneling — connecting more array than the controller can pass — is permitted by many manufacturers, with output simply clipped at the rating. It can be a sensible choice for a fixed array that rarely reaches full output. It is manufacturer-specific, so check the datasheet, and note that it does nothing to relax the voltage limit.

Frequently asked questions

What size MPPT controller do I need for 1000W of solar?

Divide array watts by battery voltage, then add 25 %. A 1000 W array on a 12 V bank needs 1000 ÷ 12 × 1.25 = 104 A, which is beyond most single controllers. On 24 V it is 52 A, so a 60 A unit. On 48 V it is 26 A, so a 30 A unit. Same array, three very different controllers — which is why bank voltage is worth deciding before you buy anything.

Why does an MPPT controller need more amps than my array produces?

Because it converts voltage down and current up. An MPPT controller takes high-voltage, low-current power from the array and delivers low-voltage, high-current power to the battery. Power is roughly conserved, so a 1000 W array feeding a 12 V bank produces about 83 A of charge current even though the array itself only carries around 8 A. The controller rating refers to its output, not its input.

What is the cold weather Voc check and why does it matter?

Module open-circuit voltage rises as temperature falls. NEC 690.7(A)(1) requires you to calculate maximum system voltage using the module's temperature coefficient at the lowest expected ambient temperature. A string reading 145 V on a summer afternoon can exceed 180 V at −20 °C in full sun before the array warms up. Controllers are destroyed by that transient, not by operating conditions — and it happens on a clear cold morning when nobody is watching.

MPPT or PWM — which should I buy?

PWM suits an array whose nominal voltage matches the bank, such as a "12 V" panel on a 12 V bank, and it is cheap. It works by switching the array directly onto the battery, which pulls the array down to battery voltage and discards the difference. MPPT converts that difference into extra current instead, typically recovering 15 to 30 % more energy, and it lets you wire long high-voltage strings that need far less copper. Above a few hundred watts, MPPT pays back quickly.

Can I connect more solar panels than the controller is rated for?

Many MPPT controllers permit it, clipping output at their rating — a practice usually called overpaneling. It can make sense when the array rarely hits full output, such as a fixed array in winter. But it is a manufacturer-specific allowance and you must check the datasheet, because exceeding it voids warranties on some units. The voltage limit is never negotiable in the same way: exceeding maximum input voltage destroys the controller regardless of what the current is doing.

Last reviewed 2026-08-19. Calculations reference NFPA 70 (NEC) 2023 where a code section applies. Sources, and what these tools deliberately do not model.