diy solar

diy solar

Need help / info about CAN protocol from HV battery systems which communicate with Deye HV inverters.

RichardRSB

New Member
Joined
Jan 24, 2023
Messages
14
Location
Netherlands
EDIT / UPDATE: As per May-29, i managed to get this working. Thanks for everyone who looked into this.

I am building an hybrid off-grid system with a Deye (Sol-Ark / Sunsink) and a Tesla model 3 battery connected with an OrionBMS2.
The system runs. Like a baby. But i can't get the OrionBMS2 communicating with the Deye.
The OrionBMS2 has a fully customizable CAN protocol. Everything is configurable.

The inverter is an Deye hybrid HV system model SUN-20K-SG01HP3-EU-AM2.
Those SG01HP3 series are quite new, and getting more and more popular due to the availability
of used EV HV batteries.
Since it is a HV system, it uses quite a different set of CAN Id’s compared with the
Low Voltage systems. Also the broadcast Id is different.

I found a document describing the CAN-Id’s. I tried this approach, but i can’t get it to connect.
Now i am fairly new to CAN. I do not fully understand the protocol, and despite of learning and reading tons
of documents i am not able to get it to work.

What i know:
The Deye inverters are “self-adopting” to battery systems, hence there is no setting in the inverter other than
enable, or disable. They approved a series of batteries, and PYLON is one of them. I am not sure how they recognize
the batteries, but i guess they look at the manufacturer name at CAN-Id 0x42F0. Here is the list the Deye handles without problems:

On CAN 00:
Deye BOS-G Series/GB-L Series
Dyness HV Series/TOWER Series/Orion Series
UZ UZ-PLH/UZ-PSE
Shoto SDA10-48100
PYLON Powercube Series/Force H Series
Greenrich HV IS001
On CAN 01:
BYD HVS Series/HVM Series

So i need to emulate one of those batteries in the OrionBMS.

Above batteries have a common dataset talking to the Deye. I have the Deye datasheet, but i can't get it running.
What am i doing wrong?
Is there anyone who knows the CAN data from one of the batteries in the above list?

I asked BYD and Pylon for the CAN HV protocol data. No positive response.
Also i asked Deye about this. My request needs to be approved. (sigh).
I’ve got a general document which i think Deye uses, but i can’t get it working. The inverter
does not recognize the data, maybe due to the fact i don't know if i implemented it correctly, and
how to insert the manufacturer name (e.g. PYLON) into the CAN data on the OrionBMS2.

I hope someone with a detailed knowledge of CAN can tell me how to format the CAN data send to the inverter.
I am capable of basic understanding if this stuff. I get confused in bit and byte orders, and got stuck on adding
ASCII data at CAN-Id 0x42F0. Also i don’t know if it is required to insert all the Id’s, or if you can safely leave out
unused / meaningless fields.

I only want the cell broadcast, SoC, SoH, Voltage, Temperature, Power and Current.

Attached the CAN data which Deye uses (listen to). The protocol is also used by Sermatec. I do have the Deye version also, but this Sermatec document is more readable and the register Id list is exactly the same.
 

Attachments

  • CAN-Bus-Protocol-Sermatec-high-voltage-V1.1810kW.pdf
    846.8 KB · Views: 175
Last edited:
If you are using an Orion Jr2 there is an option in the CAN configuration tab to use a Victon out put. I have an Orion BMS Jr2 communicating with my SolArk. I am not sure the regular Orion BMS has that capability because it was designed for EV applications. The Jr2 is for 48 volt stationary batteries typically used in hybrid inverters. There may be a protocol that works if indeed you have the regular BMS2.
 
Last edited:
If you are using an Orion Jr2 there is an option in the CAN configuration tab to use a Victon out put. I have an Orion BMS Jr2 communicating with my SolArk. I am not sure the regular Orion BMS has that capability because it was designed for EV applications. The Jr2 is for 48 volt stationary batteries typically used in hybrid inverters. There may be a protocol that works if indeed you have the regular BMS2.
The Id-set in the Victron / Pylon dataset is for LV batteries. The HV batteries are using a complete other Id dataset.
 
I did just get the following from SolArk support about the CANBUS protocol. I don't know if it will work for the DEYE but passing it along in case it does.
 

Attachments

  • Sol-Ark CAN Bus Protocol V1.3.pdf
    237.3 KB · Views: 149
I did just get the following from SolArk support about the CANBUS protocol. I don't know if it will work for the DEYE but passing it along in case it does.
Thanks for posting. This is indeed the protocol from Deye / Sol-Ark, but only for the LV inverters. The HV series uses a different set of Id's
 
I am building an hybrid off-grid system with a Deye (Sol-Ark / Sunsink) and a Tesla model 3 battery connected with an OrionBMS2.
The system runs. Like a baby. But i can't get the OrionBMS2 communicating with the Deye.
The OrionBMS2 has a fully customizable CAN protocol. Everything is configurable.

The inverter is an Deye hybrid HV system model SUN-20K-SG01HP3-EU-AM2.
Those SG01HP3 series are quite new, and getting more and more popular due to the availability
of used EV HV batteries.
Since it is a HV system, it uses quite a different set of CAN Id’s compared with the
Low Voltage systems. Also the broadcast Id is different.

I found a document describing the CAN-Id’s. I tried this approach, but i can’t get it to connect.
Now i am fairly new to CAN. I do not fully understand the protocol, and despite of learning and reading tons
of documents i am not able to get it to work.

What i know:
The Deye inverters are “self-adopting” to battery systems, hence there is no setting in the inverter other than
enable, or disable. They approved a series of batteries, and PYLON is one of them. I am not sure how they recognize
the batteries, but i guess they look at the manufacturer name at CAN-Id 0x42F0. Here is the list the Deye handles without problems:

On CAN 00:
Deye BOS-G Series/GB-L Series
Dyness HV Series/TOWER Series/Orion Series
UZ UZ-PLH/UZ-PSE
Shoto SDA10-48100
PYLON Powercube Series/Force H Series
Greenrich HV IS001
On CAN 01:
BYD HVS Series/HVM Series

So i need to emulate one of those batteries in the OrionBMS.

Above batteries have a common dataset talking to the Deye. I have the Deye datasheet, but i can't get it running.
What am i doing wrong?
Is there anyone who knows the CAN data from one of the batteries in the above list?

I asked BYD and Pylon for the CAN HV protocol data. No positive response.
Also i asked Deye about this. My request needs to be approved. (sigh).
I’ve got a general document which i think Deye uses, but i can’t get it working. The inverter
does not recognize the data, maybe due to the fact i don't know if i implemented it correctly, and
how to insert the manufacturer name (e.g. PYLON) into the CAN data on the OrionBMS2.

I hope someone with a detailed knowledge of CAN can tell me how to format the CAN data send to the inverter.
I am capable of basic understanding if this stuff. I get confused in bit and byte orders, and got stuck on adding
ASCII data at CAN-Id 0x42F0. Also i don’t know if it is required to insert all the Id’s, or if you can safely leave out
unused / meaningless fields.

I only want the cell broadcast, SoC, SoH, Voltage, Temperature, Power and Current.

Attached the CAN data which Deye uses (listen to). The protocol is also used by Sermatec. I do have the Deye version also, but this Sermatec document is more readable and the register Id list is exactly the same.
This is great!!!!!

I want to use batteries from GSO - High Voltage 115kWh 16000€ - but GSO doesn't get the protocol.
Could you send / post the original Deye CAN protocol document also?

Would help soooo much
 
This is great!!!!!

I want to use batteries from GSO - High Voltage 115kWh 16000€ - but GSO doesn't get the protocol.
Could you send / post the original Deye CAN protocol document also?

Would help soooo much
Here you go... I got this from Deye. Let me know if you find something useful.
What i need / want to know is:
Comms: Little Endian or Big Endian?
How does the Deye recognize an approved battery. How to emulate an approved battery.
I use an OrionBMS2 which has a fully programmable CAN system. Problem is, i don't know what to put in the CAN-Id's besides
the obvious.
 

Attachments

  • Deye 2_CAN-Bus-Protocol-high-voltag-V1.17.pdf
    231.7 KB · Views: 157
wow thank you,

I understand your questions / problems, but still have no good answer. But I'm trying to get these answers too.

Is it for sure, that the document is Deye origin?
 
I still try to get a confirmation this is the real Deye inverter high-voltage battery protocol.

BUT did you know about the "USER DEFINED BATTERY MODE" of DEYE High Voltage Inverter???

As far as I understood you can connect high voltage batteries to the Deye Inverter without CAN-BUS or RS-485 communication!!!

User defined Battery.JPGUser defined Battery Vid setting 1.JPGUser defined Battery Vid setting 2.JPGUser defined Battery Vid setting 3.JPG
 
Explanation:

DEYE BMS - User Defined Battery:

With the Deye, certain voltages, capacitance and currents are set. The Deye uses this to control the charging of the battery. The cells are not managed here. That's why you shouldn't connect LIFEPO4 to the Deye without an additional real BMS (e.g. Daly or OrionBMS).

If this real BMS can also communicate with the DEYE via CAN-BUS, i.e. the so-called inverter battery protocol, then it is even better.
In this case, the battery's BMS tells the DEYE Inverter what voltage to apply and what currents to apply. Then the DEYE does exactly what the BMS of the battery tells it to do.
 
Explanation:

DEYE BMS - User Defined Battery:

With the Deye, certain voltages, capacitance and currents are set. The Deye uses this to control the charging of the battery. The cells are not managed here. That's why you shouldn't connect LIFEPO4 to the Deye without an additional real BMS (e.g. Daly or OrionBMS).

If this real BMS can also communicate with the DEYE via CAN-BUS, i.e. the so-called inverter battery protocol, then it is even better.
In this case, the battery's BMS tells the DEYE Inverter what voltage to apply and what currents to apply. Then the DEYE does exactly what the BMS of the battery tells it to do.
Correct. V-mode is a bit limited due to the voltage losses over the cable. If the BMS communicates it tells the correct voltage off the pack, and thus it enables potentially more capacity. This works at the moment, but i need to iron out some wrinkles.
In Lithium mode the Orion tells the Deye the Voltage, current, and temperature measured at the battery, also the BMS can limit the inverter. This adds an extra layer of security. Currently i see correct %, Volts, current, and temperatures. I only need to find the correct hysteresis values in the Orion to prevent it switches off the contactor if the Deye leaks current (and it does).
In Lithium mode i can charge the 403V battery to 100% or 90% exactly. In voltage mode that is not possible. The same is valid for the lower end (0% and 10%).
 
wow thank you,

I understand your questions / problems, but still have no good answer. But I'm trying to get these answers too.

Is it for sure, that the document is Deye origin?
I got this from Deye support / Service upon repeatedly request.
 
EDIT / UPDATE: As per May-29, i managed to get this working. Thanks for everyone who looked into this.

I am building an hybrid off-grid system with a Deye (Sol-Ark / Sunsink) and a Tesla model 3 battery connected with an OrionBMS2.
The system runs. Like a baby. But i can't get the OrionBMS2 communicating with the Deye.
The OrionBMS2 has a fully customizable CAN protocol. Everything is configurable.

The inverter is an Deye hybrid HV system model SUN-20K-SG01HP3-EU-AM2.
Those SG01HP3 series are quite new, and getting more and more popular due to the availability
of used EV HV batteries.
Since it is a HV system, it uses quite a different set of CAN Id’s compared with the
Low Voltage systems. Also the broadcast Id is different.

I found a document describing the CAN-Id’s. I tried this approach, but i can’t get it to connect.
Now i am fairly new to CAN. I do not fully understand the protocol, and despite of learning and reading tons
of documents i am not able to get it to work.

What i know:
The Deye inverters are “self-adopting” to battery systems, hence there is no setting in the inverter other than
enable, or disable. They approved a series of batteries, and PYLON is one of them. I am not sure how they recognize
the batteries, but i guess they look at the manufacturer name at CAN-Id 0x42F0. Here is the list the Deye handles without problems:

On CAN 00:
Deye BOS-G Series/GB-L Series
Dyness HV Series/TOWER Series/Orion Series
UZ UZ-PLH/UZ-PSE
Shoto SDA10-48100
PYLON Powercube Series/Force H Series
Greenrich HV IS001
On CAN 01:
BYD HVS Series/HVM Series

So i need to emulate one of those batteries in the OrionBMS.

Above batteries have a common dataset talking to the Deye. I have the Deye datasheet, but i can't get it running.
What am i doing wrong?
Is there anyone who knows the CAN data from one of the batteries in the above list?

I asked BYD and Pylon for the CAN HV protocol data. No positive response.
Also i asked Deye about this. My request needs to be approved. (sigh).
I’ve got a general document which i think Deye uses, but i can’t get it working. The inverter
does not recognize the data, maybe due to the fact i don't know if i implemented it correctly, and
how to insert the manufacturer name (e.g. PYLON) into the CAN data on the OrionBMS2.

I hope someone with a detailed knowledge of CAN can tell me how to format the CAN data send to the inverter.
I am capable of basic understanding if this stuff. I get confused in bit and byte orders, and got stuck on adding
ASCII data at CAN-Id 0x42F0. Also i don’t know if it is required to insert all the Id’s, or if you can safely leave out
unused / meaningless fields.

I only want the cell broadcast, SoC, SoH, Voltage, Temperature, Power and Current.

Attached the CAN data which Deye uses (listen to). The protocol is also used by Sermatec. I do have the Deye version also, but this Sermatec document is more readable and the register Id list is exactly the same.
Could you share how you manaked to get the Deye inverter to communicate with the Orion2BMS?
Very curious as I'm looking to the best way of utilizing some 36s LGChem 151v modules and thinking 4-5 in seriel with a big Orion2BMS could be great - but are missing a suitable inverter/charger :)
Br
 
Could you share how you manaked to get the Deye inverter to communicate with the Orion2BMS?
I assume you are talking about the OrionJR2 BMS. I set the OrionJR2 to a Victron output and then followed the instructions on the SolArk communications document to connect to the CAN port on the SolArk 12K. I assume the Deye has a similar configuration. Or the thread in my signature or this thread where it is discussed:

EDIT: I did not see my earlier post where I realized that you were also talking about the High Voltage DEYE inverter with high voltage batteries. Earlier I had an original Orion BMS and talked with Orion about the CAN protocol and discovered that it is not implemented on that BMS. Mine was a version 1 and I do not know if it was . Sorry for the digression. I am traveling and cannot easily remember the details in past threads like these.
 
Last edited:
I assume you are talking about the OrionJR2 BMS. I set the OrionJR2 to a Victron output and then followed the instructions on the SolArk communications document to connect to the CAN port on the SolArk 12K. I assume the Deye has a similar configuration. Or the thread in my signature or this thread where it is discussed:

EDIT: I did not see my earlier post where I realized that you were also talking about the High Voltage DEYE inverter with high voltage batteries. Earlier I had an original Orion BMS and talked with Orion about the CAN protocol and discovered that it is not implemented on that BMS. Mine was a version 1 and I do not know if it was . Sorry for the digression. I am traveling and cannot easily remember the details in past threads like these.
No problem - thank you for the info :):)
 
Back
Top