My Setup#
| Component | Model | Role |
|---|---|---|
| Stream Ultra | EcoFlow Stream Ultra | Inverter + 1.92 kWh LFP battery + 4 MPPT solar inputs (up to 2000W) |
| Stream AC Pro | EcoFlow Stream AC Pro | Expansion battery — 1.92 kWh LFP, no solar inputs, no inverter |
| Parallel Cable | Official EcoFlow AC parallel cable | AC coupling between the two units |
| Solar | 4× 520W bifacial panels | ~2 kW peak, connected to Ultra’s 4 MPPTs |
| Smart Meter | Shelly Pro 3EM | Zero-export / feed-in control |
| Load | go-e EV charger | ~1.4 kW at 6A single-phase |
I purchased the AC Pro to expand my system from 1.92 kWh to 3.84 kWh, based on EcoFlow’s product page claims:
“Surplus solar energy automatically transfers between batteries” “AI-driven load balancing automatically redirects energy from nearby units”
After weeks of data collection, I’ve found that none of this holds up under any sustained household load. And it’s not a firmware bug — it’s a hardware architecture problem.
The Architecture: A 1200W Straw for 2000W of Solar#
The AC Pro has no solar inputs and no DC connection to the Ultra. It charges exclusively through the AC parallel cable. The only path for solar energy to reach it is the Ultra’s 1200W inverter.
flowchart LR
PV["☀️ Solar Panels\n2000W DC"] --> DC["Ultra DC Bus"]
DC --> BAT["🔋 Ultra Battery\n1.92 kWh\nDC direct ~99%"]
DC --> INV["⚡ Inverter\n1200W MAX"]
INV --> AC["AC Circuit\n230V"]
AC --> LOAD["🏠 House Load\ne.g. 1400W"]
AC --> ACPRO["🔋 AC Pro\n1.92 kWh\nAC coupled"]
style PV fill:#ca8a04,stroke:#eab308,color:#fff
style BAT fill:#166534,stroke:#22c55e,color:#fff
style INV fill:#991b1b,stroke:#ef4444,color:#fff
style ACPRO fill:#1e3a5f,stroke:#3b82f6,color:#fff
style LOAD fill:#6b7280,stroke:#9ca3af,color:#fff
style DC fill:#374151,stroke:#6b7280,color:#fff
style AC fill:#374151,stroke:#6b7280,color:#fff
When my EV charger draws 1400W, the inverter is fully consumed serving the load (1200W max, grid covers the 400W deficit). The remaining 800W of solar is trapped on the Ultra’s DC bus with nowhere to go except the Ultra’s battery. The AC Pro receives 0W.
flowchart LR
PV["☀️ 2000W"] --> DC["DC Bus"]
DC -->|"800W trapped"| BAT["🔋 Ultra\n+800W ✅"]
DC -->|"1200W max"| INV["⚡ Inverter"]
INV -->|"1200W"| LOAD["🏠 Load 1400W"]
GRID["🔌 Grid"] -->|"400W deficit"| LOAD
ACPRO["🔋 AC Pro\n0W ❌"]
style BAT fill:#166534,stroke:#22c55e,color:#fff
style INV fill:#991b1b,stroke:#ef4444,color:#fff
style ACPRO fill:#991b1b,stroke:#ef4444,color:#fff
style LOAD fill:#6b7280,stroke:#9ca3af,color:#fff
style PV fill:#ca8a04,stroke:#eab308,color:#fff
style GRID fill:#374151,stroke:#6b7280,color:#fff
style DC fill:#374151,stroke:#6b7280,color:#fff
When the Ultra eventually fills to 100%, the MPPT throttles from 2000W to 1200W — cutting 800W of solar permanently. The inverter keeps running to serve the load, but 800Wh per hour of sunshine is wasted while the AC Pro sits partially empty.
This isn’t a firmware decision. It’s physics. 2000W solar - 1200W inverter = 800W trapped on the wrong side of the bottleneck.
The Evidence#
Real data from March 30, 2026. Both batteries started at ~15%. EV surplus charging began at ~11:00.


🔋 Ultra: 99.3% AC Pro: 56.2% gap: 43%
☀️ PV: 1.2kW ← throttled from 2kW, 800W curtailedHow a Typical Day Unfolds#
Solar doesn’t jump to 2000W at 10:00 — it ramps up through the day. This matters because the DC surplus to the Ultra is Solar - 1200W (inverter). At 10:00 when the EV starts, solar may only be ~1200W, meaning the inverter takes all of it and the Ultra gets 0W surplus. The 800W surplus only appears when solar reaches peak ~2000W around midday.
| Time | Solar | Load | DC Surplus to Ultra | AC Pro | Curtailed |
|---|---|---|---|---|---|
| 08-10:00 | 300-1200W | 200W (base) | Charges (~35%) | Charges (~35%) | 0 |
| 10:00 (EV starts) | ~1200W | 1600W | ~0W (inverter takes all solar) | 0W | 0 |
| 11:00 | ~1600W | 1600W | +400W | 0W | 0 |
| 12:00 | ~1800W | 1600W | +600W | 0W | 0 |
| 13:00 (peak) | ~2000W | 1600W | +800W, Ultra ~85% | 0W | 0 |
| ~13:30 (Ultra full) | 2000W | 1600W | 100% | ~35% | 800W |
| 13:30-15:00 | 2000-1500W | 1600W | Full | Still ~35% | 800-300W |
| 15:00-16:00 | 1000W | 1600W | Full | Still ~35% | 0W |
| 16:00 (EV stops) | 800W | 200W | Full | Finally charges | 0 |
| 18:00 | 0W | — | 100% | ~85% | — |
The Ultra starts the EV period at ~35% and needs ~1.25 kWh to fill. With the surplus ramping from 0W→800W, it takes about 3.5 hours to fill — reaching 100% around 13:30. After that, 800W is curtailed during the remaining peak hours.
Daily waste: ~1.0-1.5 kWh curtailed (800W × ~1.5 hours of peak sun while Ultra full). AC Pro stuck at ~35% for 6 hours. Over a 180-day sunny season: ~180-270 kWh wasted, ~€27-40 at Greek rates. The Ultra also accumulates 2-3x more charge cycles, accelerating degradation on the more expensive unit.
It Gets Worse With More Units#
EcoFlow markets “expandable to 11.52 kWh” (6 units) and “expandable to 23 kWh” (Ultra X, 6 units). Same 1200W bottleneck:
| Setup | Total Capacity | Usable Under Load | Dead Capacity |
|---|---|---|---|
| 1 Ultra + 1 AC Pro | 3.84 kWh | 1.92 kWh | 50% |
| 1 Ultra + 2 AC Pro | 5.76 kWh | 1.92 kWh | 67% |
| 1 Ultra + 5 AC Pro | 11.52 kWh | 1.92 kWh | 83% |
With 6 units, 5 out of 6 batteries get 0W under load. The Ultra fills in ~3.5 hours (surplus ramps from 0W to 800W as solar peaks), then 800W is curtailed while 9.6 kWh of empty storage sits idle. Even with zero load, charging 5 AC Pros through a 1200W inverter at 87% efficiency takes over 9 hours — longer than a winter solar day in Greece.
Not Just Stream — Same Problem Across EcoFlow Products#
- Delta Pro + Extra Battery (DIY Solar Forum): Delta Pro at 1.5% while extras at 20% and 60%. EcoFlow: “Differences < 20% are normal.”
- Stream Ultra + AC Pro (VanTour review): AC Pro stuck at 0%, never charged — completely ignored by the system.
- PowerStream (MakeUseOf): Solar curtailed when battery full, no redirect to expansion.
EcoFlow patented a parallel battery equalization solution in 2017 (PWM duty-cycle controlled current distribution). The patent was abandoned and never implemented.
The BMS: Each Unit Is an Island#
Each unit runs a TI BQ76952 battery monitor (source: iFixit) with a GD32F10x MCU. The BQ76952 monitors only its own 16S cell string — it has zero awareness of other packs. No inter-chip communication, passive-only cell balancing (50-200mA within the pack), and SoC estimation left entirely to the MCU. Inter-unit communication is WiFi only — no CAN bus, no shared voltage bus.
This is normal for battery systems. What’s not normal is the firmware doing nothing with the data it has.
Best Firmware Workaround: “AC Pro First”#
The 1200W bottleneck can’t be fixed with firmware, but its impact can be reduced.
Charge the AC Pro first during morning low-load hours, then fall back to Ultra when load kicks in. The Ultra starts the load period at ~15% instead of ~35%, needing ~1.63 kWh instead of ~1.25 kWh to fill — pushing the point of curtailment later into the afternoon when solar is already declining.
| Metric | Current Firmware | AC Pro First |
|---|---|---|
| Ultra SoC at EV start | ~35% | ~15% |
| Ultra fills at | ~13:30 | ~14:30 |
| AC Pro end SoC | ~85% | 100% |
| Solar curtailed | ~1.0-1.5 kWh | ~0.5 kWh |
| Both batteries full | AC Pro never reaches 100% | Both 100% by 17:00 |
This is a workaround, not a solution. The 800W hardware tax remains. But it’s the best achievable outcome with current hardware.
What EcoFlow Should Do#
- Implement “AC Pro First” charging priority during low-load periods — simple firmware change, no hardware needed
- Add a Battery Priority setting — let users choose: AC Pro First / Ultra First / Balanced
- Be transparent about the 1200W bottleneck — “automatically transfers between batteries” is misleading when any load > 1200W blocks all transfer
- Address the scaling claims — marketing “expandable to 11.52 kWh” without disclosing that expansion batteries can’t charge under load is a material omission
How to Reproduce#
- Start both batteries at similar SOC (~15%)
- Let them charge from solar under low load — they’ll track together
- Turn on any sustained load > 500W
- Watch Ultra SOC climb while AC Pro stalls
- Wait for Ultra to hit 100% — observe PV drop from ~2000W to ~1200W
sensor.stream_ultra_*_power_battery_soc # Ultra SOC
sensor.stream_ac_pro_power_battery_soc # AC Pro SOC
sensor.stream_ultra_*_power_pv_sum # Total PV productionCall to Action#
If you observe this behavior:
- Report to EcoFlow support — reference: “Under load > 1200W, AC Pro receives 0W from solar due to inverter bottleneck”
- Post data in the EcoFlow community forum
- Reference EU Directive 2019/771 if you purchased the AC Pro based on the “automatic energy transfer” claims — goods must conform to the seller’s advertising
- Consider the Stream Ultra X (3.84 kWh single unit) instead — it eliminates the inter-unit bottleneck
Updated April 1, 2026: Added root cause architecture analysis, scaling analysis, community reports, BMS details, and “AC Pro First” workaround. Original post: March 30, 2026.
PV surplus automation: PV Surplus EV Charging — The Zero-Export Adventure. If you found this useful, share it — visibility drives fixes.