Posted January 14, 20232 yr 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 January 14, 20232 yr by WallK
January 14, 20232 yr I do it by putting a Teensy in the CAN communication line and changing the message.
January 14, 20232 yr 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!
January 14, 20232 yr 1 hour ago, WallK said: As MitM between battery and inverter? Mine's on 485 but it should be doable too Thanks for the idea! Yes
January 15, 20232 yr 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.
January 15, 20232 yr 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.
January 15, 20232 yr 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. 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
January 15, 20232 yr 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). Â
January 15, 20232 yr 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 January 15, 20232 yr by WallK
January 15, 20232 yr 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? Â
January 16, 20232 yr 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...
January 16, 20232 yr 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)
January 16, 20232 yr 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.
January 16, 20232 yr 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.
January 16, 20232 yr 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.
January 20, 20232 yr @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. Â
January 20, 20232 yr 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 January 20, 20232 yr by WallK
January 20, 20232 yr 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 January 20, 20232 yr by Acuario
January 20, 20232 yr 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!
January 20, 20232 yr 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 January 20, 20232 yr by Tinbum
January 20, 20232 yr 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
February 2, 20232 yr 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) Edited February 2, 20232 yr by WallK
February 24, 20232 yr Author Got firmware 60.66 that they say should fix utility charging issue It has only VP5K.hex inside I'm attaching the whole archive I got from manufacturer @Coulomb can you check it out? Thanks wetransfer_mt-firmware-upgrade-process-docx_2023-02-24_1007.zip
February 24, 20232 yr 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.Â
February 24, 20232 yr 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.