Page 1 of 2 12 LastLast
Results 1 to 15 of 509

Thread: 1997 F-Body ECM

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Working through the code int the '97 LT1, at some point you are going need a good understanding of OBDII. I do not claim to have all the answers, but this is my starting point. I spent a career designing data comm hardware, so it is natural for me to look at the system through the OSI (Open System Interconnect) model.

    Layer SAE standard Covers
    --------------------------------------------------------------------
    Layer 1 Physical layer J1850 Bits, voltages, time
    J1962 Connector
    Layer 2 Data link layer J1850 Header, symbols
    J2178
    Layer 3 Network layer
    Layer 4 Transport layer
    Layer 5 Session layer
    Layer 6 Presentation layer
    Layer 7 Application layer J1978 Messages, filtering, response
    J2190

    For the most part, folks interested in tuning need not concern with physical details. They are covered by the Data Link Controller (DLC) which is a 68HC58 in this PCM and the connector, connector pin out and so on are all standardized by the GM design. If you want details of the DLC electrical interface, I posted a schematic with most of the details earlier. Just a very few details are of interest here working with the software. The DLC MC68HC58 IC marked 20686 is clocked with a 4.0MHZ ceramic resonator. This will help make sense of some of the initialization code. The DLC is interfaced in parallel mode and uses two locations $1060 and $1061. These locations are multiplexed to provide all the required access. A quick web search will turn up the data sheet you will need if you want to investigate bit level use of this chip.
    In this post I won't dwell much on the setup of the DLC, other than to point out that the DLC is polled not interrupt driven. The '97 PCM provides for an interrupt capability, but this is not used in production code. The production code services the Data Link Controller (DLC) interrupts with code that just turns off the interrupt.

    Skipping over the electrical and bus level details brings us to software, specifically how PCM code interacts with the DLC. The code detailed here is specific to just a few years/models but may be of interest to folks looking at later code. If nothing else, details of the type of concerns that the coders had could be of interest. I found many examples where the code is checking to ensure the vehicle is not moving or that the engine is not turning (even if it is off).

    In my case, I began by messing around with an ELM327 based connection to my PC over USB. I was happy with this until it was uncovered that:

    - GM uses a 4X mode at times that ELM327 does not support
    - The ELM327 forces a request/response operation
    - The ELM327 forces adherence to the J1850 standard and does not permit long frames
    - Getting a driver to use this module is a PIA, I made it work but...

    There are probably other shortcomings as well. I was not able to find a way to easily download the PCM using this module. If your goal is to debug a problem you *might* get away with one of these cheap units however if your goal is to tune there exist cables and software that permit this. As always you get what you pay for.

    The OBDII code in most modes has a request/response format. That is to say, info (or action) is requested and a single response frame is generated. There are some requests however that have multiple responses. An example of this is a request for freeze frame data. A request for freeze frame data will result in 23 or 138 frames of data. A warning to anyone still using an ELM327 type interface... depending on timer settings, most or all of these frames will be lost. It is just beyond the capabilities of that device. I coded my own interface using an Arduino Nano to be sure that all the details were understood, but many good interface cables exist. I have not tried them, so there are no suggestions or recommendations here.

    For the most part just a few standards control the details of interest to tuners. J1979 spec sets up functional communications while J2190 spec sets up the physical communications. In '97 there is only one device communicating with the tester equipment. This makes the difference between physical and functional frames quite small. J2178 discusses the differences, but for my purpose I will just discuss what has been done on this PCM and leave other analysis to those with that interest.

    OK, so that's all the lead in/boiler plate/intro stuff out of the way. Let's focus on the different commands that testers can issue to find details of problems and/or tune. As mentioned in the previous paragraph there are two comms modes used: functional and physical. We will start with the functional as set out in J1979

    Headers
    -------
    There are two headers of interest to us. Skipping through all the details of various J1850 headers that can be supported to focus on those that are supported. GM uses a three byte consolidated header. Upper three bits are priority which are don't care on a bus with only two devices. In-frame responses are not used. For my purpose here I will use one of three headers:

    Functional: $48 $6A $F0
    Physical TSide: $4C $10 $F0
    Physical ESide: $4C $18 $F0


    Functional modes
    ----------------
    The '97 PCM supports functional modes 1 through 7 defined in the standard:

    MODE $01, REQUEST CURRENT POWERTRAIN DIAGNOSTIC DATA
    MODE $02, REQUEST POWERTRAIN FREEZE FRAME DATA
    MODE $03, REQUEST POWERTRAIN DIAGNOSTIC TROUBLE CODES
    MODE $04, REQUEST CLEAR/RESET DIAGNOSTIC TROUBLE CODES
    MODE $05, REQUEST OXYGEN SENSOR MONITORING TEST RESULTS
    MODE $06, REQUEST ONBOARD MONITORING TEST RESULTS
    MODE $07, REQUEST PENDING TROUBLE CODES

    Mode $01
    --------
    This mode requests current powertrain diagnostic data and uses a functional header. The format used is:

    $48 $6A $F0 $01 <Truncated_PID>

    The truncated pid is any pid in which the first two digits are 00. This means that all PIDs that are not within the first 256 can not use this mode. The higher value PIDs are accessed using other modes and physical addressing. Those are detailed here later. PIDs that can be used with this mode are:

    Tru Result
    PID
    --- ------
    $00 SUPPORTED PID $01 - $20, BIT MAP FLASH CONST $BFBFF990
    $01 NUMBER OF EMISSION-RELATED TROUBLE CODES AND MIL STATUS
    $03 FUEL SYSTEM STATUS:
    $04 ROUTINE:CALCULATED LOAD VALUE: 0% TO 100%
    $05 ENGINE COOLANT TEMPERATURE: -40C TO 215C
    $06 LEFT SHORT TERM FUEL TRIM: -100% (LEAN) TO 99.22% (RICH)
    $07 LEFT LONG TERM FUEL TRIM: -100% (LEAN) TO 99.22% (RICH)
    $08 RIGHT SHORT TERM FUEL TRIM: -100% (LEAN) TO 99.22% (RICH)
    $09 RIGHT LONG TERM FUEL TRIM: -100% (LEAN) TO 99.22% (RICH)
    $0B MANIFOLD ABSOLUTE PRESSURE: 0KPA TO 255KPA
    $0C ENGINE RPM HIGH RES (RPM X 4): 0 TO 16383.75 RPM
    $0D SPEED IN KPH: 0 TO 255 KPH
    $0E ROUTINE: IGNITION TIMING: -64 TO +63.5 DEGREES
    $0F INTAKE AIR TEMPERATURE: -40C TO 215C
    $10 MASS AIR FLOW: G/SEC: 0GM/S TO 655.35GM/S
    $11 THROTTLE POSITION SENSOR: 0% TO 100%
    $12 COMMANDED SECOND AIR
    $13 O2 SENSOR CONFIGURATION: $33 = 2 SENSORS/BANK
    $14 O2 B1S1 VOLTAGE: 0 TO 1 VOLT: SHORT TERM FUEL TRIM
    $15 O2 B1S2 VOLTAGE: 0 TO 1 VOLT: $FF
    $18 O2 B2S1 VOLTAGE: 0 TO 1 VOLT: SHORT TERM FUEL TRIM
    $19 O2 B2S2 VOLTAGE: 0 TO 1 VOLT: $FF
    $1C OBD II TYPE: $01

    Here are some examples from my bench PCM

    \B 48 6A F0 01 00 59 \E Request: SUPPORTED PID $01 - $20
    \B 48 6B 10 41 00 BF BF F9 90 B5 \E

    \B 48 6A F0 01 03 7E \E Request: FUEL SYSTEM STATUS
    \B 48 6B 10 41 03 01 01 84 \E

    \B 48 6A F0 01 05 30 \E Request: ENGINE COOLANT TEMPERATURE
    \B 48 6B 10 41 05 00 90 \E

    The response header: echos the priority of the request, targets the functional response, sources from the TSide. The response data has variable width depending on the PID requested.

    Mode $02
    --------
    This mode requests powertrain freeze frame data and use a functional header. The format used is:

    $48 $6A $F0 $02 <PID> <Frame_number>

    PIDs $00 and $01 are supported.
    This PCM responds only to frame number $00.

    Here are some examples from my bench PCM

    \B 48 6A F0 02 00 00 9C \E Request: Supported pid
    \B 48 6B 10 42 00 00 7F B9 80 00 DC \E

    \B 48 6A F0 02 02 00 04 \E
    \B 48 6B 10 42 02 00 00 00 89 \E Request: PID that caused the freeze (in this case none)

    Supported PIDs are bit mapped: Starting from the MSB of the first data (7F in this case), moving from MSB through LSB, support is as follows:

    Supported are PID
    A 02, 03, 04, 05, 06, 07, 08,
    B 09, 0B, 0C, 0D, 10,
    C 11,
    D

    Mode $03
    --------
    This mode requests emission related powertrain diagnostic trouble codes

    On my work bench I forced TPS out of range and requested mode 3:

    \B 48 6A F0 03 CB \E
    \B 48 6B 10 43 01 22 00 00 00 00 E3 \E

    The response here is P0122 which is: P0122 THROTTLE POSITION SENSOR CIRCUIT LOW VOLTAGE

    Mode $04
    --------
    This mode requests clearing of DTCs, freeze data, and other on board testing results.

    On my bench:

    \B 48 6A F0 04 98 \E Request to clear all
    \B 48 6B 10 44 52 \E

    In my case, the TPS fault will still show up because it is registered with the system right when it happens.

    Mode $05
    --------
    This mode requests results of O2 monitoring.

    Inputs to mode $05 are test_id (TID) and O2_sensor number (O2).

    Valid test IDs are:
    TID $00 SUPPORTED TIDs $01 THRU $20
    TID $01 RICH TO LEAN SENSOR THRESHOLD VOLTAGE
    TID $02 LEAN TO RICH SENSOR THRESHOLD VOLTAGE
    TID $03 LOW VOLTAGE USED TO CALCULATE PASSAGE TIME
    TID $04 HIGH VOLTATE USED TO CALCULATE PASSAGE TIME
    TID $05 RICH TO LEAN CALCULATE PASSAGE TIME
    TID $06 LEAN TO RICH CALCULATE PASSAGE TIME
    TID $20 SUPPORTED TIDs $21 THRU $40
    TID $40 SUPPORTED TIDs $41 THRU $60
    TID $60 SUPPORTED TIDs $61 THRU $80
    TID $70 O2 SENSOR WITH LESS THAN 255 COUNTS
    TID $71 O2 SENSOR WITH LESS THAN 255 COUNTS

    Valid O2 sensor numbers are:
    O2 $01 O2 SENSOR BANK 1 SENSOR 1
    O2 $02 O2 SENSOR BANK 1 SENSOR 2
    O2 $10 O2 SENSOR BANK 2 SENSOR 1
    O2 $20 O2 SENSOR BANK 2 SENSOR 2

    "Supported TIDs: are done just like mode $02: First data to last data, MSB to LSB.
    At the time I did this, there are no O2 sensor simulators connected. Here is just a sample of invalid results.

    \B 48 6A F0 05 01 10 97 \E Request for results of O2 test: RICH TO LEAN SENSOR THRESHOLD VOLTAGE, Bank2 Sensor1
    \B 48 6B 10 45 01 10 00 2C \E

    Of interest here is that no testing for sensor 2 is supported. There are tests in the physical section for issues relating to the second O2.

    Mode $06
    --------
    This mode requests on-board monitoring test results for non-continuously monitored systems. The '97 LT1 supports this list of TIDs:

    "Supported TIDs: are done just like mode $02: First data to last data, MSB to LSB. Not sure what the FF indicates but it is in the standard as a constant. Why (??) probably never know.

    TID $00 TIDs supported (range 01h to 20h)
    TID $03 SECONDARY AIR INJECTION REACTION SYSTEM MONITOR
    TID $04 CATALYST EFFICIENCY STEADY STATE MONITOR
    TID $06 O2 SENSOR HEATER SYSTEM TIME TO ACTIVITY MONITOR
    TID $07 EXHAUST GAS RECIRCULATION SYSTEM MONITOR


    \B 48 6A F0 06 00 A0 \E Request supported TIDs
    \B 48 6B 10 46 00 FF 36 00 00 00 6D \E

    \B 48 6A F0 06 03 87 \E Request secondary air results
    \B 48 6B 10 46 03 01 00 00 FF FF A1 \E
    \B 48 6B 10 46 03 02 00 00 FF FF 1F \E

    \B 48 6A F0 06 04 D4 \E Request cat efficiency results
    \B 48 6B 10 46 04 20 80 00 02 00 ED \E
    \B 48 6B 10 46 04 30 80 00 02 00 03 \E

    \B 48 6A F0 06 06 EE \E Request O2 heater time to activity results
    \B 48 6B 10 46 06 35 00 00 00 00 FD \E
    \B 48 6B 10 46 06 41 00 00 00 00 F8 \E
    \B 48 6B 10 46 06 55 00 00 00 00 A3 \E
    \B 48 6B 10 46 06 61 00 00 00 00 39 \E

    \B 48 6A F0 06 07 F3 \E Request EGR results
    \B 48 6B 10 46 07 0C 00 00 00 00 89 \E
    \B 48 6B 10 46 07 0D 00 00 00 00 E3 \E

    I need to go through and detail the results here. GM published a paper on Mode $05 that gives us what we need to accomplish this along with J1979

    Mode $07
    --------
    This mode requests on-board monitoring test results for continuously monitored systems. These are all the DTCs normally issued as fault codes.

    Test examples from my bench setup:

    \B 48 6A F0 07 BF \E
    \B 48 6B 10 47 01 22 00 00 00 00 8A \E

    The 01 22 indicates that my TPS sensor is disconnected.


    That was quite a bit of decoding to get all this figured and written down. Sad part is that the physical is much more complicated. I hope to get this done in Sept (?)

    -Tom

  2. #2
    Fuel Injected!
    Join Date
    Jul 2019
    Location
    Orange, CA
    Posts
    757
    Do you need an OBDII interface cable that doesn't use the ELM327 chip? I have one that's gathering dust that I specifically bought in hopes of being able to help with development for the 1996~1997 LT1/LT4 PCM interface. I think it would be far better in your hands than mine. Here's what it is for reference: https://obdxpro.com/product/obdx-pro-vt

    Though mine is USB-only, no bluetooth. Same thing, though.
    1990 Corvette (Manual)
    1994 Corvette (Automatic)
    1995 Corvette (Manual)

  3. #3
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by NomakeWan View Post
    Do you need an OBDII interface cable that doesn't use the ELM327 chip? I have one that's gathering dust that I specifically bought in hopes of being able to help with development for the 1996~1997 LT1/LT4 PCM interface. I think it would be far better in your hands than mine. Here's what it is for reference: https://obdxpro.com/product/obdx-pro-vt

    Though mine is USB-only, no bluetooth. Same thing, though.
    Thank you for your kind offer... for now I will stay with my home brew cable. There are two specific things I want to look at. First is the bit by bit arbitration and then the PCMs use of the break symbol. That cable looks like a very good one, I was going to order one a while back but they were out of stock. USB only is the best one for bench use IMO.

    -Tom

  4. #4
    Fuel Injected!
    Join Date
    Sep 2012
    Location
    Huntsville, AL
    Posts
    237
    Hi Tom, I'm just getting this hooked up. I sent ATZ and got back A41 T54 Z5A. Then I got ?3F 0D 0A >3E. I was playing around with some of the other commands and the >3E seems to appear at regular intervals. I have a whole lot of other questions about realterm and will email you.

  5. #5
    Fuel Injected!
    Join Date
    Nov 2017
    Location
    Californiacation
    Age
    57
    Posts
    834
    Hi Tom,
    I am glad sherlock is helping you, I have been jammed up on the chassis dyno and have two more marine race engines we are trying to finish on the engine dyno this weekend. I'll check in when I get some time freed up :)
    -Carl

  6. #6
    Fuel Injected! JimCT_9C1's Avatar
    Join Date
    Feb 2013
    Location
    Connecticut
    Posts
    63
    Been following along - I have both the OBDX Pro VT and OBDLink SX cables for logging my 1996 Caprice 9C1 LT1, so did some testing.


    Ran the tests Tom H was looking for:
    - Tested both OBDX Pro and OBDLink SX
    - Port settings of 38400 8N1 no flow control in system control panel (Windows10)
    - With ATH1 showed the full response - the reply had both the header and CRC/checksum bytes
    - 4C F0 10 68 00 5E
    - Same results from both cables


    The different cables liked different terminal settings so as pointed out above by kur4o there may be some testing to find to find the right combination for a particular or unknown cable. Some connectivity test results with cable default settings:


    Cable Port Terminal Connect
    OBDX Pro VT 38400 38400 Yes
    OBDX Pro VT 38400 115200 Yes
    OBDX Pro VT 115200 38400 Yes
    OBDX Pro VT 115200 115200 Yes
    OBDLink SX 38400 38400 No
    OBDLink SX 38400 115200 Yes
    OBDLink SX 115200 38400 No
    OBDLink SX 115200 115200 Yes

    Tested cases for earlier questions on the OBDX Pro - with this cable it seems there are two ways to send your own combined header/data message using either the extended DXSD command or the Direct Vehicle Interface protocol. I tested DXSD and it works for sending header/data as a single message; I haven't done anything with DVI. The OBDLink SX has a similar extended STPX command that supports combined header/data messages - tested that one successfully as well.

    Both cables calculate the outgoing (to vehicle) message CRC/checksum in the cable itself, and can pass back to the PC the CRC/checksum on incoming (from vehicle) messages. I didn't see a command to turn off the CRC generation for outgoing messages for the OBDX Pro, but maybe it's there. The OBDLink provides an extended command to disable the CRC generation, but I haven't tested it yet.

    Hope this helps answer some questions - and that others with additional insights and experience weigh in.

    Jim
    1995 Caprice 9C1 LT1 - 4.10s, Dynomax Catback, K&N Cold Air Kit, Other Little Stuff
    1996 Caprice 9C1 LT1 - 3.73s, Stock

  7. #7
    Fuel Injected!
    Join Date
    Sep 2012
    Location
    Huntsville, AL
    Posts
    237
    Hey Jim, thanks for chiming in. Tom H and I have been going back and forth testing comms with my OBDXPro VT.

    I'm using the RealTerm open-source terminal program set for the same settings you mentioned.

    After some pre-settings,
    Code:
    ATH1
    ATAL
    ATSP2
    ATS1
    ATSH 48 6A F0
    01 00
    We were able to use DS XD and then the message to communicate directly with the ECM.

    Example: request freeze frame data:

    DX SD 4C 10 F0 12 00 FF FF

    Based on testing this morning, if you omit DX SD, you get a different answer. It's been awhile since I've read machine hex so it's all greek to me at the moment; Tom emails me commands and I email the response back. I wonder if DVI mode will obviate the need for the DX SD prefix, but it's trivial to add.

    I've tested out the instruction sets available for the user guide; as an aside, being able to query the battery voltage is a nice feature. Manual available here: https://obdxpro.com/downloads/

  8. #8
    Fuel Injected!
    Join Date
    Sep 2012
    Location
    Huntsville, AL
    Posts
    237
    Updated to RealTerm 3.0.1.44; much nicer to send in hex!

    But, now I'm getting an error (from the cable) on the carriage return and line feed; nothing from the PCM yet in DVI protocol:
    Sending: 10 07 4C 10 F0 23 00 0E 00 6B 0D (where 0D is carriage return)
    I get: 7F 02 0D 01 70
    10 07 4C 10 F0 23 00 0E 00 6B 0A (where 0A is line feed)
    I get: 7F 02 0A 01 73

    If I remove those endings, I'm not getting a response from the PCM in DVI protocol. Yes the ignition is on, engine off. Reading more of the manual, I think we have to use the 0x08 Receive from Network Normal command first to receive from the PCM? I'm not quite sure how to set that up.
    Last edited by sherlock9c1; 10-29-2021 at 02:19 AM.

  9. #9
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by Tom H View Post
    Mode $02
    --------
    This mode requests powertrain freeze frame data and use a functional header. The format used is:

    $48 $6A $F0 $02 <PID> <Frame_number>

    PIDs $00 and $01 are supported.
    This PCM responds only to frame number $00.
    My post contains an error the line:

    PIDs $00 and $01 are supported.
    Should read
    PIDs $00 and $02 are supported.

    -T

  10. #10
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Hi,
    I have been working through all the OBDII physically addressed modes. As usual, I got sidetracked in the mode $34/36 routines. Somewhere way back in this thread I figured out how the download works but at the time was working through the bootstrap and didn't go further. While working through the mode$34/6 I decided to write a bit of code to download to the PCM. My code is a PC command line app that takes an Srecord file and downloads it to ram. Optionally it executes the code at the address specified in the S9 record.

    I have tested this with a simple "hello world" type app just to check it out. In a week or two I will code a .S19 file that will support mode $35. This mode is not supported by the native code and will let the user dump the flash, eeprom or ram.

    Before I go to the effort to post this on the list, I would like to know if there is any interest (?), so two questions:

    --> What free tools are available for the early OBDII PCMs that permit up/download of the flash and reprogramming. If there are already tools out there, no need for me to proceed in this.
    --> The tool uses my home brew cable, would anyone offer to test using a standard cable?

    I am back to figuring out all the physically addressed commands. Once done, I will post the results.

    -Tom

  11. #11
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,478
    I can say an avt-852 cable[expensive] will work for sure. Some extra bytes need to be sent.
    obdXpro[moderatelly priced]
    https://obdxpro.com/
    should also work. It also supports elm shit.

    obdlink cable might not work due to limited upload buffer.

    I am sure your home brew cable will yield great interest too, and there will be some guys testing for sure.

  12. #12
    Fuel Injected!
    Join Date
    Jul 2019
    Location
    Orange, CA
    Posts
    757
    Quote Originally Posted by kur4o View Post
    obdXpro[moderatelly priced]
    https://obdxpro.com/
    should also work. It also supports elm shit.
    And as a reminder, I have one of these cables and would be willing to loan it out to anyone doing development on the 96-97 LT1/LT4 PCMs. I do not have access to a '96 Corvette at present so I cannot help directly, but I can at least help that way. :)
    1990 Corvette (Manual)
    1994 Corvette (Automatic)
    1995 Corvette (Manual)

  13. #13
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    I can't find any reference to modes $35 or $37 anywhere other than the SAE J2190. That only give me the generic details of the mode. If we can't find the detail of these modes, I plan to use:

    MM $35 MODE
    LH LENGTH HIGH: $00
    LL LENGTH LOW (LENGTH NOT TO EXCEED 64 --> $40)
    AH ADDRESS HIGH: $00 AND $01 VALID ($01 YIELDS BANK 1 RESULT)
    AM ADDRESS MIDDLE 8BITS
    AL ADDRESS LOW 8BITS
    CRC CYCLIC REDUNDANCY CHECK

    SAE J2190: MODE $37 REQUEST
    H0 H1 H2 D0 CRC
    4C 18 F0 $37 CRC

    H0 NO IFR
    3 BYTE HEADER
    PHYSICAL ADDRESSING
    NODE-TO-NODE
    H1 $18 LOAD SERVICE PORT
    H2 $F0 TESTER
    MM $35 MODE
    CRC CYCLIC REDUNDANCY CHECK

    -Tom

  14. #14
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Cut/paste error...

    SAE J2190: MODE $35 REQUEST
    H0 H1 H2 MM D1 D2 D3 D4 D5 CRC
    4C 18 F0 $35 LH LL AH AM AL CRC

    H0 NO IFR
    3 BYTE HEADER
    PHYSICAL ADDRESSING
    NODE-TO-NODE
    H1 $18 LOAD SERVICE PORT
    H2 $F0 TESTER
    MM $35 MODE
    LH LENGTH HIGH: $00
    LL LENGTH LOW (LENGTH NOT TO EXCEED 64 --> $40)
    AH ADDRESS HIGH: $00 AND $01 VALID ($01 YEILDS BANK 1 RESULT)
    AM ADDRESS MIDDLE 8BITS
    AL ADDRESS LOW 8BITS
    CRC CYCLIC REDUNDANCY CHECK

    SAE J2190: MODE $37 REQUEST
    H0 H1 H2 D0 CRC
    4C 18 F0 $37 CRC

    H0 NO IFR
    3 BYTE HEADER
    PHYSICAL ADDRESSING
    NODE-TO-NODE
    H1 $18 LOAD SERVICE PORT
    H2 $F0 TESTER
    MM $35 MODE
    CRC CYCLIC REDUNDANCY CHECK

  15. #15
    Fuel Injected!
    Join Date
    Sep 2012
    Location
    Huntsville, AL
    Posts
    237
    JimCT_9C1, I can only get to the car once or twice a day to test things; so if you can access it faster, fantastic.

    Tom says the next steps are:
    1. Establish how to get rid of needing DX SD every command. Or test out what's written in section 2.35 of the manual so that we only need to send the command? Alternatively, switch to DVI mode and follow the formats and examples listed in section 3.2.
    2. Perhaps use DVI to eliminate the ">" which would make the API a lot simpler.

    Tom asked to run several requests and then capture the output so he can see what's returned between commands, which will make parsing easier. Example commands:

    • 4C 10 F0 12 00 FF FF (Request Diagnostic Freeze Frame Data)
    • 4C 10 F0 17 01 00 (Request Status of Diagnostic Trouble Codes)
    • 4C 10 F0 20 (Return to Normal Operation)

Similar Threads

  1. 94-95 LT1 $EE Y-body vs. F/B-body PCM differences
    By johnny_b in forum GM EFI Systems
    Replies: 5
    Last Post: 01-15-2023, 02:41 PM
  2. Tuner Pro XDF 1999-2000 F Body + Y Body
    By john h in forum OBDII Tuning
    Replies: 33
    Last Post: 02-02-2020, 11:12 PM
  3. Replies: 31
    Last Post: 09-20-2018, 06:00 AM
  4. F-body engine install to B-body
    By serge_an in forum GM EFI Systems
    Replies: 4
    Last Post: 09-22-2016, 02:51 PM
  5. 95 F-body Fuel Pump with 95 B-Body Engine/Tank
    By EPS3 in forum GM EFI Systems
    Replies: 7
    Last Post: 09-19-2016, 02:40 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •