Inverter: Sungrow - dalathegreat/Battery-Emulator GitHub Wiki
[!CAUTION] Working with high voltage is dangerous. Always follow local laws and regulations regarding high voltage work. If you are unsure about the rules in your country, consult a licensed electrician for more information. DC ARC is a REAL THING - ENSURE NO LOAD is on any DC wires before working on the system.
Compatible Sungrow Inverters
The Sungrow inverters commonly uses "BYD Battery-Box Premium HVS over CAN Bus", abbreviated BYD CAN
- Sungrow SH5.0/6.0/8.0/10RT: â (BYD CAN)
- Sungrow SH3.0/3.6/4.0/5.0/6.0RS: â (BYD CAN)
- Sungrow SH3.0/3.6/4.0/5.0/6.0RS: Australia No BYD support, ("Sungrow SBRXXX battery over CAN bus" protocol is in beta)
- SH5.0RS AU on old inverter software works on BYD CAN
- Sungrow SH8.0RS/SH10RS, SH15T-25T: Australia No BYD support, ("Sungrow SBRXXX battery over CAN bus" protocol is in beta)
- Sungrow SH15/20/25T: â (BYD CAN)
Note: In some countries support for BYD is officially dropped, for instance in the new SH15T, SH20T and SH25T. Sungrow wants to promote their own battery system. In some countries it's rumoured to even be dropped in the SHxRT models. You can use older firmware for your inverter to get it working, OR if you have a model that cannot use BYD CAN, try to use "Sungrow SBRXXX battery over CAN bus" instead. As of June 2024, Australia has officially dropped all support for batteries other than Sungrow: https://service.sungrowpower.com.au/TI_20210824_Approved%20battery%20declaration%20for%20sungrow%20hybrid%20inverters_V16_EN-1.pdf
SUNGROW_CAN is currently functional as a beta, as of Oct 2025.
Communication wiring
[!NOTE] It is required to have the Sungrow on a dedicated CAN channel for maximum safety and stability. Sungrow SBRXXX uses a bitrate of 250k which is also likely different to the battery you will be using.
The Sungrow inverter works via CAN. The LilyGo board can have both a CAN battery and a CAN inverter connected on the same pins. When the board is used with two CAN devices at the same time that have termination resistors in all ends, the terminating resistor needs to be removed from the board. Please measure CAN termination if you have issues. This is explained in CAN-troubleshooting
âšī¸ Always check the termination resistance of the system! That way you know if resistor needs to be removed or not.
âšī¸ Grounding is extremely important. Make sure the battery case is connected to protective earth, and the shield part of the twisted pair CAN is connected to PE also! Failing to do this will result in CAN errors.
If the inverter CAN wiring is correct and with the inverter on, you should see a voltage of over 1V (eg 1.38V) - wires plugged into the inverter only.
Some Sungrow inverters seem to have CAN communication issues when the battery and inverter are on the same LilyGo (known issue with SH5.0RS and Leaf battery). To resolve this, you can do either of the following:
- You can add an isolated MCP2515 CAN channel
- You can add an isolated MCP2518 CANFD channel, and run it in classic CAN mode
- You can use the Stark CMR hardware
- You can use a CAN filter between inverter and the rest of the system
[!CAUTION] If you are using only a single CAN channel, Sungrow has a nasty software bug. Incase the LilyGo board is disconnected while the system is running (wire break or hardware failure), the inverter will still charge/discharge the battery! This is because the Sungrow inverter sees the automotive CAN messages as the system still being alive. This can lead to a dangerous situation where the battery is over/under-charged. This can be avoided by using a dedicated CAN channel for the inverter.
Sungrow Inverters have the wiring diagram on the side of the Inverter, check this, some are different. As at 2024, the inverter wiring diagram for an 'SHxxRS' Inverter is:
Note: Sungrow inverters also have an inbuilt FUSE on the battery terminals. Check the data Spec sheet:
SH3.0_3.6_4.0_5.0_6.0RS
Which protocol to use
For this inverter type, use the option called "BYD Battery-Box Premium HVS over CAN Bus" under the "Inverter Protocol" setting
Setting up the Sungrow inverter for self-consumption mode2
âšī¸ If you want to limit export power into the grid (feed-in) you will need to use Sungrow Smartmeter.
It is needed so that the system can measure consumption and generation.
Sungrow Smart Meter model "DTSU666" that comes with the SH10RT is compatible.
Adjust the parameters in Winet-S local web interface through web browser, iSolarCloud app or isolarcloud.com
Settings at Winet-S local web interface
Settings at isolarcloud.com
Note, it takes 10-15minutes for the iSolarCloud software to update the details for the Inverter.
Starting and stopping the system (Leaf specific)
When turning the system on, follow this startup procedure. Work quick, to avoid the inverter getting stuck in battery not detected mode.
Startup
- First start the Sungrow inverter via AC switch
- Turn on the Solar DC switch
- Turn on the Battery DC switch
- Start the LEAF battery BMS with 12V
- Start the LilyGo hardware with 5V
- Then either handle precharge/contactor closing manually or let the LilyGo hardware handle it automatically
Shutdown
- Turn off the LEAF BMS, cut the 12V supply to it. Wait 60seconds
- LilyGo status LED will turn red. The Sungrow inverter will within 30seconds stop using the battery.
- After 30s has passed, turn off the contactors incase the LilyGo isn't setup to automatically handle them
- Turn off the Sungrow inverter via AC switch
- Turn off the Battery DC switch
- Turn off the Solar DC switch
Notes on startup
Also, the sungrow is a bit finnicky with startup timing, For me the following works everytime 100% : From everything down, startup the complete system, inverter, then battery emulator and then battery (in short order). As soon as the emulator complains about missing inverter, reboot the emulator. Do this 2 or 3 times, and eventually the inverter checks and emulator checks will run in sync and they will happily talk to eachother and continue to do so
Troubleshooting
User note on Firmware: Just updated my SH10RT from SAPPHIRE-H 03011.95.01 to .95.07 and had no data. After a downgrade to 95.01 all data came back.
Important Note for SH10RT(AU) Inverter Users:
You may experience unusual behavior even if all connections are correctly made. Common issues include:
- Error codes 714 and 703 appearing in the iSolarCloud app
- An "Inverter_missing" message on the LilyGO BMS interface
If you encounter these errors, clear any faults, error codes, and battery emulator events, then wait a short while for the system to complete the automatic handshake. This should restore normal communication and operation.
Successfully tested with:
- BYD CAN protocol
- Battery Emulator firmware version 8.0
- LCD firmware:
- MDSP firmware:
Sungrow SBRXXX emulation over CAN bus
- Battery Emulator firmware version 9.1.4
- SH10RS (AU)
- LCD (ARM) firmware: SUNSTONE-H_01011.02.55
- MDSP firmware: SUNSTONE-H_03021.01.09
- SDSP firmware: SUNSTONE-H_04011.02.03
- AFCI firmware: AFCI_06002.10.11
Hardware configuration:
- RJXZS BMS â CAN NATIVE (LilyGO) â Battery Emulator â MCP2515 CAN module (with J1 header jumped) â inverter using PIN5 and PIN7