DVCC and battery cell voltage balancing - 16S Sunwoda batteries not achieving balance

Yes, another user here has the same behaviour postet if a battery reaches SoC100.

3 batteries (3b) and 2 batteries (2b) chained.

  1. You have the SAME cable length used from b3 AND b2 to the busbar at the wall?
  2. The manufacture allows max. 3 batteries in chain?

Yes cable length is the same. Manufacturer-provided cables were used.

The manufacture allows max. 3 batteries in chain?

Manual says 4 actually (see below, Page 7), however my installer said they had confirmed with them this 5x configuration was perfectly valid and safe.

  1. Se pueden formar torres de hasta 4 baterías en paralelo para un total de 20 kWh de almacenamiento.

That means:

Towers of up to 4 batteries in parallel can be formed for a total of 20 kWh of storage.

I’m honestly thinking of filling a warranty claim with my installer at this point.

When batteries don’t behave themselves you really should contact their support.
BMS’s of commercial batteries are usually locked down, only the manufacturer can adjust it. Only DIY batteries offer that flexibility but then come with other challenges.
There isn’t a lot that can be done from the Victron side to get around BMS problems, you can only really override (lower) charge values.

The batteries within the stack have similar S/Ns? No jumps within the numbering?

Almost sequential yeah (SW0CGA0257270XXX → July 27th 2025 I guess). Label on the box matches for them all saying Production Date 2025-07-28.

1 Like

To conclude, I’d like to say: your BMS is working well. The 50mV cell voltage difference seems to be within the normal tolerance range for the cells used. With a capacity of 5kWh and ~51V, your batteries deliver a substantial 100A. That’s a high figure, which means the internal resistance of the individual cells must be very low. Naturally, this means there will be more dynamic behaviour during charging/discharging, so I don’t consider the 50mV to be critical.

And there’s no need to ‘force’ the stack to SOC100. If the BMS thinks 99% is OK, then so be it. The main thing is that the cells are well balanced. :+1:

If possible in the future comes a new firmware, install this and see what happens. In my case there were significant changes. This was exactly what I expected.

See my stack today: At high SOC the cell voltage drifts a little. But this is normal LFP physics. Minimal differences between the cells (internal resistance and other) has a larger effect but the effects goes down in time.

It’s not a 50mV delta unfortunately. 3.48 vs 3.36 is a 120mV delta unless I’m missing something.

But only at the end… SOC near 100. Your cell have a great dynamic, cause the have a very low internal resistance, I think. And your battery voltage guidlines (post 1) are clear defined. If the stack reaches with these values only 95, 96, 97% SOC it’s good, less stress on the cells, longer lifespan.

Update: balance didn’t improve at all after a whole day. It was like this forever.

Something that comes to my mind but I haven’t tried yet (cloudy day here) is to set absortion to 55.2V, (max voltage according to the specs) float to 55.0V (so cells aren’t stopped at 3.37V as it happens now, 55.0/16=3.4375V), then charge with a low current (2A) and try to reach the 55.2V. If a high voltage in cell alarm triggers, temporarily reduce the limit charge voltage in DVCC and once the alarm goes off, increase DVCC Maximum Charge Voltage 0.1V at a time. I’m not really sure if this is a good approach at all so I’m not testing it yet. I also believe the CMS limiting it at 54.7V makes this a nonsense too but honestly I’m out of ideas at this point.

Please can you post the graphs for

  • Min/Max Cell Voltage

and

  • SOC

when the SOC raises from 80 to 95…. 100 in normal conditions with PV power?

(If the Cell Difference [CD] is there at lower values <= 50 mV it would be very interesting.)

Do you have a tool to view the state of every single battery in the stack, Console Connection or so?

At lower SOC values there’s almost never more than 0.01V delta between cells.

The small drop in SOC you see at ~12:30 was a short grid outage (quite strong winds and a rural area).

Same graph for a balancing attempt earlier this week without a grid outage happening. Same result IMO.

Earlier normal charge (without limiting charge current manually). Showing PV yield.

I hope this answers what you were looking for :folded_hands:.

Do you have a tool to view the state of every single battery in the stack, Console Connection or so?

Sadly no.

You will only see cell voltage variations at the very top and very bottom of charge where the pack voltage tends to change rapidly, being fairly flat inbetween.
Cells, even ones on their way out, will tend to be very close together, voltage wise, inbetween these charge points.
0.2V isn’t the end of the world but it should ideally be closer.

Try discharge the pack deeply and then do an extended charge.

Ultimately if the gap can’t be narrowed it is likely down to imperfect cells and/or mediocre BMS balancing.

It’s that what I thought.. assumed.

At ~13:30 the CD is within the limit, only some mVolts. SoC is at this time near 97? or so.

I would say the first battery b1 (or 2…) in the stack has reached SOC 100, full 100Ah stored in the cells. The other batteries b2-b5 are at little lower SoC states, ~96 or 97 or 98. All cell have the near equal voltage at this moment.

Then you put more energy into the stack. The other batteries b2-b5 take the energy to reach SOC 100. But b1 cannot handle this energy transfer and rises the cell voltage out of the bounds.

This is that what I meant as I sad: It make no sense to “ force “ a stack to SOC100 by manually change the charge parameters. SOC99 or SOC98 is enough if some cells have a very significant cell chemistry as the other ones. Your BMS can switch the full batteries into state “blocked”. ( I saw this also in a post of another Sunwoda user.)

You have no console tool.

A simple test, but very elaborate, would be: At SOC 98, the CD is some mVolts,

  • bypass the MP,
  • shutdown the battery stack
  • connect ONLY b1, power up the “stack”, power on the mp and see b1’s soc
  • this step with b2… b5 at the same way

After this you known much more about your single batteries.

Have you made this (red marked) step?

Your batteries work at “lower” voltages as my stack. You absorb. 54,7/ float 54,2, my stack 56,8/56

So I think, your cells answers to “high”er charge voltages with a very significant cell voltage rising.

Never above 54,7! Lower is better…

@mjim

A bit late, but do not blindly rely on the shunt/ current and voltage measurement of the bms, or any cheap bms for that matter, soc estimation can be way off, especially at low current.

In general a Victron shunt is much more accurate, particularly with currents and also with voltage measurement, and thus the SOC estimation.

I looked it up and had it translated.:slightly_smiling_face:

This your communcation port.

With the right RJ45 to USB cable and a terminal program (PuTTY, HyperTerminal, MiniCom, etc.) you can see much more details of your batteries. Look for a technical instruction at the manufactures websites. You should see details of every single cell.

Hi @Frisianstar - Thank you for your time and help. A smartshunt would likely be helpful in the future on my installation so it might make sense to add it now actually. My brain isn’t connecting the dots as to how adding one would make the batteries with less voltage charge fast enough so the ones with the high voltage don’t reach the limit blocking any additional charge though.

@MSl1 I somehow missed that! The manual does not include the protocol/baud rate/register map needed so I think I’ll contact Greenheiss next week over the phone to try and get some help. I wish these exposed a prometheus exporter endpoint :grin:. Maybe they are kind enough to provide an updated firmware for the BMS or something. At the same time I’ll contact my installer so they help me debug this as they should definitely have performed the top-balance at the time they installed and configured the system, thus discover this issue themselves, but they did not.

@mjim
You have an extremely strange wiring set up.
Is there a reason why your two connections are not on either side of the bank?

I see two on each stack - so ideally its one negative off both ends and one positive or off both ends. (So two diagonally opposite take offs)
Wiring a bank affects how it balances in charge as well.

If cable length is a problem then do sets of three. (I still think full stack is better in this case)
The issue i see is a set of 3 and a set of two. The set of 3 are lower in soc than the set of two as the current sharing is poor.

This “strange” cabling scheme is correct! My manufacturer also requires this diagonal wiring within a stack and a maximum of THREE.

Quelle: Pytes Energy

A set of 2 and 3 batteries here..

@mjim: how thick are the DC cables? Are they DIY? Did you use a torque wrench? Check all DC connections just to be sure, when I made my DIY batteries one DC connection inside the battery was completely loose..

@mjim could “move” the stack busbar cables to see if something changes.

now: + 1 2 3 - / + 4 5 -

to: + 1 2 - / + 3 4 5 -

He needs only to change to short batt. to batt. connectors and the long busbar cables ( + and - )

But I think this will have no effect. @mjim problems caused by “high” charge voltages above SOC 95 and his running BMS firmware.