We're doing some CAN-bus work to talk to Victron Cerbo GX. It appears we have found a bug. For Battery Voltage we think we should send an Unsigned Int, but it appears that the Cerbo GX interprets this as a Signed Int.
This site is now in read-only archive mode. Please move all discussion, and create a new account at the new Victron Community site.
Hi. I happened to see this message, and checked the docs: for 0x356 its a signed int.
Don’t ask me why its like that, has been since forever - but thats how it is.
Success, and for full docs, ask a sales manager
Hi @klikhier
Matthijs is right, it's signed. Even the protocol calls for a "16 bits signed int, 2`s complement"
And battery voltage is always a positive number, right?
So signed or unsigned, the value should be the same...
Alex
But what if we want to send Battery Voltage of (for example) 350V to the Cerbo. This won't fit in a 16 bits signed int, correct?
Correct, but you need to take into account that Cerbo is designed for Victron "universe" and I didn't saw until now a Victron equipment to work with a battery bigger than 48V type...
Also these values are somehow adopted from various BMS protocols and these protocols, as I've said, say "16 bit signed". Example below...
Additional resources still need to be added for this topic
42 People are following this question.