Been through exactly this on the narrowboat last winter — drove me absolutely mad for about three weeks.
Short answer: trust neither blindly, but understand what each one is actually measuring.
The BMV-712 is coulomb counting from a shunt — it's tracking electrons in and out, and it drifts over time if your shunt calibration or the "charged voltage" / "tail current" settings are off. Mine was wildly optimistic because I hadn't set the tail current correctly for my Fogstar Drift 200Ah cells.
Your BMS, on the other hand, is typically estimating SOC from cell voltages, which on LiFePO4 is notoriously flat across most of the usable range. It's essentially guessing between about 20% and 80%.
What I ended up doing:
- Got the BMV-712 settings dialled in properly (there's a brilliant Victron community thread on LiFePO4-specific settings)
- Let the BMV sync at full charge regularly — it self-corrects when it hits your "charged" parameters
- Stopped obsessing over the BMS percentage mid-cycle
After a full charge cycle where both reset, they typically agree within 3-4% now. If they're wildly different after a full charge, something's genuinely wrong — either a drifting shunt reading or a cell imbalance the BMS is reacting to.
What BMS are you running? Some of the cheaper units have really poor SOC algorithms. Also, what are your BMV sync settings currently set to?
Would be good to hear if others on LiFePO4 have cracked this — particularly anyone with Daly or JK BMS units, which seem to behave quite differently from each other.