Three phase HV Hybrid Inverter - Solax X3-Hybrid-8.0 + Solax Triple Power T58 HV Battery

Araknid

Member
Joined
Jun 1, 2020
Messages
43
Heya,

A quick rundown before I add more later.. Canbus between the Solax battery and inverter is listed below... Solax wouldn't give me this information directly, so well.. a peak canbus usb dump with busmaster and we have the full start-up init and 1 second poll plus keepalive messages.

Inverter polling for battery;
14:10:31:4824 Rx 1 0x1871 x 8 02 00 01 00 01 00 00 00
14:10:32:4822 Rx 1 0x1871 x 8 01 00 01 00 00 00 00 00
14:10:33:4823 Rx 1 0x1871 x 8 02 00 01 00 01 00 00 00
14:10:34:4823 Rx 1 0x1871 x 8 01 00 01 00 00 00 00 00
14:10:35:4822 Rx 1 0x1871 x 8 02 00 01 00 01 00 00 00
14:10:36:4822 Rx 1 0x1871 x 8 01 00 01 00 00 00 00 00
14:10:37:4823 Rx 1 0x1871 x 8 02 00 01 00 01 00 00 00
14:10:38:4823 Rx 1 0x1871 x 8 01 00 01 00 00 00 00 00
14:10:39:4822 Rx 1 0x1871 x 8 02 00 01 00 01 00 00 00
14:10:40:4821 Rx 1 0x1871 x 8 01 00 01 00 00 00 00 00

Start-up battery acknowledgement;
14:11:19:2726 Rx 1 0x100A001 x 0 <--- this message pops out just before the adoption.. could be a "wake up " from the battery
14:11:19:4897 Rx 1 0x1871 x 8 02 00 01 00 01 00 00 00 < -- from Inverter
14:11:19:4897 Rx 1 0x1801 x 8 02 00 01 00 01 00 00 00 < -- from battery
Once issued, 0x1871 02 00 01... does not come out again, it must be adopted thereafter

Messages start from the inverter every 1 second with a message on ID 0x1871
14:11:20:4897 Rx 1 0x1871 x 8 01 00 01 00 00 00 00 00 < -- from Inverter "Read"
14:11:20:4940 Rx 1 0x1872 x 8 44 0A 08 07 5E 01 5E 01 <..... from battery, details below
14:11:20:4957 Rx 1 0x1873 x 8 41 09 00 00 31 00 3E 02
14:11:20:4974 Rx 1 0x1874 x 8 24 01 16 01 21 00 21 00
14:11:20:4988 Rx 1 0x1875 x 8 1E 01 04 00 01 00 00 00
14:11:20:5002 Rx 1 0x1876 x 8 00 00 E2 0C 00 00 D7 0C
14:11:20:5018 Rx 1 0x1877 x 8 00 00 00 00 52 00 22 40
14:11:20:5033 Rx 1 0x1878 x 8 07 0A 00 00 10 27 00 00

Can-bus message specification is attached. This can be imported into ETAS BusMaster and replayed along with the attached log files.

I've attached the raw logs.. from pre-start to running from about 40% -> 60% -> 15% shutdown... about 12 hours or so of run-time.

1617929686469.png


Solax Triple Power T58 Master + Slave ~11.6 kWh 180-262 Vdc +-25A (Up to +-35A MAX)
1617929830324.png


Solax X3-Hybrid-8.0 - Three phase Hybrid Inverter with HV battery 8kW Solar & Battery Charge/Discharge
1617929934411.png



HV Battery input takes between 160 and 800 Vdc at 25A continuous MAX charge and/or discharge.... that leaves a lot of room to keep the inverter in the 8kW charge and discharge zone when above 300V.
 

Attachments

  • Solax X3 Hybrid Triple Power T58 Canbus Log.zip
    1.3 MB · Views: 38
  • Solax X3 Hybrid Triple Power T58 Canbus Definition (DBF).zip
    933 bytes · Views: 34
Last edited:

jhorisberger

New member
Joined
Apr 26, 2021
Messages
3
You Sir are my absolute hero!

I was getting ready to order batteries and an Inverter for a couple of thousand € just to get the logs of the CAN Bus. I have been bashing my head at the brick wall that is Solax customer service for over half a year. They kept promissing that they wil release a CAN specification and naive as i was, i continued to order and install my system, beliving that i wil get access to the data i need. I have a whole EPS ready system with a second life 60kWh traction battery out of one of our vehicles sitting there doing nothing.

I was getting quite desperate and thought one last goole search before ordering cannot hurt when i stumbled across this post. Not only do you have a trace of the Bus, you have also done the gruntwork of figuring out the signal definition. Christmas came early this year!

I wil try this out right away and wil hapily share my leanings if anything pops up

Thanks a bunch
 
Last edited:

jhorisberger

New member
Joined
Apr 26, 2021
Messages
3
It works!

1619553529252.png



After some trouble in the startup sequence (Have you tried turning it off and on again?) i got the inverter to accept my relayd and conditiond CAN messages.
While implementing the CAN driver i found some minor issues which i have corrected in the attached version 2. Changelog is in the zip.

I think the SOH variable is not actually the SOH. I couldent't find anywhere on the Inverter or the Modbus to get this value, but it rises and falls with the SOC in your log and is always a bit higher. I think it might be usable and actual SOC....


A few tips for anyone trying to connect batteries:

- BMS_Announce (Empty Message on 0x100A001) is needed by the Inverter. Otherwise it wil still send out INV_Requests with the packet type 2 on 0x1871 even if you answer correctly on 0x1801 and it won't accept any other values.

- INV_Requests packet type 3 seems to be the error package, but it dosen't follow the same protocol as defined in the Modbus TCP/RTU document. Needs further investigation and more real life errors......

- You don't actually have to "Answer" the INV_Request with your data packeges. The Inverter seems to be totally happy if I just send them over randomly but in a 1000ms interval

-the values in BMS_UnitTemp do not need to be set. It works fine with all of them at 0°C


For anyone interested i have also attached the Modbus TCP/RTU specification, which was the only thing i got out of the customer support at Solax that actualy has any real value. I am logging from my Inverter via nodeRed and it has been behaving quite nicely.
 

Attachments

  • Solax X3 BMS v2.zip
    2.4 KB · Views: 33
  • Hybrid X1&X3-G3 ModbusTCP&RTU V3.21- English.pdf
    623.5 KB · Views: 30

bigmotherwhale

New member
Joined
Apr 16, 2021
Messages
5
Great to see this, I have had my eye on these inverters for while to pair with an outlander battery and a simp BMS, What pack do you have and what BMS are you using?
 

jhorisberger

New member
Joined
Apr 26, 2021
Messages
3
I'm using a KBP60 Pack from Kreisel Electric. It has a BMS from STW fully integrated, including current measurement, switching and fusing. The 60kWh is a bit overkill for our 3 party house but it was originaly installed in of one of our electric excavators. You take what you can get .....

The CAN bus is "translated" by a custom controller. Since i already know the BMS side well from work, mapping it to what the Solax expects was not that much of a problen once i knew the CAN definition.
Nothing you can't do on the Teensy of the simpBMS with a couple hundred lines of code and a few cups of coffee either. Or on a any old Arduino with a CAN shield for that matter....

1619560116167.png
 

bigmotherwhale

New member
Joined
Apr 16, 2021
Messages
5
Cool setup, quite compact for 60kwh, programming like that is well beyond me, i would rather get someone to do it for me who knows what they are doing. If I manage to get my hands on one of these things as the past two times I have won them on eBay the seller has cancelled or gone quiet afterwards, very frustrating, I guess they didn't get what they were after for them, i will then speak to the creator of the simpBMS he always seems keen and helpful adding new device compatibility.
 

Araknid

Member
Joined
Jun 1, 2020
Messages
43
Oh
It works!

View attachment 24839


After some trouble in the startup sequence (Have you tried turning it off and on again?) i got the inverter to accept my relayd and conditiond CAN messages.
While implementing the CAN driver i found some minor issues which i have corrected in the attached version 2. Changelog is in the zip.

I think the SOH variable is not actually the SOH. I couldent't find anywhere on the Inverter or the Modbus to get this value, but it rises and falls with the SOC in your log and is always a bit higher. I think it might be usable and actual SOC....


A few tips for anyone trying to connect batteries:

- BMS_Announce (Empty Message on 0x100A001) is needed by the Inverter. Otherwise it wil still send out INV_Requests with the packet type 2 on 0x1871 even if you answer correctly on 0x1801 and it won't accept any other values.

- INV_Requests packet type 3 seems to be the error package, but it dosen't follow the same protocol as defined in the Modbus TCP/RTU document. Needs further investigation and more real life errors......

- You don't actually have to "Answer" the INV_Request with your data packeges. The Inverter seems to be totally happy if I just send them over randomly but in a 1000ms interval

-the values in BMS_UnitTemp do not need to be set. It works fine with all of them at 0°C


For anyone interested i have also attached the Modbus TCP/RTU specification, which was the only thing i got out of the customer support at Solax that actualy has any real value. I am logging from my Inverter via nodeRed and it has been behaving quite nicely

oh Ye SoH is actually kWh

sorry I have an update here for it but didn’t post it. I’ll be free next week to post :)

glad this helped :) seems a lot of googling and no one had ever done it for whatever reason... I still have to finish my install proper
839F9BF7-A7D8-4BC5-86AB-50AF2DBB14BE.jpeg
 

Araknid

Member
Joined
Jun 1, 2020
Messages
43
I'm using a KBP60 Pack from Kreisel Electric. It has a BMS from STW fully integrated, including current measurement, switching and fusing. The 60kWh is a bit overkill for our 3 party house but it was originaly installed in of one of our electric excavators. You take what you can get .....

The CAN bus is "translated" by a custom controller. Since i already know the BMS side well from work, mapping it to what the Solax expects was not that much of a problen once i knew the CAN definition.
Nothing you can't do on the Teensy of the simpBMS with a couple hundred lines of code and a few cups of coffee either. Or on a any old Arduino with a CAN shield for that matter....

View attachment 24844

Wow cool setup :)

I havnt done the exact bits of the error codes yet. I’m assuming their copy pasted form their comm spec, so the manual may line up.
 
Top