General ELM327 lore

Post Reply
User avatar
jeff
Site Admin
Posts: 639
Joined: Wed Sep 18, 2024 6:39 pm
Location: Montecito, CA
Has thanked: 39 times
Been thanked: 74 times
Contact:

My garage

General ELM327 lore

Post by jeff »

Want to document stuff I'm learning about ELM327 as I continue reading the specifications. Gonna use this thread to do so.

First up, what is ATPBE101 all about?

Cross-referencing with the ELM327 standard, ATPBE101: Sets protocol B parameters to E101, which corresponds to a bitmask of 1110_0001 equating to:

  • 11-bit CAN-ID
  • Variable DLC (i.e. frames can be any length)
  • Receive both 11-bit and 29-bit CAN-ID
  • Use the ISO 15765-4 data format

the 01 is the baud divisor rate of 01, which comes out to 500 / 1 = 500. So...in essence it's the same as doing

ATSP6,
i.e. ISO 15765-4 CAN (11 bit ID, 500 kbaud)

User avatar
jeff
Site Admin
Posts: 639
Joined: Wed Sep 18, 2024 6:39 pm
Location: Montecito, CA
Has thanked: 39 times
Been thanked: 74 times
Contact:

My garage

Re: General ELM327 lore

Post by jeff »

What's the deal with ATFCSD07300800 and its cousin, ATFCSD300000?

From https://en.wikipedia.org/wiki/ISO_15765-2:

The initial byte contains the type (type = 3) in the first four bits, and a flag in the next four bits indicating if the transfer is allowed (0 = Continue To Send, 1 = Wait, 2 = Overflow/abort). The next byte is the block size, the count of frames that may be sent before waiting for the next flow control frame. A value of zero allows the remaining frames to be sent without flow control or delay. The third byte is the Separation Time (ST), the minimum delay time between frames. ST values up to 127 (0x7F) specify the minimum number of milliseconds to delay between frames, while values in the range 241 (0xF1) to 249 (0xF9) specify delays increasing from 100 to 900 microseconds. Note that the Separation Time is defined as the minimum time between the end of one frame to the beginning of the next. Robust implementations should be prepared to accept frames from a sender that misinterprets this as the frame repetition rate i.e. from start-of-frame to start-of-frame. Even careful implementations may fail to account for the minor effect of bit-stuffing in the physical layer.

So if we break ATFCSD07300800 down, we get:

Code: Select all

ATFCSD 07 3 0 08 00
  • 07: Is the extended address prefix, seems to be commonly used for BMW-like vehicles.
  • 3: Indicates we're in flow control.
  • 0: Continue to send.
  • 08: Block size of 8.
  • 00: Separation Time = 0

Code: Select all

ATFCSD 3 0 00 00
  • 3: Indicates we're in flow control.
  • 0: Continue to send.
  • 00: Allows the remaining frames to be sent without flow control or delay.
  • 00: Separation Time = 0
Post Reply