csima
csima

Reputation: 325

Addressing ECUs directly using ELM 327 dongle and ISO 9141

I have a VW Golf 4, which is quite old and talks KWP 2000 (ISO 9141) on its CAN bus. I use a dongle powered by ELM 327, connected to the OBD-2 port of the car.

I am trying to send messages individually to each ECU. I tried to change the header of the messages: AT SH 48 XX F1 (I hoped XX would be the ECU ID; 48 is the flag for "use physical addressing"). Any command I issue (e.g. tried 3E for "tester present") returns NO DATA (I disabled automatic timeouts and set the timeout to maximum value).

Is there a way to send messages directly to the ECU? I am not interested in the set of data provided via OBD-2, neither do I want to re-flash the ECUs. At the moment I just try to find out which ECUs are available on the bus.

Thanks!

Upvotes: 4

Views: 2133

Answers (2)

potatoplant
potatoplant

Reputation: 11

If "ISO 9141" wasn't a typo, then what your car really uses is KWP1281 over K-line, not KWP2000 over CAN.

It is easy to test if you have VCDS, when you connect successfully to a module, you will see the protocol in the top-left corner, as follows:

  • "KWP1281" = ISO9141 (K-line)
  • "KWP2000" (or another number greater than 2000) = ISO14230 (K-line)
  • "CAN" = KWP2000 (CAN-Bus)

If it does indeed use CAN, using an ELM327 is possible, as explained in the other answer containing TP2.0 info.

But if it uses the K-line (like I would expect an old Golf 4 to), unfortunately the ELM327 isn't up to the task, as VAG vehicles use a proprietary protocol. Your best bet is to use a microcontroller, like an Arduino, to emulate a tester.

Upvotes: 0

Soumya Sen
Soumya Sen

Reputation: 121

VW works on Transport Protocol TP 2.0, hence you need to initialize with 0x200 header.

https://jazdw.net/tp20

See above link for more info.

Upvotes: 1

Related Questions