Reputation: 325
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
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:
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
Reputation: 121
VW works on Transport Protocol TP 2.0, hence you need to initialize with 0x200 header.
See above link for more info.
Upvotes: 1