Results 1 to 6 of 6

Thread: Physically-addressed CAN messages?

  1. #1
    Potential Tuner
    Join Date
    Nov 2006
    Posts
    4

    Physically-addressed CAN messages?

    Hi guys,

    I've got a small homebrew program an CAN-compatible interface box (B&B Electronics LDV6U) that I'm using to talk with my '04 CTS. I've successfully tested J1979 Services 01, 03, and 04. I can send and receive multi-packeted CAN messages and I can read basic PID's like engine RPM, speed, and ignition cylinder timing.

    I've seen variations of this list that show how to get enhanced PID's for J1850 cards by requesting J2190 physically addressed data from the ECU. I've tried to do this for CAN, with no luck so far.

    According to the document, the J1850 command to get a 2-byte PID is:

    $6C,$10,$F1,$22,$PID-hsb,$PID-lsb,$01

    I think the CAN variation of that (for talking directly to ECU #0 with 11-bit physical addressing) is something like the following:

    [Edit -- forgot length in original post]
    $07, $E0, $03, $22, $PID-hsb, $PID-lsb
    (PCI bytes left out for clarity)

    When I try this for random PIDs in that list, I get a CAN error saying that either the PID is unsupported, or the ECU is not ready to accept that command.

    Am I on the right track? Am I using the wrong format, or do I need to do something like send a J2190 command to put the car into diagnostic mode? I haven't seen any examples of using CAN for physically-addressed messages (especially J2190) so I'm not sure what I'm missing.

    Any hints?

    Thanks!
    Last edited by trax; 12-03-2009 at 05:38 PM.
    Pete
    '96 Z28 -- it keeps up with traffic
    '04 CTS

  2. #2
    you need a length byte in there.

    eg.

    07 e0 03 22 P1 P2
    I count sheep in hex...

  3. #3
    Potential Tuner
    Join Date
    Nov 2006
    Posts
    4
    Oops, that was a typo on my part. I am sending the length out. So something else must be wrong.

    Any hints on one or two PID's that the ECU should respond to? I tried $11 $45 (throttle position) and $11 $72 (IAC position) but didn't have much luck. Maybe I'm sending this to the wrong ECU?

    Thanks
    Pete
    '96 Z28 -- it keeps up with traffic
    '04 CTS

  4. #4
    most GM PCM's will respond to the SAE PIDs on mode 22 as well as mode 01. Try them.

    GM Ignition Voltage is 1141

    Chris...
    I count sheep in hex...

  5. #5
    Potential Tuner
    Join Date
    Nov 2006
    Posts
    4
    Hmm... tried these two variations:

    07 E0 03 22 11 41
    07 E0 03 22 41 11

    In either case, I get the following response:

    07 68 03 7F 22 11

    I interpret that a J1979 error message:
    07 68 -- ECU
    03 -- Message length
    7F -- J1979 Negative Response Service identifier
    22 -- J1979 service identifier
    11 -- Response code "serviceNotSupported".

    Do I need to send some other kind of J2190 message to put the car into some special mode before I request the two-byte PIDs? Or is something else going on? The LDV6U should technically support physically addressed messages over CAN, so I'm inclined to think this is a bug on my end, not in their box.

    Thoughts?
    Pete
    '96 Z28 -- it keeps up with traffic
    '04 CTS

  6. #6
    Potential Tuner
    Join Date
    May 2011
    Posts
    2
    hi trax,

    have you had any luck? I know this thread is dead, but hopefully some can still benefit from it.

    I have a Ford Ranger (not North America standard) '08 model and uses ISO 15765-4 protocol (CAN).

    I want to know when the vehicle is in reverse. The enhanced PID is 1697 for "reverse gear enganged".

    I'm using an OBDlink-sx with elm327 chip.

    Thanks, Rudilof