According to Wikipedia, the
ELM327 understands SAE
J1939 (250kps & 500kbps). Wikipedia would have you believe that the cheap Chinese clones are useless, but in my experience they aren't. (Buy a cheap module from eBay, crack it open, remove the USB interface and wire directly to the PIC... My very first Picaxe project monitored an ECU for pending faults, and reset it before they could become hard faults and switch on the Check Engine lamp - the car ran fine with a dead Camshaft Position Sensor!).
That's where I start to get a bit hazy though ...
...the cheap ELM327 'modules' contain hardware interfaces for "
K-line" and
CANBUS ... i.e the actual hardware level. They contain the ELM327 (PIC) itself which handles protocols such as
ISO 9141-2 that I used, or
SAE J1939... and various others. Then there is a higher level protocol: I was requesting EOBD PIDs which are apparently defined by
J1979.
I assume there must be a different, but equivalent definition to
J1979 for use in the Truck world ... but I've no idea what it is? ... or if the ELM327 understands it. Another complication might be the physical connection to the vehicle ... is the
J1962 connector used?
This document:
https://www.kvaser.com/about-can/higher-layer-protocols/j1939-standards-overview/ seems quite informative. It seems to imply a whole
set of
J1939 standard
s. ELM327 may only do some of them.