Jump to content

Force MPPSolar (Voltronic) bulk and float voltages for connected Pylontech battery

Featured Replies

Posted

Hello
I have MPPSolar PIP6048MT inverter with Pylontech BMS connection support and US5000 battery
This battery requests 53.2V for bulk and float charging
I think this is a bit too much and Victron people even override this with 52.4V setting (https://www.victronenergy.com/live/battery_compatibility:pylontech_phantom#my_system_only_charges_the_battery_to_524v)
My battery charges every 20 minutes or so and it's not great for it's life and it takes a lot of energy through the day

Inverters default apps do not let you change those parameters, but I can force them through a serial
Problem is -- inverter will listen to BMS and put 53.2V in both fields in a second

My question is -- is there any way to make my values stick? I was thinking about just pushing commands on a loop to overwrite whatever BMS sends instantly, but this is an ugly hack
I'm not sure if I should use USER battery mode, maybe BMS sends some more useful data (I've found only charging voltages, max charging current and SOC)? Also, I'll loose all SOC settings, which are useful

Do you have some ideas? Thank you

Edited by WallK

  • Author
38 minutes ago, Tinbum said:

I do it by putting a Teensy in the CAN communication line and changing the message.

As MitM between battery and inverter? Mine's on 485 but it should be doable too
Thanks for the idea!

I've been running a MAX II 8K with Pylontech US3000 batteries with the BMS for months without problems. My batteries regularly charge to 100% with solar and I've never had an over voltage problem - maybe Victron have less margin for over voltage?

With the BMS there is an interesting problem at the moment. One of the versions of Axpert firmware doesn't work with the Pylontech BMS - it gives error 61. I'm working on a fix as I have customers with Axpert/Pylontech so I need to make sure the batteries are correctly charged. Setting USE without controlling the charge current may be problematic.

From what I've observed the following happens (if you query PBMS and QPIRI from the inverter you will see the changes):

In normal operation QBMS replies 0 063 0 0 0 532 532 450 0150 0220 - this is at 63%SOC and is 150A max charging current

When the batteries reach 100% the max charging current drops to 10A and can be seen from QPIRI response.

When the SOC drops to 99% the max charge goes up to 50A

At some point between 60% and 99%(I'm running a trace to find out exactly when) the charge goes up to 150A again.

Unfortunately (on the inverters I have) the PBATCD command does not seem to be supported so I can't control the charge with this. The best I can do is to reduce the charge current to 10A when the batteries are > X% SOC

See the MAX communication protocol for the fields.

You say your batteries charge every 20 minutes. How is your system connected and how do you control the charging?

Here is the graph of my system from yesterday. The batteries reached 100% at 14:29, the voltage was 53.7V. These values are read from the inverter QPIGS command.

14jan23.jpg

1 hour ago, Acuario said:

The batteries reached 100% at 14:29, the voltage was 53.7V. These values are read from the inverter QPIGS command.

That is too high. The max the BMS requests is 53.2v so either the inverter measurement is incorrect or the inverter is overshooting the requested value.

  • Author
3 hours ago, Acuario said:

I've been running a MAX II 8K with Pylontech US3000 batteries with the BMS for months without problems. My batteries regularly charge to 100% with solar and I've never had an over voltage problem - maybe Victron have less margin for over voltage?

With the BMS there is an interesting problem at the moment. One of the versions of Axpert firmware doesn't work with the Pylontech BMS - it gives error 61. I'm working on a fix as I have customers with Axpert/Pylontech so I need to make sure the batteries are correctly charged. Setting USE without controlling the charge current may be problematic.

From what I've observed the following happens (if you query PBMS and QPIRI from the inverter you will see the changes):

In normal operation QBMS replies 0 063 0 0 0 532 532 450 0150 0220 - this is at 63%SOC and is 150A max charging current

When the batteries reach 100% the max charging current drops to 10A and can be seen from QPIRI response.

When the SOC drops to 99% the max charge goes up to 50A

At some point between 60% and 99%(I'm running a trace to find out exactly when) the charge goes up to 150A again.

Unfortunately (on the inverters I have) the PBATCD command does not seem to be supported so I can't control the charge with this. The best I can do is to reduce the charge current to 10A when the batteries are > X% SOC

See the MAX communication protocol for the fields.

You say your batteries charge every 20 minutes. How is your system connected and how do you control the charging?

Here is the graph of my system from yesterday. The batteries reached 100% at 14:29, the voltage was 53.7V. These values are read from the inverter QPIGS command.

14jan23.jpg

I don't get any overvoltage alarms
My battery is connected straight to the inverter with RS485 cable

I charge using grid power
Here's voltage and current graph from today when power was available and I didn't drain battery up until 8am (volts blue on the left, amps orange on the right)
You can see how often it charges battery without any power going out of it

Also a graph of battery SOC (blue, left) vs max charging current requested by BMS (orange, right)
As you can see, it goes to 20A on 99% and to full 80A on 89% SOC

chrome_2023-01-15_15-20-59.png

chrome_2023-01-15_15-31-56.png

Is the grid permanently connected? It looks like it may be. How do you have it configured in setting 1? Is it SBU or SUB?

I have found that these inverters perform in a weird way.

I have solar panels connected as well as the batteries. In theory the power should go from the solar first, then batteries, then utility.

Also, setting the charge to only solar (program 16 or PCP03) should stop any charging from the grid - but it still takes 1.5kW..

However, when set to SBU or SUB and with the grid connected they take around 1.5kW from the grid when the SOC is less than 100%. As soon as the SOC reaches 100% this drops to around 100W. As soon as the SOC drops back to 99% it again start taking 1.5kW. This is not good as there is a large amount of unnecessary grid consumption.

I haven't been able to work out where this power goes (sounds strange I know..) The inverter doesn't get hot, the power doesn't go to the load and the batteries don't seem to charge.. I've run for an hour or so and the SOC hasn't changed and there is no power fed to the batteries.. I can't see where it goes..  I have found the same with the MAX II 8kW and also the King 5kW - it has to go somewhere as it's way too much for auto consumption and I would expect a lot of heat to be generated.

On the King the charge can be disabled but on the MAX this doesn't work..

The only way to avoid this is to control the connection of the grid to the inverter (I use a relay based on SOC).

 

  • Author
1 hour ago, Acuario said:

Is the grid permanently connected? It looks like it may be. How do you have it configured in setting 1? Is it SBU or SUB?

I have found that these inverters perform in a weird way.

I have solar panels connected as well as the batteries. In theory the power should go from the solar first, then batteries, then utility.

Also, setting the charge to only solar (program 16 or PCP03) should stop any charging from the grid - but it still takes 1.5kW..

However, when set to SBU or SUB and with the grid connected they take around 1.5kW from the grid when the SOC is less than 100%. As soon as the SOC reaches 100% this drops to around 100W. As soon as the SOC drops back to 99% it again start taking 1.5kW. This is not good as there is a large amount of unnecessary grid consumption.

I haven't been able to work out where this power goes (sounds strange I know..) The inverter doesn't get hot, the power doesn't go to the load and the batteries don't seem to charge.. I've run for an hour or so and the SOC hasn't changed and there is no power fed to the batteries.. I can't see where it goes..  I have found the same with the MAX II 8kW and also the King 5kW - it has to go somewhere as it's way too much for auto consumption and I would expect a lot of heat to be generated.

On the King the charge can be disabled but on the MAX this doesn't work..

The only way to avoid this is to control the connection of the grid to the inverter (I use a relay based on SOC).

 

It is constantly connected except for blackouts (starts at 8 and ends around 10:20 on graph)
Mine's in USB mode, but I don't have any solar, so it shouldn't really matter
If I turn off grid by SOC -- I'll not get a bypass from it and I'd like my battery charged and ready for a blackout, I never know when and how long it will be
I was thinking about disconnecting battery by SOC and grid availability, but I fear it won't reconnect it fast enough when grid goes down

How do you measure your power consumption? Maybe it's a capacitive load and you are not getting billed on it?
My battery takes around 0.2KWh when sitting idle (it's calculated by current going in it and voltage) and I'm not happy about paying almost 144KWh per month just for having battery...
 

Edited by WallK

I use an AC current clamp on the AC in lead. It reads around 6.5A when not 100% SOC and around 5-600mA (about 150W) at 100%.

I'll have to re-measure it and write down exactly what the figures are as I'm going from memory.

I'll have to try a series connected current meter to see if it is reactive load.

The inverter manual will state the no load power consumption - mine states <75W but it seems higher, it will also be trickle charging the batteries so that will add to the consumption.

How are you measuring the battery charge current - a shunt? Or is it relying on interrogating the inverter?

 

On 2023/01/14 at 7:20 PM, Tinbum said:

I do it by putting a Teensy in the CAN communication line and changing the message.

@TinbumDo you have communication between an Axpert and Pylontech using CAN? I see the Axpert pinout shows RS485, RS232 and CAN but all the postings I've found refer to using RS485.

Also, which CAN ID are you changing? 0x351?

From the monitoring of the QBMS from the Axpert I see the charge current starts increasing from 10A to 150A but not when the SOC changes value. i.e. the change from 10A to 20A to 40A all occurs at 100% SOC so the inverter must be basing this on readings from the BMS (RS485 in my case). 

Todays challenge: Record the RS485 data to see what is going on during this phase.. if it's sunny and I get to 100% SOC...

  • Author
10 hours ago, Acuario said:

I use an AC current clamp on the AC in lead. It reads around 6.5A when not 100% SOC and around 5-600mA (about 150W) at 100%.

I'll have to re-measure it and write down exactly what the figures are as I'm going from memory.

I'll have to try a series connected current meter to see if it is reactive load.

The inverter manual will state the no load power consumption - mine states <75W but it seems higher, it will also be trickle charging the batteries so that will add to the consumption.

How are you measuring the battery charge current - a shunt? Or is it relying on interrogating the inverter?

 

I too think inverter draws more than manual states by just existing

I ask inverter to report, hopefully this data comes from BMS too. I also put current clamp on the lead when it was idling, had basically a zero reading (I'm not sure how much I can trust my multimeter though, but charging currents seems to be very close between it and what inverter reports)

4 hours ago, Acuario said:

@TinbumDo you have communication between an Axpert and Pylontech using CAN? I see the Axpert pinout shows RS485, RS232 and CAN but all the postings I've found refer to using RS485.

Also, which CAN ID are you changing? 0x351?

From the monitoring of the QBMS from the Axpert I see the charge current starts increasing from 10A to 150A but not when the SOC changes value. i.e. the change from 10A to 20A to 40A all occurs at 100% SOC so the inverter must be basing this on readings from the BMS (RS485 in my case). 

Todays challenge: Record the RS485 data to see what is going on during this phase.. if it's sunny and I get to 100% SOC...

No, I use SMA inverters. Yes it's 0x351 I change.

My system is much more complex though, as I also run Eltek chargers and Sofar ME3000Sp's. I have everything controlled with Node Red. I set the charge voltage at 52.5v but once a week I allow it to use the Pylontech setting of 53.2v and that will reset to 52.5 volts once the SOC is 100%. I also use Solcast to predict what is needed in the batteries for the following day and to set my nightly required SOC.

4 hours ago, Tinbum said:

I also use Solcast to predict what is needed in the batteries for the following day and to set my nightly required SOC.

I'm interested in knowing more about this feature of your system. It seems you are running a pretty big installation from the number of panels/batteries etc.

What is the objective of knowing the prediction? Do you not have capacity to charge to 100%? Are you also grid charging? Can you predict your daily power needs?

I built my own heat pump and control system for heating/cooling my house from de-commissioned air conditioning units. My house has underfloor heating/cooling, and I run a predictive heating/cooling requirement using the Open Weather feed. This lets me adjust the temperature several hours in advance of as underfloor heating response time is not quick. It works very well.
I also broadcast the SOC from my solar system over UDP so a second heat pump can run when there is excess power available.

I'd like to understand the need for incorporating predictive charging in your system as it sounds interesting.

I'm in the UK. From the end of February to about the beginning of November  I basically run off grid.

Here we have Tariffs that encourage us to use the grid when their is not much demand so from 00.30 to 04.30 my unit rate is 7.5p per KWh. Any other time it is 34p. So using Solcast, NodeRed and the Teesny I calculate how much I need to put into the battery, from the grid during the cheap rate time, to keep me going for the rest of the day. It works pretty well. I can set it so that the battery always has a minimum SOC for and unforeseen eventualities.

I have the capacity to charge to 100% on a night but their is no need. I do set it once a week to do that to keep up the battery balancing.

Nodered.png

@TinbumImpressive setup, thanks for the explanation, I guessed it was for grid charging. I'll take a look at Solcast, might be something to integrate into my system at some stage.

@WallKI have spent some time tapped into the BMS link between the Pylontech and MAX. I also checked and although the MAX has pins available for RS232 and CAN in addition to RS485 it appears it only uses the RS485 for the BMS.

The MAX continually polls for data from CID2 commands 61 (Module discharge volt state includes SOC @ position 22/23), 62 (Alarm info status) and 63 (Battery charge/discharge management)

Frame 63 has the upper limit voltage data (reads 53.25) so you would need to modify this frame on it's journey from the battery to the inverter.

 

  • Author
4 hours ago, Acuario said:

@WallKI have spent some time tapped into the BMS link between the Pylontech and MAX. I also checked and although the MAX has pins available for RS232 and CAN in addition to RS485 it appears it only uses the RS485 for the BMS.

The MAX continually polls for data from CID2 commands 61 (Module discharge volt state includes SOC @ position 22/23), 62 (Alarm info status) and 63 (Battery charge/discharge management)

Frame 63 has the upper limit voltage data (reads 53.25) so you would need to modify this frame on it's journey from the battery to the inverter.

Wow, thank you for that! Does Pylontech output RS485 on CAN port too? I've made a cable with all the needed wires and it worked in both Pylontech ports. I am now wondering, maybe my error (https://powerforum.co.za/topic/15957-pip-6048mt-axpert-vm-iii-twin-battery-connection-troubles-and-firmware/) has to do something with ground availability in this cable for RS485? 

Do I need to cut the connection between battery and inverter? Or can I just add another device on the bus and receive them instead of inverter, modify and retransmit? 

Thanks again! 

Edited by WallK

From what I see the Pylontech CAN protocol is very different from the RS485 one. The inverter (certainly the Axpert MAX II), as far as I'm aware, only works with RS485, 2 wires (inverter pins 3, 5, Pylontech pins 7, 8. Cable is in the B/RS485 socket on the Pylontech.

You would need to insert something in between the inverter and battery. You could use an Arduino (or one of the many variations such as an ESP) and would need 2 x serial ports with RS485 interfaces (such as the cheap boards with the MAX485 chip). Capture the incoming frame from the battery, modify it and send it onwards. Any outbound frames from the inverter could just be passed through.

Edited by Acuario

  • Author
19 minutes ago, Acuario said:

From what I see the Pylontech CAN protocol is very different from the RS485 one. The inverter (certainly the Axpert MAX II), as far as I'm aware, only works with RS485, 2 wires (inverter pins 3, 5, Pylontech pins 7, 8. Cable is in the B/RS485 socket on the Pylontech.

You would need to insert something in between the inverter and battery. You could use an Arduino (or one of the many variations such as an ESP) and would need 2 x serial ports with RS485 interfaces (such as the cheap boards with the MAX485 chip). Capture the incoming frame from the battery, modify it and send it onwards. Any outbound frames from the inverter could just be passed through.

Alright, I'll add those RS485 to UARL things to the datalogger and try to have one device do both things
Thank again, I'll update when I get this working!

4 hours ago, WallK said:

 

Do I need to cut the connection between battery and inverter? Or can I just add another device on the bus and receive them instead of inverter, modify and retransmit? 

Thanks again! 

You want to cut the connection and pass the data through, that way you get all the battery BMS data through to the inverter and all the battery protection features.

 

I found that an Arduino (Mega) was too slow to be able to capture the data. that was with CAN, I've not tried RS485.

Edited by Tinbum

  • Author
29 minutes ago, Tinbum said:

You want to cut the connection and pas the data through, that way you get all the battery BMS data trough to the inverter and all the battery protection features.

 

I found that an Arduino (Mega) was too slow to be able to capture the data. that was with CAN, I've not tried RS485.

I plan to use ESP32 to do the datalogging and this MitM stuff on the same board
Should be fast enough, hopefully

  • 2 weeks later...
  • Author
On 2023/01/15 at 7:19 PM, Acuario said:

Is the grid permanently connected? It looks like it may be. How do you have it configured in setting 1? Is it SBU or SUB?

I have found that these inverters perform in a weird way.

I have solar panels connected as well as the batteries. In theory the power should go from the solar first, then batteries, then utility.

Also, setting the charge to only solar (program 16 or PCP03) should stop any charging from the grid - but it still takes 1.5kW..

However, when set to SBU or SUB and with the grid connected they take around 1.5kW from the grid when the SOC is less than 100%. As soon as the SOC reaches 100% this drops to around 100W. As soon as the SOC drops back to 99% it again start taking 1.5kW. This is not good as there is a large amount of unnecessary grid consumption.

I haven't been able to work out where this power goes (sounds strange I know..) The inverter doesn't get hot, the power doesn't go to the load and the batteries don't seem to charge.. I've run for an hour or so and the SOC hasn't changed and there is no power fed to the batteries.. I can't see where it goes..  I have found the same with the MAX II 8kW and also the King 5kW - it has to go somewhere as it's way too much for auto consumption and I would expect a lot of heat to be generated.

On the King the charge can be disabled but on the MAX this doesn't work..

The only way to avoid this is to control the connection of the grid to the inverter (I use a relay based on SOC).

 

I'm trying to not charge battery from grid at all and I have the same problem
I have charge priority set to "Solar only" and output mode to SUB
I don't have any solar panels connected, so I expect it not to charge at all
But here's the graph of solar power (in black, erroneously showing floating between 1 and 3W) versus charge current (in blue, which is taken from grid, coz there's nothing else to take from)

chrome_2023-02-02_14-01-47.png

Edited by WallK

  • 3 weeks later...
56 minutes ago, WallK said:

@Coulomb can you check it out?

This is indeed Axpert VM III Twin (= PIP-6048MT) firmware for the '28062 processor (as all VM models use). The handles 1500W, 4000W (both 24 V) and 6000W (48 V) ratings.

If the date stamp can be believed, this was compiled today.

As for the hex file name, they seem to name a lot of them VP5K.hex or VP5K.inv. It seems to me that you would have to rename the hex file to VM3.hex if you wanted to use the USB update option. The reflash tool looks very much like the Arena reflash tool, but maybe the VM reflash tools always did. These reflash tools don't seem to mind what the file name is, so it's odd that they don't name it VM3.hex as the USB update firmware (in the display) wants it.

As for what they may have changed, it will take me a long time to find out, sorry. 

  • Author
37 minutes ago, Coulomb said:

This is indeed Axpert VM III Twin (= PIP-6048MT) firmware for the '28062 processor (as all VM models use). The handles 1500W, 4000W (both 24 V) and 6000W (48 V) ratings.

If the date stamp can be believed, this was compiled today.

As for the hex file name, they seem to name a lot of them VP5K.hex or VP5K.inv. It seems to me that you would have to rename the hex file to VM3.hex if you wanted to use the USB update option. The reflash tool looks very much like the Arena reflash tool, but maybe the VM reflash tools always did. These reflash tools don't seem to mind what the file name is, so it's odd that they don't name it VM3.hex as the USB update firmware (in the display) wants it.

As for what they may have changed, it will take me a long time to find out, sorry. 

Thank you for this! I wasn't sure if it's a correct file and if the flasher has any checks

I just got it today, so yeah, it could be compiled just now
Curious if I'm their guinea pig 🙂

I've asked manufacturer about the file name, just to be sure I've got the right file, but haven't got a response yet

I'll wait for their confirmation and flash it
Will report if it fixed the utility charging in Solar Only mode issue

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Power Forum. Need Help? Please feel free to contact: Power(AT)powerforum.co.za