Charging bugs with new Orion XS 1400 and Pylontech RT12100 - probably due to DVCC

Hi,

I just purchased the new Orion XS 1400 and installed it in my vehicle — super simple setup.

System Overview:

  • 1x managed 12V Pylontech RT12100 battery, connected to Cerbo MK2 via BMS-Can
  • 3x devices connected via VE.Direct:
    • The Orion XS for alternator charging
    • A BlueSolar MPPT with a 100W panel
    • A SmartShunt to monitor the lead-acid starter battery
  • No inverter — it’s a 12V-only system for powering a DC fridge, Starlink mini and other electronics

Today was the first full day of testing the complete setup, and I’m seeing significant issues with the way the Orion behaves — likely related to DVCC.


Issue: Orion Not Charging Properly at High SoC

The Orion is limited to 30A on the input.

When the Pylontech reports a 100A charge limit to the Cerbo (typically below 90% SoC), everything works as expected — the Orion supplies 30A (approx. 394W) from the alternator.

However, once the SoC rises above 90% and the battery reports a 10A charge limit to the Cerbo, the Orion drops its current to 10A — ignoring the actual load. It doesn’t account for the fact that the battery is still being drained.


Real Example:

Time: 16:10

  • Pylontech SoC: 89% (reporting 100A charge limit)
  • DC loads: 249W
  • Alternator via Orion: 356W (27.07A @ 13.15V)
  • MPPT: 19W
  • Net into battery: ~120W✅ All good — battery charging.

Time: 16:20 (10 minutes later)

  • Pylontech SoC: 92% (reporting 10A charge limit)
  • DC loads: 182W
  • Alternator via Orion: 98W (7.12A @ 13.76V)
  • MPPT: 46W
  • Net into battery: ~–53W (battery is discharging)

Main Question:

Why is DVCC limiting the combined charging current of the Orion and MPPT to 10A even when the battery is being discharged?

I understand the battery is reporting a 10A charge limit, but actual battery current is negative — meaning the battery is discharging, not charging. Why isn’t the system allowing alternator power to support the load, instead of pulling it from the battery?


VRM Link:

@mpvader btw. I have read the other issues people were reporting and this doesn’t seem to be my case - I am using Orion as the main charger with starter lead-acid battery and alternator on the left (supply) and lifepo managed BMS-Can battery coupled with MPPT on the right (demand). So the new feature in Venus OS Beta doesn’t apple to me as far as I can tell

Hi Peter, thank you for the clear report - understood. I’ll look into this and make sure you’ll get a reply.

Matthijs

Hello,

There are a few things you can try:

  • Hooking up a SmartShunt to your DC loads and configure it as a DC load via VictronConnect.
  • In the Cerbo, going into Settings, System Setup and enable DC loads.

My assumption is that the Victron controller may need a device that actually measures current going out of the system (smartshunt for example).

Cheers,
Gerardo

Hi..

  1. I have thought about this… but it’s not easily possible - some loads are at the front of the vehicle, Cerbo is in the middle and other loads are in the back. SmartShunt goes on the negative side which in this case is the chassis so there is not one point on where to put it and it would require a lot of additional wiring. Second option would be to install it as battery monitor for the lithium battery but again, it’s sort of pointless - the lithium battery has it’s own BMS which measures the current, SOC, temperature, so by using SmartShunt instead, I would loose some features, loose the ability to monitor starter battery and would still have to install more wires.

  2. This is of course enabled and works perfectly - DC loads are calculated with very high precision and are accurate as far as I can tell

1 Like

Awesome… thanks for looking into it. Feel free to pull up the VRM profile… I will do some driving today and hopefully there will be more relevant data

You hit the nail in the head here…
DVCC should consider all available BMSes in the systems as Shunts and use that information in order to adjust the currents.

1 Like

Here’s a topic that may describe a similar problem…

1 Like

Yep… same thing… some reasoning against implementing this correctly is when the DC system values are highly erratic because they are based on not so precise sources of data like when you enable DC system on installation with MultiPlus. I believe they calculate how much DC current is pulling MultiPlus and the remainder are DC loads and the value in this scenario can be all over the place. In my case the BMS in the battery is pretty accurate (comparable to SmartShunt) and there is no MultiPlus which would pollute the result with inaccurate data.

I would also like to see better visualization of the data in VRM on DC only systems… as with the DVCC, you don’t get the red consumption bars in the graph if you don’t install SmartShunt.

And now with Orion XS having VE.Direct, it would also be nice to see Alternator energy bars - similar to green Generator energy bars with AC system.

Now the graph is rather poor, no consumption or alternator, just solar and battery

Described in detail here: Improvements to VRM and New UI for DC only systems

1 Like

Hello ! I think, indeed, in your use case, as well as in mine, that idea to modify that logic in DVCC of “DC loads” calculation will work. May be not so precise and not always stable, but at least better than without it. Exactly, your Orion is limiting himself to 10A total supplied current after the BMS orders to limit charging current to 10A. Instead, it should be ordered to change the DVCC’s “max charging current” to 10A and then, DVCC should account for loads consumption and demand from Orion+solar charger to give total current enough to cover the loads or as much as they can, at least. And DVCC will do that if we allow him to get DC loads value , if not possible by direct measurement via additional shunt then by calculated value which is also possible, even if not so perfect. I’m hoping we can find out what exactly to change in the code to realize that then we can test. Highly possibly it will work. Just need to find a way.
Another comment I wanted to write about particular your case: Can you try to configure your BMS-can as (to be) the “battery monitor” in your Cerbo ? Or you already did. I thought if the BMS-can will do the same as the smartshunt-as-battery-monitor is doing then the consumption on the graph will be showing, at least, and then the “DC loads” will be possible to calculate via this formula: DC current = (orion’s_Current + bluesolar’s_Current - BMScan_consumption); with the exception if BMS-can’s current is negative then take +(ABS(BMScan_consumption)) instead of minus. And that logic to calculate DC loads is already implemented in DVCC’s code, just need to make it use it for limiting charging current.

Yes… it’s exactly as you are describing.
And Yes, the BMS-Can managed battery is selected as the main battery of the system in Venus OS. The starter battery (lead acid stupid battery) has the SmartShunt set as battery meter but only for information, not used in Venus for anything meaningful besides passive monitoring.

I would gladly use the Shunt to measure the loads, if that would solve this bug. The problem is, it would be much more extra wire to be run in the vehicle as the negative pole of the loads is the vehicle chassis (common ground) and they are all over the vehicle and SmartShunt connects to the negative side.

As with the graphs… I assume VRM treats the calculated value of DC loads with the same low priority, so it doesn’t display the red consumption bars unless SmartShunt is installed.

One workaround that comes to mind is to create fake SmartShunt driver which might be easier than modifying the underlaying logic of the OS.

1 Like

In my test setup with SmartSolar-ve.direct, VenusOS, smartshunt-ve.direct_as_battery_monitor those consumption bars in VRM are displayed. It was a negative surprise for me to know that in case of BMS-can_as_battery monitor they are not displaying.
There are surely so much improvements Victron developers still have to do:)
The idea of “fake SmartShunt” is good , but for me it looks too complicated to implement myself (I read that wiki “howto add a driver to Venus · victronenergy/venus Wiki · GitHub”).