What "imbalance" means
A 48 V Pylontech module is 15 LFP cells in series. They should all sit at nearly the same voltage. The cell spread — highest cell minus lowest cell, in millivolts — measures how far apart they are. At rest, a few mV to about 30 mV is normal.
Why cells drift apart
No two cells are perfectly identical: tiny differences in capacity and self-discharge make them drift slowly. The BMS corrects this by balancing — gently bleeding the highest cells — but only near the top of the charge, when the pack approaches 100 %.
A typical solar setup cycles between, say, 30 % and 80 %, and may not reach 100 % for weeks, especially in winter or with a conservative charge setting. No full charge means no balancing window, so the cells keep drifting. That is the cause in most cases.
How to measure it properly
- Read the spread at rest or at low current; under strong current it widens naturally.
- Look at the trend over weeks, not a single value.
- Compare against the pack's own history: a pack that has always sat at 15 mV and now shows 60 mV tells you more than a fixed threshold.
PylonCheck does exactly this in the cloud: it compares the recent spread with your pack's normal over the previous month and emails you when it widens, with how long it has been since the last full charge.
The usual fix
- Let the battery reach 100 % regularly — once every week or two. In your inverter, check the charge voltage and any "max SOC" limit.
- Give it time at the top. Balancing is slow; a stack that touches 100 % for a minute and immediately discharges balances very little.
- Watch the trend. Within a few full charges the spread should settle back.
Always follow Pylontech's documentation and your installer for charge settings.
When it is not just balancing
If the spread stays high despite regular full charges, if it always concerns the same module, or if that module also shows a lower SOH or higher temperature, talk to your installer with the history in hand — that is precisely what the CSV export is for.
What not to do
Do not force balancing or change BMS parameters remotely without knowing exactly what you are doing. PylonCheck is deliberately read-only: it explains the imbalance and leaves the fix where it belongs.