Had exactly this with my static caravan setup last summer. Short answer: trust the BMS for protection, trust the SmartShunt for actual SOC accuracy — they're doing different jobs really.
The BMS is watching cell voltages and will cut off if anything goes dangerously high or low. It's not really designed to be a fuel gauge. The SmartShunt on the other hand is counting coulombs in and out, so over time it builds up a much more accurate picture of what's actually in the bank — as long as you've set it up properly.
Key things to check on the SmartShunt config:
- Charged voltage threshold — needs to match your actual absorption voltage
- Tail current — set this too high and it'll declare "full" before you actually are
- Peukert exponent — often overlooked but matters under heavy loads
- Battery capacity — obvious but worth double-checking
The two will drift apart if the shunt never gets a proper sync point. Make sure your batteries are genuinely reaching a full charge regularly so the shunt can reset itself. If you're mostly doing partial cycles (pretty common off-grid), the SOC can wander off quite a bit.
What BMS are you running? Some of the Fogstar Drift cells have decent BMS comms and you can sometimes pull SOC data directly into VRM which helps compare the two. Worth checking if yours supports that.
Anyone else had success getting these two to agree? Curious whether others have found particular Peukert settings that work well with LiFePO4.