Battery Cell Imbalance in VRM: Why Snapshots Miss the Problem

Why the Current VRM Cell Imbalance Table Mostly Misses the Point

Battery cell imbalance is one of the clearest early warnings of a degrading lithium pack. Catching it reliably in a monitoring platform depends on looking at the right moment — and in Victron’s VRM, that moment passes while nobody is watching.

The cell imbalance table shows a snapshot: the difference between the highest and lowest cell voltage right now. In a healthy LiFePO4 system, cells spend most of the day in the mid-SoC range where the voltage curve is almost completely flat. A weakening cell blends right in. The divergence only becomes visible when the pack approaches full charge and the BMS activates balancing — a window that can last anywhere from a few minutes to an hour or two depending on system size, balancing current, and how imbalanced the cells actually are.

Check VRM outside that window and everything looks fine. Even if it doesn’t.

The Timing Problem at Scale

On a single installation you can learn when the balancing window typically falls and check then. On a fleet of even a dozen sites, that stops being feasible.

Different systems reach high-SoC balancing at completely different times. A site with large PV and a small battery might get there by 10am. A system with modest panels and a big battery bank might not reach it until mid-afternoon — or not at all on a cloudy day. Time zones make the problem worse. Any fixed check-in time across a multi-site VRM dashboard will miss the balancing event on most systems most days.

This is the core of what the VRM feature request is pointing at: the current table isn’t broken because the data is wrong, it’s broken because the timing of the check almost never lines up with the timing of the event. A snapshot metric for a transient condition is essentially diagnostic-blind.

What Cell Imbalance Actually Looks Like in the Numbers

In a well-balanced LiFePO4 pack, individual cell voltages at top of charge should sit within roughly 20–30mV of each other. A spread creeping past 50–80mV consistently at the peak of charging is worth tracking. Above 100mV on a regular basis usually points to one cell drifting — through capacity fade, elevated self-discharge, or the early stages of an internal fault.

The same cell causing 100mV of spread at 98% SoC will show maybe 5mV of spread at 60% SoC. That’s just the shape of the LiFePO4 voltage curve: almost completely flat through the mid-range, steep only at the extremes. A noon snapshot almost always catches the pack in the flat zone.

What VRM Actually Logs (and Where to Find It)

Victron GX devices do log cell voltage data continuously. The issue is purely about which part of VRM surfaces it. The standard dashboard widgets show current values. The VRM Advanced tab exposes time-series graphs, and you can set the range to the past 24 hours and manually trace where cell voltages diverged.

It’s a workable stopgap for a single system. For a fleet it isn’t realistic — scrolling through 24-hour time-series graphs for every installation to find the one that spiked during its 20-minute balancing window is not a monitoring workflow, it’s archaeology.

Using the Advanced Tab as a Temporary Fix

In VRM, go to the Advanced tab for your site. Set the window to the last 24 hours. Overlay the individual cell voltage channels — the spread will usually appear as a brief divergence near the end of a full-charge event. If your BMS reports cell imbalance as a computed metric, that channel is often cleaner to read than trying to eyeball raw cell voltages.

Setting a VRM alarm on cell imbalance also helps, but threshold calibration matters. Too tight and it fires on every normal balancing event. Too loose and it only triggers when the cell is already well into degradation.

The Case for a Rolling Maximum

What the feature request is really after is a rolling peak: the worst cell spread observed in the past 24 hours rather than the spread at this exact second. This is standard practice in industrial battery monitoring and in EV battery management systems, where peak-of-charge cell deviation is tracked as a primary health metric over time.

A 24-hour rolling maximum would immediately surface any installation where cells diverged significantly during charging, regardless of what time that happened or when the technician is checking VRM. User-configurable windows — 48 hours, 7 days, or tied to the last N complete charge cycles — would handle edge cases where systems only reach a full charge infrequently due to low PV generation or sustained heavy loads.

The data already exists in VRM. The GX device is already logging it. This is a question of surfacing a computed metric — max observed spread over a rolling window — rather than requiring manual time-series inspection to find it.

A Rough Threshold Guide for LiFePO4

Not all imbalance needs immediate action. A practical tier for LiFePO4 systems at top of charge:

  • Under 30mV spread: normal, particularly in newer packs still running passive balancing
  • 30–80mV: track the trend across charge cycles — not urgent but worth logging
  • Consistently above 80–100mV: investigate the individual cell; one is drifting
  • Above 150mV: treat as urgent — this is more likely a degraded or faulting cell than ordinary imbalance

These numbers are rough guides for LiFePO4. NMC chemistry has different voltage curves and generally tighter cell-to-cell tolerances, so the thresholds shift. Pack age matters too — a spread that would be alarming in a new pack may be acceptable in a system that has been running for years and is being monitored closely.

The underlying point stands regardless of chemistry: a monitoring tool that only shows you the imbalance right now is the wrong tool for detecting a problem that only surfaces for twenty minutes at the top of each charge cycle.

Sources


Similar Posts