Solar Charge Controller Sizing Selector — Reference Guide
Formulas, tables, and worked examples for sizing a solar charge controller — array Vmp/Voc vs controller max input voltage (Voc × 1.25 per NEC 690.7), array Isc × 1.25 amp sizing (NEC 690.8), and matching to real PES SKUs. Interactive calculators on the axis contractor portal.
This is the static reference guide that lives behind every conversation an installer has about controller sizing. The interactive versions — String Sizing Calculator, Compatibility Checker, and Solar System Calculator — live on the axis contractor portal for registered installers. This page lays out the underlying formulas, the safety factors, and the panel-to-controller matching tables so a designer can size a system on paper before pulling up the calculator.
Every charge controller has two hard ceilings: maximum PV input voltage (Vdc-max) and maximum PV short-circuit current (Isc-max). Exceed either ceiling and the controller either faults or self-destructs. The National Electrical Code (NEC) requires cold-temperature and irradiance safety factors on both:
- Voltage sizing (NEC 690.7): String Voc × 1.25 ≤ Controller Vdc-max. The 1.25 factor is the cold-temperature Voc rise for a temperate US climate. In extreme cold climates (Alaska, high-altitude Rockies), some AHJs require Voc × 1.40 instead.
- Current sizing (NEC 690.8): Array Isc × 1.25 ≤ Controller PV-Isc-max. The 1.25 factor is the continuous-duty derating for OCPD on solar circuits. Some designers apply an additional 1.25× (total 1.56×) for OCPD sizing per NEC 690.8(B).
The voltage-sizing formula is:
Where String Voc is the sum of the individual panel Voc values in a series string at Standard Test Conditions (STC).
The table below shows the max modules in series for common panel classes against the four common controller ceilings:
| Panel Voc (STC) | Voc × 1.25 | Max modules @ 100 Vdc | Max modules @ 150 Vdc | Max modules @ 250 Vdc | Max modules @ 450 Vdc | Max modules @ 600 Vdc |
|---|---|---|---|---|---|---|
| 38 V (60-cell poly ~300 W) | 47.5 V | 2 | 3 | 5 | 9 | 12 |
| 42 V (60-cell mono ~330 W) | 52.5 V | 1 | 2 | 4 | 8 | 11 |
| 46 V (72-cell poly ~370 W) | 57.5 V | 1 | 2 | 4 | 7 | 10 |
| 49 V (72-cell mono N-type ~440 W) | 61.3 V | 1 | 2 | 4 | 7 | 9 |
| 52 V (144-cell bifacial ~590 W) | 65 V | 1 | 2 | 3 | 6 | 9 |
| 55 V (topcon N-type ~620 W) | 68.8 V | 1 | 2 | 3 | 6 | 8 |
Read the table by column against your target controller. For example, on a MidNite Classic 250 (250 Vdc) with a 144-half-cell bifacial 590 W panel, the max string length is 3 modules (Voc × 1.25 = 195 V, well under 250 V). On a Morningstar TS-MPPT-600V-60 (600 Vdc) with the same panel, you can string 9 modules — three times the length, one-third the parallel string count, one-third the DC BOS.
The current-sizing formula is:
Where Array Isc is the sum of the parallel-string Isc values.
Charge controllers derate PV input Isc separately from output charge current. A TS-MPPT-60 or MidNite Classic 150 can accept up to ~50 A of PV Isc while producing 60 A of battery charge current (the DC-DC conversion adds current on the output side when the array Vmp is well above battery Vbulk). Below is the practical PV-Isc ceiling for the volume controllers PES stocks:
| Controller | Vdc-max | PV Isc max (input) | Charge current (output @ 48 V) | Max array wattage @ 48 V |
|---|---|---|---|---|
| Morningstar SunSaver-6 (12 V PWM) | 25 V | ~7 A | 6 A | ~100 W |
| Morningstar ProStar-30 Gen3 MPPT | 60 V | ~40 A | 30 A (@12 V) / 15 A (@48 V) | ~720 W |
| Victron SmartSolar 100/50 | 100 V | ~50 A | 50 A | 2,900 W |
| MidNite Classic 150-96A | 150 V | ~64 A | 96 A | 4,800 W |
| Morningstar TS-MPPT-60 | 150 V | ~50 A | 60 A | 3,200 W |
| OutBack FLEXmax FM80 | 150 V | ~64 A | 80 A | 4,800 W |
| Victron SmartSolar 250/100 | 250 V | ~70 A | 100 A | 5,800 W |
| MidNite Classic 250-63A | 250 V | ~50 A | 63 A | 3,150 W |
| OutBack FLEXmax Extreme FM100 | 300 V | ~64 A | 100 A | 6,000 W |
| Victron SmartSolar RS 450/100 | 450 V | ~45 A | 100 A | 5,800 W |
| Victron SmartSolar RS 450/200 | 450 V | ~90 A | 200 A | 11,600 W |
| Morningstar TS-MPPT-600V-60 | 600 V | ~50 A | 60 A | 3,200 W |
| MidNite Barcelona 200A / 600V | 600 V | ~180 A | 200 A | 11,600 W |
| Schneider Conext MPPT 100-600 | 600 V | ~90 A | 100 A | 5,800 W |
Confirm the daily kWh load and target array wattage.
Example — an off-grid cabin with 12 kWh/day daily load, 4 sun-hours of usable irradiance = 12,000 / 4 = 3,000 W of PV nameplate. Round up 20% for cold-weather derate and Battery-to-load losses = 3,600 W target array.
Choose a battery bus voltage — 12 V, 24 V, or 48 V.
For 3,600 W of PV, 48 V is standard (12 V bus would require 300 A of charge current — impractical). 48 V bus needs 3,600 W / 48 V = 75 A of charge current.
Pick candidate controllers that meet or exceed 75 A of charge current @ 48 V.
Candidates: MidNite Classic 150-96A (96 A), OutBack FLEXmax FM80 (80 A), Victron SmartSolar 250/100 (100 A), or two paralleled TS-MPPT-60 or FM60 (2 × 60 A = 120 A).
Design the string — apply Voc × 1.25 against controller Vdc-max.
Using a 590 W bifacial (52 V Voc): Voc × 1.25 = 65 V per module. On Classic 150 (150 Vdc), max 2 modules series. On Classic 250 (250 Vdc), max 3 modules series. On SmartSolar 250/100, max 3 modules series. Design for headroom — a 3-module string at 195 V leaves 55 V of buffer for extreme cold.
Verify Isc — array Isc × 1.25 against controller PV-Isc-max.
Array: 6 modules total (3 series × 2 parallel strings on Classic 250). Per-module Isc ~14 A. Array Isc = 2 parallel × 14 A = 28 A. Isc × 1.25 = 35 A — well under the Classic 250-63A's ~50 A PV Isc ceiling. Design cleared.
Panel Vmp (voltage at maximum power point) is typically 80% of Voc. A 590 W bifacial panel with 52 V Voc has a Vmp of ~44 V. In a PWM controller, the array is pulled down to battery voltage (~54 V bulk on a 48 V bank) — the unused voltage headroom is wasted as heat. In an MPPT controller, the DC-DC converter runs the array at Vmp (44 V) and steps up the current when converting to 54 V output. That's where the +30% cold-weather harvest advantage comes from.
The practical implication: for any string design where Vmp is more than 5 V above battery Vbulk, MPPT is a categorical efficiency win. For very small 12 V RV loads on a single 12 V-nominal 60-cell module (Vmp ≈ 17 V, Vbulk ≈ 14 V), PWM is close to break-even and can be justified on cost.
Example 1 — 400 W RV rooftop, 12 V AGM bank
Load: 40 Ah/day at 12 V (~480 Wh). Array: 2 × 200 W 12 V-nominal panels in parallel (24 V Voc each). Bus: 12 V AGM. MPPT charge current: 400 W / 12 V ≈ 33 A. Spec: MidNite The Kid (30 A MPPT, 12/24 V) or Morningstar ProStar-30 Gen3 MPPT. MidNite Kid at Kid MPPT white ~$300 contractor price.
Example 2 — 3 kW off-grid cabin, 48 V LFP bank
Load: 6 kWh/day at 48 V. Array: 3 × 590 W bifacial in series (3 × 52 V Voc = 156 V; × 1.25 = 195 V — clears 250 V). Array Isc: ~14 A per string. Charge current: 3,000 W / 48 V ≈ 62 A. Spec: MidNite Classic 250 (63 A, 250 Vdc) or Victron SmartSolar 250/70. Classic 250 at CLASSIC250 ~$752 contractor price.
Example 3 — 10 kW off-grid home, 48 V LFP bank
Load: 20 kWh/day. Array: 2 controllers paralleled, each with 5 × 440 W in series (5 × 49 V Voc = 245 V × 1.25 = 306 V — needs 450 V or 600 V controller). Array Isc per string: ~10 A. Charge current per controller: 5,000 W / 48 V ≈ 100 A. Spec: 2× Victron SmartSolar RS 450/100 (450 Vdc, 100 A) or 2× Schneider Conext MPPT 100-600. Victron RS 450/100 at SCC145110512 ~$914 contractor price.
Example 4 — 20 kW off-grid telecom, 48 V AGM
Load: 40 kWh/day. Array: long conductor runs (300+ ft) require high string voltage. String: 12 × 440 W in series (12 × 49 V = 588 V × 1.25 = 735 V — exceeds 600 V, so use 11 modules: 11 × 49 × 1.25 = 674 V — still over. Use 10 modules: 10 × 49 × 1.25 = 613 V — over. Use 9 modules: 9 × 49 × 1.25 = 551 V, clears 600 V). Isc per string ~10 A. Charge current: 20,000 W / 48 V = 417 A total. Spec: 2× MidNite Barcelona 200A/600V or 4× Morningstar TS-MPPT-600V-60 in parallel. Barcelona at MNBCLNA ~$2,094 contractor price.
The tables above are the static reference. For a real design, use the interactive tools that plug live PES catalog data into the sizing formulas:
Registered contractors — free calculators on the PES portal
- String Sizing Calculator — Voc/Vmp string voltage vs controller Vdc-max, temperature-corrected per NEC 690.7.
- Compatibility Checker — controller + battery + panel compatibility against manufacturer-approved lists.
- Solar System Calculator — end-to-end kW-DC / kW-AC / battery sizing for a target daily kWh load.
- Voltage Drop Calculator · Load Balance Calculator
Register for the contractor portal → Free. Verified installers only.
What is the formula for charge controller voltage sizing?
String Voc × 1.25 ≤ Controller Vdc-max, per NEC 690.7. The 1.25 factor is the cold-temperature Voc rise for a temperate US climate. Extreme cold climates (Alaska, high-altitude Rockies) may require Voc × 1.40.
What is the formula for charge controller current sizing?
Array Isc × 1.25 ≤ Controller PV-Isc-max, per NEC 690.8. The 1.25 factor is the continuous-duty derating for OCPD on solar circuits. Some designs apply an additional 1.25× (total 1.56×) for the OCPD device size per NEC 690.8(B).
Why is MPPT more efficient than PWM?
MPPT uses a DC-DC converter to run the array at its maximum power point (Vmp) and step down to battery voltage while stepping up current. PWM pulls the array down to battery voltage and wastes the unused voltage headroom as heat. Efficiency delta is 20–30% in cold weather and 10–20% year-round.
How many modules can I put in series on a 150 Vdc controller?
Depends on panel Voc. Rule of thumb: (Controller Vdc-max) / (Panel Voc × 1.25). A 150 Vdc controller with 52 V Voc bifacials allows 2 modules max; with 38 V Voc 60-cell polys allows 3 modules max.
How do I size charge controllers in parallel?
Divide the target charge current by the max charge current per controller, then round up. A 10 kW / 48 V array needs 210 A of charge current total — either 2× 100 A (SmartSolar 250/100), or 3× 80 A (FLEXmax FM80), or 2× 200 A (SmartSolar RS 450/200 or MidNite Barcelona).
Do I need a separate battery temperature sensor?
Yes for flooded lead-acid and AGM banks, recommended for LFP. Battery bulk voltage shifts ~72 mV/°C on a 48 V bank. Morningstar TriStar ships with an RTS sensor standard; OutBack FLEXmax and Victron SmartSolar require an RTS accessory (~$40).
Where do I find the interactive charge controller sizing calculator?
The interactive tools live on the axis contractor portal at axis.pesdistribution.com/portal/string-sizing-calculator (String Sizing) and /portal/solar-calculator (Solar System Calculator). Registered contractors get free access — register here.
Get contractor pricing + interactive sizing tools
Direct-distributor pricing on all 287 charge controller SKUs. Register for the axis portal to access String Sizing, Compatibility Checker, Solar Calculator, Voltage Drop, and ROI tools — free for verified installers.
Register for contractor pricing
















