Is this protocol CAN bus or RS485?

Yes, I am wondering; is this printout:


... depicting a CAN bus or RS485 protocol?

I am missing a CRC at the end?!
If I add the board number 0x040n80|D01804010613 we have 9 bytes. It's usually 11?!

In essence, I am confused.

Any hints appreciated.


Based on post #2: should I use the CAN or RS-485 protocol to make sense out of the data described above?

CAN (bus) invokes a ‘protocol’, using RS-485 which defines the signalling voltages and hardware interface,

Hmm, I am not too familiar with protocols.

The BMS I am working with has a CAN (H, L) and RS485 interface (A, B).
Meaning I can chose the one that is easier to work with (decode).

Well, given the information so far, would you use CAN or RS485?
Is one faster or more suitable than the other?
I have only worked with each once, and looking at that code I realise I have forgotten how it works. :frowning:

I have a choice of Arduino UNO R3, R4, and MEGA... and think the R3 or R4 will do.
I also have have a CAN module and RS485 module to chose from.

I would reconsider that (poor) choice of R3; it only has one serial port which is used for communication with the PC. If you don't need that (so no upload without disconnecting and loss of debugging unless you use SoftwareSerial for comms with the sensor) it will be OK.

RS485 only describes the interface / signal levels (and is not a protocol) and CAN is a protocol (describing the data format) that can be used over any interface (TTL, network (not sure if it exists), RS..., ...).

Easy to test of you have all needed hardware as you seen to have.

I appreciate the response.

What I am missing is the answer to the question: what does 'image' in my O.P. depict?

Looking at it with my limited XP: it has an ID = CAN; it has no CRC = not CAN (must be RS485 then).

In a previous project I used software serial for the CAN comms.

Good one; this I understand.

So, is the data image in post #1 describing the CAN data format?

If you mean does it represent a CAN frame, the answer is no.
However was it supposed to represent a frame or just the data that is sent?

I'd have to say CAN bus..
8 bytes of data, 3 byte ID = 11 bytes
the CRC would be added..
and you would need a CRC on both CAN and RS485..

good luck.. ~q

1 Like

As others have stated, it's in incomplete byte-level depiction of a protocol.

It would be useful to know where you got the printout and how it relates to what you are trying to do . There may be lots of clues in that .

1 Like

This is the data description for a BMS (battery management system) for 16 battery strings/cells; here for LiFePO4 chemistry.
The OEM provides an app that receives the data via Bluetooth; that is:
Total V, A, and SoC, as well as V of the cells.

I'd like to receive the data and send it , using MQTT to my automation system, where I can graph the data, and/or trigger actions based on the data or set thresholds.


I didn't see that word being used, but thanks for stating it; as it is the reason for my O.P.


So as I can gather, it seems the protocol to try is CAN.
Well, I shall have a crack at this then... :slight_smile:

1 Like

Which BMS system ?

I just looked at the REC BMS where both CAN and RS 485 are available with information on data format in the manual

It's a Daly BMS...

... which as RS-485 and CAN connections.

So you have available a can bus output or a RS 485 output , so you can use either , but need to get the instructions required to get the reply you need .
The manufacturer should be able to supply that for you, other wise you are a bit stuck !!

The bit printed out could be a CAN reply or something sent as a response over 485- I’d expect both to be similar or the same !! ( just the vehicle - CAN or 485 differs ?)

You also need coms speed

I don't think so.
See post #6

Given the interest an mystery, I have attached the date definition spreadsheet provided by the manufacturer. The name says CAN, but I am missing a CRC, and Jim says 'no'.

KVMS intranet communication CAN protocol (customer version).zip (35.1 KB)

I have emailed the manufacturer, but am not to hopeful receiving a sufficient reply ATM.

Well...

After days of struggle, and trailing a few protocols, I had success by using a CAN module (MCP2515) and the arduino-mcp2515 library. :slight_smile:

I now have another query for which I will open another post.

Thank you all for your feedback. :pray:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.