November 6, 20214 yr @Coulomb @87 Dream Hi Coulomb , I am in the process of creating BMS comms connectivity between , amongst others, DIY LFP packs and Axpert inverters that have BMS support. On my own MKSIII I have chosen the LIB protocol , as supported on the inverter side. This protocol is as nature intended, and it was reasonably straight forward. But in order to support a wider range of other axperts I have also tried to implement the Pylontech RS485 protocol. Very difficult , still battling. Example, Axpert request command code 0x61 hex which is not even in Pylontech docs up to ver 3.3. would have been nice if Axpert supported canbus, cause Pylontech canbus is a reasonable walk-in-the-park, their RS485 is a over elaborated nightmare. So here's the question, on MAX inverters that supports BMS , can I assume the LIB protocol to be available on them when they flashed with latest firmware.? Cause I see on some MAX only Pylontech,Weco and Soltaro. LIB missing , which strange to me cause LIB is a voltronics maintained proto. Thanks in advance. Edited November 6, 20214 yr by dropkick Spelling
November 6, 20214 yr Author Only way forward for me regarding the Pylontech , in order to overcome the last 15% hurdle , is to get a Pylontech batt somehow , punch a hole into the RS485, and hack the transactions between itself and host inverter.
November 6, 20214 yr Author If there are any members that have done something similar regarding masquerading as a Pylontech in front of an Axpert inverter , please let us know. I have surfed far and wide , no resource on the net.
November 6, 20214 yr Author 24 minutes ago, 87 Dream said: Hi @dropkickI'm scratching around to see who can assist us in the Gauteng area. I'm pretty sure we will find a Pylontech to undergo a non invasive Comms inspection. Pretty sure we will find a specimen. 87 87 , you are the man 🙂 Off topic , thinking about product like Pylontech : What happens when such a robust beast come to the end of its heroic life-cycle, after a number of years? So you sit here with a mechanically sound and robust enclosure , BMS etc.etc.etc. Do you have the option to repack the unit with new slices of lithium packs ?
November 6, 20214 yr 14 minutes ago, dropkick said: 87 , you are the man 🙂 Off topic , thinking about product like Pylontech : What happens when such a robust beast come to the end of its heroic life-cycle, after a number of years? So you sit here with a mechanically sound and robust enclosure , BMS etc.etc.etc. Do you have the option to repack the unit with new slices of lithium packs ? I think, chances are by the time the Pylons or any other commercial battery reaches its lifetime, the BMS will be outdated to handle the available new packs at that time. They are talking now, about solid state batteries to replace the lithium ones in near future. But we will have to wait and see. Regarding the enclosure, you might still find one way or another to be able to use it somehow.
November 7, 20214 yr On 2021/11/06 at 5:39 PM, dropkick said: on MAX inverters that supports BMS , can I assume the LIB protocol to be available on them when they flashed with latest firmware.? Yes. 12.11 has LIB support.
November 7, 20214 yr On 2021/11/06 at 5:39 PM, dropkick said: would have been nice if Axpert supported canbus, As far as I know they do; use WEC or SOL protocols. A colleague hasn't been able to get this going, but there are many ways it can go wrong. I've even gone to the length of patching up a removable display firmware that turns on a segment when the CAN system is initialised, and another when a CAN interrupt is received. Alas, my patches seem to crash Task 0, and I haven't had a chance to debug it yet (debug the debugging, sheesh). See this post for my thumbnail sketch of the WEC and SOL protocols.
November 7, 20214 yr Author 1 hour ago, Coulomb said: Yes. 12.11 has LIB support. That is music to my ears. Thanks 👍
November 7, 20214 yr Author 4 hours ago, Coulomb said: As far as I know they do; use WEC or SOL protocols. A colleague hasn't been able to get this going, but there are many ways it can go wrong. I've even gone to the length of patching up a removable display firmware that turns on a segment when the CAN system is initialised, and another when a CAN interrupt is received. Alas, my patches seem to crash Task 0, and I haven't had a chance to debug it yet (debug the debugging, sheesh). See this post for my thumbnail sketch of the WEC and SOL protocols. Thanks again, that post of yours just indicates how elegant and simple canbus messages can (no pun intended) and should be👍
November 14, 20214 yr I was trying something similar. Finaly found someone posted Inverter-Battery conversation on the arduino forum: https://forum.arduino.cc/t/rs485-modbus-between-solar-charger-inverter-and-battery-setup/602331/11 If I do not reply on the 0x61 message, my inverter EaSun iSolar SMV III / Axper VM III asks three times after boot and does not ask again and shows no errors. Implemented a small Python prototype as proof of concept. The goal is to integrate it some day into diyBMS. pylon_RS485_working.zip Edited November 14, 20214 yr by googy
November 14, 20214 yr Author 1 hour ago, googy said: I was trying something similar. Finaly found someone posted Inverter-Battery conversation on the arduino forum: https://forum.arduino.cc/t/rs485-modbus-between-solar-charger-inverter-and-battery-setup/602331/11 If I do not reply on the 0x61 message, my inverter EsSun iSolar SMV III / Axper VM III asks three times after boot. If I do not answer this message, it does not ask again and shows no errors. Implemented a small Python prototype as proof of concept. The goal is to integrate it some day into diyBMS. pylon_RS485_working.zip 2.12 kB · 0 downloads Googy , that's manna sent from heaven,👌 thank you for responding. Haven't open your files yet , will look at it tonight , and feedback and share with you. Stay connected! Cheers .
November 14, 20214 yr Author 39 minutes ago, dropkick said: Googy , that's manna sent from heaven,👌 thank you for responding. Haven't open your files yet , will look at it tonight , and feedback and share with you. Stay connected! Cheers . @googyI also noticed this is your first post . I am also relatively new, but welcome , I hope you also find good assistance here as I have enjoyed. And with your first you have already shared already. Good on you.👍
November 14, 20214 yr Thank You all I also was lookong for more Informattion on Pylontech RS485 and stumbled over this topic. As I found more information, I wanted to share. Here is some stuff on Soltaro RS485, but I can't use it. Soltaro CAN would be much nicer. https://github.com/OpenEMS/openems/tree/develop/io.openems.edge.battery.soltaro/doc And maybe something for SMA https://community.openenergymonitor.org/uploads/short-url/4CXbIEEWHE0fe4fLejyJ76h4zFP.pdf Edited November 14, 20214 yr by googy
November 21, 20214 yr Author Hi @googythank you so much for valuable BMS information. I am not a python programmer , but your code on Pylontech very well understood, thanks. I have noticed also your post https://www.photovoltaikforum.com/thread/163090-axpert-vm-iii-easun-isolar-smv-iii-bms-protokolle/ And got even more info , also you linked to https://forums.aeva.asn.au/viewtopic.php?p=88506#p88506 And I I see from @Coulombpost there he has very valuable canbus info on Soltaro. Coulomb , have you got proto docs , or did you hack the info? Also , I see there is a great synergy between Soltaro and Livoltek batteries. Do you have any info on Livoltek BMS proto.? Googy , do you also entertain C and CPP as programming language , in case I want to share some of my code with you.? On the Soltaro protocol supported by voltronics. When set my batt option to SOL there is no intiation / activity on RS485. A dead giveaway it must be canbus. Unless it's a 485 MODBUS slave, which I doubt very much. So that infers that my MKS III must support canbus . And I wonder if the canbus pinouts is the same as documented in the new generation IV inverters.? Edited November 21, 20214 yr by dropkick
November 21, 20214 yr Hi @dropkick ! I do write mostly C. I like to use python for prototyping on PC. Later I am going to implement it on a ESP32-C3 connected to my home automation system by CAN/TWAI. I had the remote panel on my MV III open and noted the pinout on the BMS connector: ? ? D- ? D+ CANH CANL GND ?: Power und Relay to Generator DryContact, no idea what it is ment for. As I do not use the drycontact, I did no further investigation.
November 21, 20214 yr Author 29 minutes ago, googy said: Hi @dropkick ! I do write mostly C. I like to use python for prototyping on PC. Later I am going to implement it on a ESP32-C3 connected to my home automation system by CAN/TWAI. I had the remote panel on my MV III open and noted the pinout on the BMS connector: ? ? D- ? D+ CANH CANL GND ?: Power und Relay to Generator DryContact, no idea what it is ment for. As I do not use the drycontact, I did no further investigation. @googynice man , getting CAN phy for my ESP32 this week, so will give that pinouts a go. This ESP32-C3 looks like the deal , will have to check if available in South Africa, I want one ! Must say , on the subject of ESP32, I am totally addicted to FreeRTOS and JTAG debugging , and with the raw CPU speed and ample RAM , it has distinguished itself . Although FreeRTOs available on many platforms it is maintained and well integrated by Expressif. And of course , not even mentioning its WIFI. I have on my buckets list my own BMS based on the ESP32 and a Chinese AFE ( analogue front end) , for DIY LFP cells and contactor based switching. That's going to be fun, I guess. May the RPI Pico , but I like the idea of WiFi seamlessly part of a battery pack. Go well.! Edited November 21, 20214 yr by dropkick
November 21, 20214 yr Author @googy, @Coulomb I am also very curious to learn more about Voltronic LiC BMS protocol, any one of you can share light on this?
November 22, 20214 yr Author @googyI have also seen this Sunsynk document on our forum, and I must say it tries to explain Pylontech just somewhat better than Pylontech itself, along with some valuable packet examples. Courtesy of and thanks to @Sc00bs Edited November 22, 20214 yr by dropkick
November 22, 20214 yr Tried Weco CAN, used the findings from @Coulomb as reference 100kbps I was able to set max and min voltage. highest discharge cut off voltage you can set is 48.0V. Higher values will be trimmed to 48V. Byte1: 0x02; Byte0: 0x38 0x0238 = 568 -> 56.8V max charge voltage Byte5: 0x01; Byte4: 0xDF 0x01DF = 479 -> 47.9V discharge cutoff voltage while true; do cansend can0 00000101#38.02.F4.01.DF.01.F4.01; sleep 1; done setting max discharge curent is not working, tried different value, inverter sets 10A. I think 10A is a safe fallback setting, because of an invalid value. expected: Byte3: 0x01; Byte2: 0xF4; 0x01F4 = 500 -> 50.0A, does not work while true; do cansend can0 00000201#FA.00.00.00.00.00.1C.02; sleep 1; done Byte0: 0xFA = 250; 250 / 2,5 = 100 -> 100% charge 0xB4 = 180; 180/2,5=72 -> 72% charge Byte1 also does influence the result, so you can go easily over 230%, I did not test exactly, whitch bits are used. I think you can go to 255% till it overflows. For example 0xF3F displays 25% in the WatchPower app. Bytes 7 and 6 seams to be the Battery voltage. Without this 201 message inverter displays 04 Low Baterry warning. As soon as I set it for example to 0x021C = 540; 54.0V the Error is gone. That's it for now. Did not test other messages. Edited November 22, 20214 yr by googy
November 23, 20214 yr On 2021/11/21 at 3:26 PM, dropkick said: valuable canbus info on Soltaro. Coulomb , have you got proto docs , or did you hack the info? No documentation. This is all from reverse engineering the firmware, and tracing out the CAN bus chip to the BMS socket. On 2021/11/21 at 3:26 PM, dropkick said: When set my batt option to SOL there is no intiation / activity on RS485. A dead giveaway it must be canbus. I can do better now. Colleagues and I have confirmed that an Axpert MAX (which has a similar, perhaps identical removable display to the Axpert MKS III: removable display firmware version 12.11) on battery type SOL speaks CAN bus at 500 kbps with the protocol I documented (at least for the CAN IDs 0x1872 and 0x1874). It's not finished yet, but we demonstrated setting the SOC to 100%, warning 61 goes away, the battery icon flashes, etc. We could not demonstrate WEC protocol, as the BMS could not easily be set to 100 kbps. On 2021/11/21 at 3:26 PM, dropkick said: And I wonder if the canbus pinouts is the same as documented in the new generation IV inverters.? They've finally documented it? (Coulomb searches...) Glory be! Pins 6 and 7, same ordering as well. So that's a yes! Thanks for pointing that out.
November 23, 20214 yr On 2021/11/22 at 12:27 AM, dropkick said: @Coulomb I am also very curious to learn more about Voltronic LiC BMS protocol, any one of you can share light on this? It seems to be treated much the same as, if not identical to, the PYLontech protocol. I haven't found anywhere that LIC is treated differently to PYL so far, but I haven't checked closely. Presumably, there must be some differences, or they would have bothered to give it a different name.
November 23, 20214 yr 3 hours ago, googy said: Setting max discharge current is not working, tried different value, inverter sets 10A. I think 10A is a safe fall-back setting, because of an invalid value. expected: Byte3: 0x01; Byte2: 0xF4; 0x01F4 = 500 -> 50.0A, does not work My notes say that bytes 4:3 (one-origin; 3:2 by your zero-origin) are maximum charge current. Maximum discharge current I have as bytes 8:7 (7:6 by your numbering).
November 23, 20214 yr 3 hours ago, googy said: Byte0: 0xFA = 250; 250 / 2,5 = 100 -> 100% charge 0xB4 = 180; 180/2,5=72 -> 72% charge Byte1 also does influence the result... Agreed; I have fixed my documentation. I had bytes 8:7 for SOC in units of 0.4%. Quote Bytes 7 and 6 seams to be the Battery voltage. Without this 201 message inverter displays 04 Low Battery warning. Unless one of us has made a typo, this appears to be a difference between your removable display (what firmware version?) and mine (Axpert Max 12.11 and Axpert King 02.66). I also checked Axpert King/VM III removable display firmware version 02.40, in case it's a recent fix. But 02.40 is the same. That's the earliest firmware that I have with Weco and Soltaro support. It looks to me that this has to be bytes 4:3 (3:2 in your numbering).
November 23, 20214 yr 11 hours ago, Coulomb said: My notes say that bytes 4:3 (one-origin; 3:2 by your zero-origin) are maximum charge current. Maximum discharge current I have as bytes 8:7 (7:6 by your numbering). Sorry, my fault. I ment maximum charge current. WatchPower always shows 10A no matter what I am sending. 10 hours ago, Coulomb said: Unless one of us has made a typo, this appears to be a difference between your removable display (what firmware version?) and mine (Axpert Max 12.11 and Axpert King 02.66). I also checked Axpert King/VM III removable display firmware version 02.40, in case it's a recent fix. But 02.40 is the same. That's the earliest firmware that I have with Weco and Soltaro support. It looks to me that this has to be bytes 4:3 (3:2 in your numbering). my VM III panel is at 02.61, just tried, my panel shows low battery warning if the SOC is >= 0x000F, completelly ignoring the battery voltage sent @Coulomb I think you are right. Battery voltage is not at the last two bytes. I think I stop experimenting on Weco, unless I can find 02.66 firmware for the VM III panel. Not sure if 02.66 from King does work for my panel. Don't want to destoy it updating. @Coulomb You have uploaded 02.66 and mentioned VM III, has someone verified it fits VM III panel? Edited November 23, 20214 yr by googy
November 23, 20214 yr Tried Soltaro, worked at first shot. while true; do cansend can0 00001872#33.02.D3.01.2C.01.90.01; sleep 1; cansend can0 00001874#29.02.00.00.21.00.00.01; sleep 1; done I can force inverter stop charging only by sending cansend can0 00001876#01.00.00.00.00.00.00.00 cansend can0 0000187B#00.00.00.00.00.00.00.00 cansend can0 0000187B#00.00.00.00.00.00.00.00 cansend can0 0000187B#00.00.00.00.00.00.00.00 Inverter sets warning 69 and stops charging. But I can't stop discharging, Inverter displays Warning 60, but output stays on (no AC input connected). cansend can0 00001875#E0.E0.E0.E0.E0.E0.E0.E0 cansend can0 00001876#E0.E0.00.00.00.00.00.00 cansend can0 0000187B#00.00.00.00.00.00.00.00 cansend can0 0000187B#00.00.00.00.00.00.00.00 cansend can0 0000187B#00.00.00.00.00.00.00.00 Can't verify if charging stops, because no AC input connected and not enough sun now, but graphical powerflow symbols show charging and discanrging stays on. For reference in the LiB protocol: charge disable + discharge enable -> warning 69, works as it should, also the powerflow symbols do confirm MPPT charger is disabled charge disable + discharge disable -> warning 60, does not work, just like Soltaro above, everything stays on charge enable + discharge disable -> warning 71, works as it should, MPPT is on and DC/AC is off, no output voltage and you hear relays switching PS: firmware is 41.17 and 02.61 Edited November 23, 20214 yr by googy
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.