diy solar

diy solar

This is how you can use any LiFePo4 / Lithium battery single/multiple BMS(es) with any Inverter

@robby Yes, you and do that too, use your eFlex batteries on e.g. can0 and also hook up your EG3LL battery on can1 and hook up the inverter on can2. Or RS485 or whatever is supported by the inverter or EG4LL.
Great work my friend this is a fantastic piece of gear that was really needed.
Does your software support the BMS in the eFlex?
 
@Daddy Tanuki great, I found the ModBus specification here: https://www.morningstarcorp.com/wp-...-doc-tristar-mppt-modbus-specification-en.pdf
That should be enough to create a binding for the TriStar TS-MPPT-60. Daly BMSes are already supported.
So you would only hook up the Raspberry PI between the Daly BMS and the TriStar right?
well i need to get a raspberry pi first! ha ha ha. I am new to all of this so i will start looking into what i need as far as the raspberry pi. and move from there. anybody out there reading got a good tutorial?
 
well i need to get a raspberry pi first! ha ha ha. I am new to all of this so i will start looking into what i need as far as the raspberry pi. and move from there. anybody out there reading got a good tutorial?
Here's your shopping list :)
- Raspberry Pi 4B 4gb or 8gb (similar to that)
- Waveshare RS485/CAN (if your Daly has the CAN specifically!!! enabled)
or
-Waveshare 2-Channel RS485 (if you just have UART/RS485 on your Daly)
- 2 RJ45 network cables CAT5 or CAT6

The Raspberry PI is simply run from the SD card. You need to download the Raspberry PI Imager, plug the SD card in your PC and choose the Raspian OS 64bit to be installed on the SD card. Plug the SD card into your PI and boot. In the Terminal :
Code:
sudo apt update
sudo apt upgrade
sudo apt install default-jdk

Done.
The Waveshare RS485/CAN has a good Wiki explaining how to install, but I can assist you in that if you have questions.
 
Last edited:
Here's your shopping list :)
- Raspberry Pi 4B 4gb or 8gb (similar to that)
- Waveshare RS485/CAN (if your Daly has the CAN specifically!!! enabled)
or
-Waveshare 2-Channel RS485 (if you just have UART/RS485 on your Daly)
- 2 RJ45 network cables CAT5 or CAT6

The Raspberry PI is simply run from the SD card. You need to download the Raspberry PI Imager, plug the SD card in your PC and choose the Raspian OS 64bit to be installed on the SD card. Plug the SD card into your PI and boot. In the Terminal :
Code:
sudo apt update
sudo apt upgrade
sudo apt install default-jdk

Done.
The Waveshare RS485/CAN has a good Wiki explaining how to install, but I can assist you in that if you have questions.
i will get shopping!
 
With PylonTech BMS, can you get cell level information?

Is it better to have the batteries in master/slave configuration, or read each battery separately (all in master mode)?
 
Is Orange Pi supported? I'm thinking of getting Solar Assistant, and could demo the program on that before commiting to it.
Any hardware which supports SocketCAN (via a CANBus hat) for CAN communication and/or RS485 (via a RS485 adapter) and can run Java.
 
With PylonTech BMS, can you get cell level information?

Is it better to have the batteries in master/slave configuration, or read each battery separately (all in master mode)?
PylonTech does not report single cell voltages - only the 2 cells with maximum or minimum voltage.

The low voltage protocol also does not send identifiers for different packs. So when running them in master/slave configuration the master will most probably aggregate the data and I see only one BMS.

The high voltage protocol does send identifiers (1-15).

Running each of the multiple BMSes separately (on a separate [can] port) is also possible and will give you more details.

So it depends on your BMS if its LV or HV (I think in your case LV) and on what level of details you like to receive.
 
Running each of the multiple BMSes separately (on a separate [can] port) is also possible and will give you more details.
.
so i will need a separate can bus for each battery if run separately (all master). They can't share one can bus.

The battery does have rs485 connector. Any way to get that to work?
 
so i will need a separate can bus for each battery if run separately (all master). They can't share one can bus.

The battery does have rs485 connector. Any way to get that to work?
Well, as I mentioned above, you can run them in a master/slave configuration and the master will most probably aggregate the data.
The RS485 is for the JK BMS right?
 
Well, as I mentioned above, you can run them in a master/slave configuration and the master will most probably aggregate the data.
The RS485 is for the JK BMS right?
I can see the details on the jk bms app. I'm more interested in seeing details on the endurenergy batteries I have.
 
I can see the details on the jk bms app. I'm more interested in seeing details on the endurenergy batteries I have.
You're getting me a little confused. Your EndurEnergy ESP-5100 has a CAN interface and, as I mentioned above, it looks like they support the Pylontech CAN protocol. What would you like to do with RS485?
Can you open a discussion or issue over at GitHub BMS-to-Inverter please then we can discuss this on a separate topic? Otherwise this thread gets too overloaded and its hard to follow each request and find the information.
 
You're getting me a little confused. Your EndurEnergy ESP-5100 has a CAN interface and, as I mentioned above, it looks like they support the Pylontech CAN protocol. What would you like to do with RS485?
It is my understanding that CAN protocol typically provides only high level information. RS485 is what is used to get cell level information. Or is it the same information is provided either way by the BMS, and it is BMS limitations that are my problem?
 
It is my understanding that CAN protocol typically provides only high level information. RS485 is what is used to get cell level information. Or is it the same information is provided either way by the BMS, and it is BMS limitations that are my problem?
No, you usually get the same information via CAN and RS485. But CAN is a lot faster and more reliable than RS485.
 
JK BMS compatibility is working really well. Thank you for getting this working :)

Edit: I should add the hardware I'm using:
Pi 4B 4GB with Bookworm.
Waveshare RS485/CAN hat https://www.waveshare.com/rs485-can-hat.htm
JK TTL-RS485 adapter

Prerequisite to start;
Per the Waveshare guidance, need to add the following to the Pi config.txt file.
Code:
sudo nano /boot/config.txt
and add and save;
Code:
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25,spimaxfrequency=2000000

Then, after reboot...
...open a terminal and enter;
Code:
stty -F /dev/ttyS0 9600
to set the right bitrate for the JK TTL-485 adapter
and the following for the CAN port;
Code:
sudo ip link set can0 up type can bitrate 500000
(or the bitrate of your inverter's CAN port)
and
Code:
sudo ifconfig can0 txqueuelen 65536
 
Last edited:
@TolSol - Very nice. Question - what about getting the info from batteries with Bluetooth only and parsing the data up to the inverter? I would be real interested in that and could also test. Pretty decent with Linux and have a pi deep in a closet somewhere gathering dust. I have an EG4 18kpv inverter…and use waterproof Bluetooth batteries…
 
Last edited:
Back
Top