googy
Members
-
Joined
-
Last visited
Reputation Activity
-
googy got a reaction from Coulomb in BMS communication with Axpert MAXJust for completeness, here is my Proof of Concept implementation of the LiB protocol.
lib_protocol.zip BMS communication protocol 20201202(2).pdf
-
googy got a reaction from BritishRacingGreen in BMS communication with Axpert MAXTried 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
-
googy got a reaction from BritishRacingGreen in BMS communication with Axpert MAXTried 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.
-
googy got a reaction from Coulomb in BMS communication with Axpert MAXTried 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.
-
googy reacted to Coulomb in BMS communication with Axpert MAXAs 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.
-
googy got a reaction from 87 Dream in BMS communication with Axpert MAXI 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