Page 1 of 5 12345 LastLast
Results 1 to 20 of 81

Thread: j1850 3 byte Header format

  1. #1
    Guest
    Guest

    j1850 3 byte Header format

    Hello all... I am really trying to get an understanding of the j1850 protocol but need help. When trying to request the trouble codes, a 3 byte header will be used. And, from what I understand, you are to use physical addressing (not functional). My question is, what goes in the second byte of the header? I thought the first data byte (after the 3 byte header), was the place to send e/e troubleshooting bytes.
    TO help me get started, could someone send me an example of what my header and data field will look like when requesting trouble codes?

  2. #2
    HP Tuners Owner Keith@HPTuners's Avatar
    Join Date
    Sep 2002
    Location
    Chicago, IL
    Posts
    6,394

    Re: j1850 3 byte Header format

    Basically,

    Byte1 = priority (bits 7,6 and 5. 0=high 7=low), addresing mode and other flags,
    Byte2 = physical ID of destination, $10 = PCM
    Byte3 = physical ID of source, $F1 = off-board tool

    Also, I'm moving this to GM VPW section.
    Last edited by Keith@HPTuners; 02-13-2008 at 09:51 AM.
    We got this guy Not Sure, ...

  3. #3
    Guest
    Guest

    Re: j1850 3 byte Header format

    Magnus,
    I Love ya Man!!! I'd surely by you lunch at your favorite place if I could...

    So, I'm looking at j2178 part 4, and it say's that id 10 is "reserved for SAE"... The document say's '94.... Is there a newer document I can get a hold of?



  4. #4
    Guest
    Guest

    Re: j1850 3 byte Header format

    I am also curious, I read in the postings, that GM doesnt do IFR's... If this is the case, will I just complete my frame, then wait (slavingly) until the Bus contacts me at my address [f1]?
    Also, what are possibilities of damage to the bus if a voltage of say, 12 volts accidentally get sent on the bus? I've seen spec's with highs of max 8 volts... but then again... that just what it 'says'...

    Any luck in finding some updated doc's for J2178?

  5. #5
    HP Tuners Owner Keith@HPTuners's Avatar
    Join Date
    Sep 2002
    Location
    Chicago, IL
    Posts
    6,394

    Re: j1850 3 byte Header format

    Michael, I'd love to help you more with your questions but I too am in the dark regarding a lot of the VPW.

    Thanks for the gratitude, however I must give credit where credit is due and Paul@EFILive definately deserves the credit for all the VPW knowledge I currently posess. He has been a great contributor on this board regarding VPW.

    You have a link to the documents you are looking at? I'm not sure where newer ones are, I really need to get on the web pages and start puting the data up there for all of us to look at.

    I believe you just send out a packet to your destination and then wait for one to arrive back with destination being F1 (off-board scan tool).. but don't quote me on that I am learning just as you are.

    Welcome to the board btw.
    We got this guy Not Sure, ...

  6. #6

    Re: j1850 3 byte Header format

    Quote Originally Posted by Michael
    So, I'm looking at j2178 part 4, and it say's that id 10 is "reserved for SAE"... The document say's '94.... Is there a newer document I can get a hold of?
    J2178 Part 4 is only for message types: 0,1,2,8,9,10 and 11.
    There are 16 message types defined by bits 3,2,1,0 of the first byte of the 3 byte header.
    Each of those message types for J2178-4 is FUNCTIONAL addressing. The only supported destination address for FUNCTIONAL addressing on GM that I know of is $6A - legislated diagnostics.

    If you want to send a message to the PCM via a physically addressed message using $10 as the PCM's physical address you'd best use message type 12. ie low 4 bits of byte 1 of 3 byte header should be 1100.
    The physical ID's are listed in section 9 of J2178-1
    $10..$17 are reserved for engine controllers.
    GM normally uses $10.

    Regards
    Paul

  7. #7

    Re: j1850 3 byte Header format

    Quote Originally Posted by Magnus
    Michael, I'd love to help you more with your questions but I too am in the dark regarding a lot of the VPW.

    Thanks for the gratitude, however I must give credit where credit is due and Paul@EFILive definately deserves the credit for all the VPW knowledge I currently posess. He has been a great contributor on this board regarding VPW.

    You have a link to the documents you are looking at? I'm not sure where newer ones are, I really need to get on the web pages and start puting the data up there for all of us to look at.

    I believe you just send out a packet to your destination and then wait for one to arrive back with destination being F1 (off-board scan tool).. but don't quote me on that I am learning just as you are.

    Welcome to the board btw.
    Thanks for the kudos Magnus - I help where I can.
    Good summary of OBD-II comms It is pretty much that simple - with a few twists that turned my hair grey - way too early.

    If anyone has any questions I'll try my best to answer them - like Magnus I do not have ALL the answers.
    And the answers I do have are really only relevant for GM.

    Paul

  8. #8

    Re: j1850 3 byte Header format

    Quote Originally Posted by Michael
    I am also curious, I read in the postings, that GM doesnt do IFR's... If this is the case, will I just complete my frame, then wait (slavingly) until the Bus contacts me at my address [f1]?
    Also, what are possibilities of damage to the bus if a voltage of say, 12 volts accidentally get sent on the bus? I've seen spec's with highs of max 8 volts... but then again... that just what it 'says'...

    Any luck in finding some updated doc's for J2178?
    You ared right GM does not use IFR - it's part of the 3 byte header, bit 3=1 means IFR not allowed.

    SAE recommends that all circuits connected to the OBDII connector be protected from ALL possible voltages and shorts that can occur by incorrect connections. It's just a recommendation - I wouldn't go testing it out.


  9. #9
    Guest
    Guest

    Re: j1850 3 byte Header format

    my apologies, your right, part 4 is Func addressing...

    ...the only link I have that's worth a darn is

    http://www.diy-efi.org/gmecm/ecm_info/obd2/

    It has a lot of stuff, but OLD. (1994). Lord know's I don't want to shell out $140 for the 2002 copy of hs-3000... just for a part timer/hobbiest/shade tree mechanic like myself....


  10. #10

    Re: j1850 3 byte Header format

    Does this help any?

    Functional Messages
    ===================
    Request current value of PID ($00..$20)
    Send: $68,$6A,$F1,$01,$PID
    Recv: $48,$6B,$10,$41,$PID,[up to 5 data bytes]

    Request freeze frame value of PID ($00..$20)
    Send: $68,$6A,$F1,$02,$PID
    Recv: $48,$6B,$10,$42,$PID,[up to 5 data bytes]

    Physical Messages
    =================
    Request GM VIN
    Send: $6C,$10,$F1,$3C,$01,$F2
    Recv: $6C,$F1,$10,$7C,$01,$00,$36,$48,$38,$56,$54,$18
    Send: $6C,$10,$F1,$3C,$02,$F3
    Recv: $6C,$F1,$10,$7C,$02,$4B,$36,$39,$46,$59,$4C,$5E
    Send: $6C,$10,$F1,$3C,$03,$F4
    Recv: $6C,$F1,$10,$7C,$03,$30,$31,$32,$33,$34,$35,$F6
    Vin: 6H8VTK69FYL012345

    Request GM PCM#
    Send: $6C,$10,$F1,$3C,$04
    Recv: $6C,$F1,$10,$7C,$04,$00,$F7,$81,$C2
    PCM#: $00F781C2 = 16220610

    Request enhanced PID ($0000..$FFFF)
    Send: $6C,$10,$F1,$22,$PID-msb,$PID-lsb,$01
    Recv: $6C,$F1,$10,$62,$PID-msb,$PID-lsb,[up to 5 data bytes]

    Enhanced PIDs $0000..$0020 are identical to generic PIDs ($00..$20).

    Regards
    Paul

  11. #11
    HP Tuners Owner Keith@HPTuners's Avatar
    Join Date
    Sep 2002
    Location
    Chicago, IL
    Posts
    6,394

    Re: j1850 3 byte Header format

    Paul, that info is excellent. Would you mind if I collected some clippings of the posts you've made regarding VPW to help build the GM VPW page on this site?
    We got this guy Not Sure, ...

  12. #12

    Re: j1850 3 byte Header format

    Quote Originally Posted by Magnus
    Paul, that info is excellent. Would you mind if I collected some clippings of the posts you've made regarding VPW to help build the GM VPW page on this site?
    That's fine, anything I post here is "free" to be used by anyone, anytime for any purpose.

    Warning: I try to post accurately but I have been known to make mistakes... :P

    Paul

  13. #13
    Guest
    Guest

    Re: j1850 3 byte Header format

    Thanks for the information... I guess, if one's looks long enough on the internet, the information will come....
    I can say, that right now, I have a fair understanding of the [physical address] communication's on the j1850.

    I wonder now, how does one (line myself), find out the address assignments. Is there a spec for this? For example, the j2178_p1 says "engine control = 0x10 - 0x17. That's 8 nodes... We know what 10 is (and the functionality is described in spec j2190, but what about the rest of the nodes (and there functionality)?

    Someone once tried to point me to the hs-3000 book (not regarding this quition). Well, I have found out that the 99 version of the book has a few spec's dated 94... Is the 2002 version more updated with this information?


  14. #14
    Guest
    Guest

    Re: j1850 3 byte Header format

    O.k... Slowly getting there... So, I understand that you should use mode (or command) 0x22 and request a PID when trying to get actual sensor values, etc... BUT...
    Now, I am curious as to how one 'turns off' a cylinder, say for example when doing a cylinder by cylinder check (I forget the catch phrase). I remember seeing a diagnostic tool that could do that. I would imagine that it requires writing a value in PCM memory temperarily, but I can't imagine which one....
    Any ideas???

  15. #15

    Re: j1850 3 byte Header format

    Quote Originally Posted by Michael
    I wonder now, how does one (line myself), find out the address assignments. Is there a spec for this? For example, the j2178_p1 says "engine control = 0x10 - 0x17. That's 8 nodes... We know what 10 is (and the functionality is described in spec j2190, but what about the rest of the nodes (and there functionality)?
    Just send a supported, but harmless command to each of the 255 possible nodes - like "Stop transmitting diagnostic data" - mode $25.

    ...
    Send: $01,$01,$41,$04,$6C,$10,$F1,$25,$D9
    Recv: $01,$01,$C1,$04,$6C,$F1,$10,$65,$99
    This means ID $10 exists on the class-2 bus
    Send: $01,$01,$41,$04,$6C,$11,$F1,$25,$DA
    Recv: No response - ID $11 does not exist.
    ...

    You can then match up the ID's with the ID ranges to figure out which is which.

    Communicating with the other nodes is the same as communicating with the PCM - the functionality may be different. But to know all the nodes' functionality you'd need to purchase that information from GM.

    Regards
    Paul

  16. #16

    Re: j1850 3 byte Header format

    Quote Originally Posted by Michael
    Now, I am curious as to how one 'turns off' a cylinder, say for example when doing a cylinder by cylinder check (I forget the catch phrase). I remember seeing a diagnostic tool that could do that. I would imagine that it requires writing a value in PCM memory temperarily, but I can't imagine which one....
    Any ideas???
    EFILiveV5 Pro will allow you to perform bidirectional controls including the cylinder balance test. The bi-directional controls are a pre-set list of commands that the PCM will recognise.

    We spent many years figuring them out and unfortunately I am contractually bound not to release that information.

    I can say the GM bidirectional controls use "manufacturer reserved" J2190 modes to enter bi-directional mode and to send bidirectional commands so unfortunately the HS3000 documents will not help.

    Once a bidi control is sent to the PCM it causes the PCM to alter it's behaviour for about 5 seconds. If a keep alive message is not received within those 5 seconds the bidi control times out and is terminated automatically by the PCM.

    Sorry for not being as helpful as I'd like to be.
    Paul

  17. #17
    Guest
    Guest

    Re: j1850 3 byte Header format

    gOOD onE! Have to buy you lunch too somtime...

    I was actually thinking about doing a routine like that, but wasn't sure which "non-aggresive" command to send... You almost lost me for a second, then I realized that the first 4 bytes in your example was probably aimed toward one of your proprietary piece's of equipment. Have any idea how to turn off a cylinder?

  18. #18
    Guest
    Guest

    Re: j1850 3 byte Header format

    fORGET that last question... we send our messages at the same time, and I, not reading yours'...
    So... A manu resv'ed command inside j2190 ... hmmmm...
    ...mode 31 or 38 with an occasional [test device present] mode 3f... and inside the 31 or 38... Some number(s) will give me what I need... Hmmmm... I know, you can't tell me.. but it sure is intruiging... And this is probably a stretch of number's I don't want to sequentially hit, becuase my luck, on of the commands inside the start diagnostics (31 or 38) will be " test # 999 - Destroy engine and never run again while shooting flames out the tail pipe..... "

  19. #19
    Guest
    Guest

    Re: j1850 3 byte Header format

    another question... If I wanted to obtain this information... How would you suggest I go about doing it? Contact GM? SAE? ISO? Reverse engineer it? Move in next door to you, get buddy-buddy, and one night, through a bunch of beer in ya, and get ya to confess? ;>

  20. #20
    Guest
    Guest

    Re: j1850 3 byte Header format

    Well, I've found it... It looks like, if I want the information, I'll have to buy the manufacturer's shop manual (at helm incorporated). The electrical and emissions manual is $45. I am hoping that it will have it in there, becuase j2205
    http://www.arb.ca.gov/msprog/obdprog/noticef.pdf
    led me there... :-/