So the samsung can do the two communication methods. The one using the arduino is fine, but you dont need to use an arduino, because the battery can communicate via can directly. So instead of using an arduino to translate the communication, you can just run the translator on the cerbo, saving you hassle and added complexity with a another device.
Essentially its the same as what I propose. Just with added complexity.
Hi people , just found this thread , I tried to set up a GX Mk 2 Cerbo using a Muncha / Snoopy version from GitHub but it wont run and wont even allow me to connect to it through VRM.
Can i tick off some basics with people here please ? There has been no replies on the Samsung / Reddit page for 5 months.
Terminating Resistance Switches (TR) are located above the four RJ45 plugs on the front left of the battery.
The manual says ;
Internal CAN BUS is used for communication among the Modules. Terminating resistance must be set at the start and end of the internal CAN BUS. You must turn on the TR switch of first and last Module ID number. The TR switch is turned on in only one(single module system) or two modules in the system.
The manual is a bit unclear as to which TR switches should be turned on , and there are three of them above the RJ45 plugs.
Any guidance from others here ? did you change these TR switches on the first and last battery and which of those three switches did you turn on ?
Also , in the Cerbo options System setup > battery monitor > did you set it to Automatic ?
Did you change BAUD rate using the top row of Dip switches ?
I don’t know if you have access to a cheap oscilloscope, you can get them for about 30 buckettybucks on your web shop of choice, but that would be the most useful tool to getting your coms up and running. Off the top my head, you need to correctly set all the dip switches on your batteries for any coms to work.
Note this project is still theoretical until its actually tested since I don’t have any Samsung batteries to test
I just ported my system to the Samsung description attached in the first comment. If your using the same batteries maybe having a look in that documentation would be of use.
Using an oscilloscope is out of my pay grade and reluctant to learn a new thing at my age .
Do you know what the Samsung protocol is ?
Victron state compatibility with Pylontech , BYD and others but there has not been an update to their list since July 2025 ?
I have emailed Victron tech support and messaged their facebook page a few times asking if they can write an update in Victron OS to resolve this issue but so far no news , There is a few thousand of these ELPM432’s out there.
According to the data sheet it can do either CAN or UART.
My project is intended to use the can protocol, and the other one uses an Arduino to aggregate the data for the cerbo.
Have you looked at my installation page on GitHub? Do you feel comfortable installing it that way?
Because to be quite straightforward, if you feel like an oscilloscope is beyond your capacity, then it’s likely the installation is also beyond your capacity. And there is no fault in that.
The oscilloscope will only show you if data is being sent on the lines correctly. If there is data on the lines, you should be able to implement the project correctly.
I did provide a pinout for use with the cerbo, that would be the first place I’d look to make sure the cerbo and battery can even communicate
Thankyou , i note you have worked on an Arduino based system , Before i went to Cerbo i installed on a Raspberry Pi , with adaptors VeDirect to USB ,VE BUS to USB interface and CAN HAT but i found it would only reboot 2 - 3 times out of every 5 attempts , The Cerbo doesnt have that issue but i cant see battery data apart from voltage.
The cable pinouts i was given from the Reddit page were ; GND,HIGH,LOW pins on your Battery BMS to the Cerbo GX corresponding pins. GND = Pin 3, CAN-Low = Pin 8, CAN-High = Pin 7. The Samsung BMS in the ELPM482-00005 module uses Pins: GND = Pin 3, CAN-Low = Pin 2, CAN-High = Pin 1.
Finally got my Cerbo and have the comms between my computer/phone and the Cerbo working. Now I’m looking to get the wiring working. Could you please do a “wiring for dummies” post? How do I wire the pins together? I have a RJ45 to wire terminal, but how do I know which post/terminal is Pin1 and which is Pin8? Sorry if this is an overly basic question.
After I’ve done that, its onto tinkering with the firmware as per your post.
i believe the fault with my system was that the GitHub software was written for Cerbo Mark 1 which has a BMS - CAN port , however the Cerbo Mark 2 that i have does not have that BMS port , it has two x Ve-Can ports so the software has to be rewritten , changing code that requests data from Can-BMS , it must be changed to vecan0 or vecan1 .
this is the original code for Cerbo Mk 1 , its over my head to attempt to edit it to use on Cerbo Mk2.
You just have to set the second CAN port to have a BMS CAN profile in the system config.
The mk1 just has one port locked to BMS CAN where the MK2 can be either.
I did that but its not enough to make it functional , i used WINSCD to scan through the code and i can see where the settings are wrong .
If you run IFConfig from a SSH putty session , it shows TX RX errors , If you run Candump Can0 or candump can1 you get no data.
If you change code to remove canbms and change it to vecan0 or vecan1 you should get Can BMS data but its over my head to modify the code to fix the issues with it.
Yes , i appreciate they put alot of hours in to it , but its a bit of a headfk when you spend money on the hardware , spend time on setup , then waste 50 - 80 hours trying to make something work that never will until the code is updated to reflect the hardware.
My option is to sell the Cerbo Mk2 and try it all again on a Mark 1.
The code runs “candump any” so it is monitoring all CAN data. It should make no difference if you are on a mk2 or mk1 as long as one interface is set to BMS CAN with the correct baud rate and the device is properly cabled and terminated.
Just wanted to let you know that I got it working - thanks so much for your help. I monkeyed up the wiring, which delayed me a lot. Help from Claude also worked around a few dumb fails by me.