Different Diagnostic Modes?
#1
Melting Slicks
Thread Starter
Member Since: Nov 2013
Location: Greater Cincinnati Area.
Posts: 3,451
Received 335 Likes
on
295 Posts
Different Diagnostic Modes?
1985, OBD1, Corvette..
I just discovered that my scanner lists (and can cause the car to enter) 3 different "Diagnostic Modes"
They are:
1) "Field Service Mode"
2) "Backup Fuel Mode"
3) "ALCL Mode"
As soon as one is selected, the tool (Mac Mentor) begins to stream data.. But I can do that anyway? Without selecting a special "Mode"
What are these different modes and how are they useful?
Anyone?
I just discovered that my scanner lists (and can cause the car to enter) 3 different "Diagnostic Modes"
They are:
1) "Field Service Mode"
2) "Backup Fuel Mode"
3) "ALCL Mode"
As soon as one is selected, the tool (Mac Mentor) begins to stream data.. But I can do that anyway? Without selecting a special "Mode"
What are these different modes and how are they useful?
Anyone?
Last edited by confab; 03-20-2014 at 07:50 PM.
#3
Race Director
This mode shorts the A & B terminals of the ALDL connector together. It sets the timing to a fixed advance and some other minor things.
Also known as "3.9K mode" because it puts a 3.9K resistor across the A & B terminals of the ALDL connector. This is what GM calls limp mode. It basically turns off the microcontroller in the ECM and the timing and injector pulse widths are controlled by the FMD (Fuel Modeling Device) IC using the resistor networks in the MEMCAL. The MEMCAL is MEM for program memory and CAL for the resistor network calibration.
Also known as "10K mode" because it puts a 10K resistor across the A & B terminals of the ALDL connector. It sets the advance and the idle is set to 1000 RPM, plus some other miscellaneous stuff.
ALCL (Assembly Line Communications Link) was what GM called the ALDL (Assembly Line Diagnostic Link) back in the '80s.
Also known as "3.9K mode" because it puts a 3.9K resistor across the A & B terminals of the ALDL connector. This is what GM calls limp mode. It basically turns off the microcontroller in the ECM and the timing and injector pulse widths are controlled by the FMD (Fuel Modeling Device) IC using the resistor networks in the MEMCAL. The MEMCAL is MEM for program memory and CAL for the resistor network calibration.
Also known as "10K mode" because it puts a 10K resistor across the A & B terminals of the ALDL connector. It sets the advance and the idle is set to 1000 RPM, plus some other miscellaneous stuff.
ALCL (Assembly Line Communications Link) was what GM called the ALDL (Assembly Line Diagnostic Link) back in the '80s.
#4
This mode shorts the A & B terminals of the ALDL connector together. It sets the timing to a fixed advance and some other minor things.
Also known as "3.9K mode" because it puts a 3.9K resistor across the A & B terminals of the ALDL connector. This is what GM calls limp mode. It basically turns off the microcontroller in the ECM and the timing and injector pulse widths are controlled by the FMD (Fuel Modeling Device) IC using the resistor networks in the MEMCAL. The MEMCAL is MEM for program memory and CAL for the resistor network calibration.
Also known as "10K mode" because it puts a 10K resistor across the A & B terminals of the ALDL connector. It sets the advance and the idle is set to 1000 RPM, plus some other miscellaneous stuff.
ALCL (Assembly Line Communications Link) was what GM called the ALDL (Assembly Line Diagnostic Link) back in the '80s.
Also known as "3.9K mode" because it puts a 3.9K resistor across the A & B terminals of the ALDL connector. This is what GM calls limp mode. It basically turns off the microcontroller in the ECM and the timing and injector pulse widths are controlled by the FMD (Fuel Modeling Device) IC using the resistor networks in the MEMCAL. The MEMCAL is MEM for program memory and CAL for the resistor network calibration.
Also known as "10K mode" because it puts a 10K resistor across the A & B terminals of the ALDL connector. It sets the advance and the idle is set to 1000 RPM, plus some other miscellaneous stuff.
ALCL (Assembly Line Communications Link) was what GM called the ALDL (Assembly Line Diagnostic Link) back in the '80s.
#5
Race Director
There is also a "nothing" mode -- sorta "none of the above". That would be the normal mode. It is sometimes called ">20K mode" (where ">" means "greater than"), which can confuse people (I've seen it discussed on other forums). Basically that means "open" between ALDL terminals A & B.
The 10K mode has the least effect of the three modes originally listed.
The 10K mode has the least effect of the three modes originally listed.
#6
There is also a "nothing" mode -- sorta "none of the above". That would be the normal mode. It is sometimes called ">20K mode" (where ">" means "greater than"), which can confuse people (I've seen it discussed on other forums). Basically that means "open" between ALDL terminals A & B.
The 10K mode has the least effect of the three modes originally listed.
The 10K mode has the least effect of the three modes originally listed.
Also, is there an exhaustive list of everything that is different in the calibration in the various mode?
Thanks,
Jeff
#8
Race Director
There is a list of what the modes do in the FSM. Unfortunately it is very vague. Here's some info (all quoted from my '86 FSM, page 6E-7):
NORMAL OR OPEN MODE
On engines that can be monitored in the open mode, it allows certain parameters to be obtained without changing the engine operating characteristics. The parameters capable of being read vary from engine family to engine family. Most "SCAN" tools are programmed so that the system will go directly into the special mode and the "open" mode must be selected when it is available.
10K MODE, SPECIAL MODE OR ALCL MODE
In this mode, all information incorporated into a specific engine and ECM is obtainable. However, in this mode the system operating characteristics are modified as follows:
- Closed loop timers are bypassed
- EST (spark) is advanced
- IAC will control engine idle to 1000 RPM +/- 50 RPM
- On some engines, canister purge solenoid will be enabled
- Park/Neutral restrict functions will be disabled
FACTORY TEST MODE, BACK-UP OR 3.9K MODE
When in this mode, the ECM is operating on the fuel back-up logic and calibrated by the Calpak (back-up chip). The Calpak Part of Mem/Cal is used to control the fuel delivery if the ECM fails. This mode verifies that the back-up feature is OK. The parameters that can be read on a "SCAN" tool in this mode are not of much use for service.
--------------------- End quote ---------------
As you can tell from the language, this section of the FSM is generic and applies to all GM cars.
NORMAL OR OPEN MODE
On engines that can be monitored in the open mode, it allows certain parameters to be obtained without changing the engine operating characteristics. The parameters capable of being read vary from engine family to engine family. Most "SCAN" tools are programmed so that the system will go directly into the special mode and the "open" mode must be selected when it is available.
10K MODE, SPECIAL MODE OR ALCL MODE
In this mode, all information incorporated into a specific engine and ECM is obtainable. However, in this mode the system operating characteristics are modified as follows:
- Closed loop timers are bypassed
- EST (spark) is advanced
- IAC will control engine idle to 1000 RPM +/- 50 RPM
- On some engines, canister purge solenoid will be enabled
- Park/Neutral restrict functions will be disabled
FACTORY TEST MODE, BACK-UP OR 3.9K MODE
When in this mode, the ECM is operating on the fuel back-up logic and calibrated by the Calpak (back-up chip). The Calpak Part of Mem/Cal is used to control the fuel delivery if the ECM fails. This mode verifies that the back-up feature is OK. The parameters that can be read on a "SCAN" tool in this mode are not of much use for service.
--------------------- End quote ---------------
As you can tell from the language, this section of the FSM is generic and applies to all GM cars.
#9
Race Director
The ECM has its own internal modes as well as the others listed. I have been meaning to create a spreadsheet which contrasts the differences in the modes. The basic mode spits out a bunch of data, but there are other modes that can output just the info you ask for. I don't know of any scan tool that implements those modes. There are 5 modes, numbered 0 through 4. I'll quote the 160 baud mode and mode 1 below because it is the one you normally see on a scan tool.
Here's what comes out of my 1227165 ECM running BUA code (the hexadecimal number starting with the "$" sign is the address in RAM where the data comes from):
Code:
******************************************************* * 160 BAUD diagnostics * Table Of Addresses vs data ******************************************************* LC70D: FDB $C000 ; LOC 2, PROM ID (16 bits) FDB $C001 ; LOC 3, MSB FDB $002C ; LOC 4, IAC Present Position FDB $005D ; LOC 5, Coolant temp, (ADC) FDB $0065 ; LOC 6, Filtered MPH FDB $0112 ; LOC 7, EGR D/C FDB $0057 ; LOC 8, RPM/25 FDB $0081 ; LOC 9, TPS voltage (ADC) FDB $00C6 ; LOC 10, Base FI Pulse Width FDB $006F ; LOC 11, Filtered O2 Signal FDB $0005 ; LOC 12, Error Flag #1, (Sensors) ;--------------------------------- ; Bit 0 = Error 23 MAT SENSOR LOW ; 1 = Error 22 TPS LOW ; 2 = Error 21 TPS HIGH ; 3 = Error 16 NOT USED ; ; 4 = Error 15 COOL SENSOR LOW TEMP. ; 5 = Error 14 COOL SENSOR HIGH TEMP. ; 6 = Error 13 O2 SENSOR ; 7 = Error 12 NO DISTRIBUTOR REFERENCE PULSES ;--------------------------------- FDB $0006 ; LOC 13, Error Flag #2 ; ; Bit 0 = Error 35 NOT USED ; 1 = Error 34 MAF SENSOR LOW ; 2 = Error 33 MAF SENSOR HIGH ; 3 = Error 32 EGR diagnostics ; ; 4 = Error 31 NOT USED ; 5 = Error 26 NOT USED ; 6 = Error 25 MAT SENSOR HIGH ; 7 = Error 24 VSS ;--------------------------------- FDB $0007 ; LOC 14, Error Flag #3 ; ; Bit 0 = Error 51 PROM ERROR ; 1 = Error 46 VATS FAILED ; 2 = Error 45 O2 SENSOR RICH ; 3 = Error 44 O2 SENSOR LEAN ; ; 4 = Error 43 ESC FAILURE ; 5 = Error 42 EST ERROR ; 6 = Error 41 cylinder SELECT ERROR ; 7 = Error 36 BURNOFF diagnostics ;--------------------------------- FDB $0008 ; L0C 15, Error Flag #4 ; ; Bit 0 = Error 63 NOT USED ; 1 = Error 62 NOT USED ; 2 = Error 61 NOT USED ; 3 = Error 56 NOT USED ; ; 4 = Error 55 NOT USED ; 5 = Error 54 FUEL PUMP VOLTAGE ; 6 = Error 53 OVER VOLTAGE ; 7 = Error 52 CAL PAC MISSING ;--------------------------------- FDB $0044 ; 16, MAF Flow FDB $0060 ; 17, MAT FDB $0037 ; 18, MCU Status Flag (transmission etc.) FDB $00A1 ; 19, ECU PA3 Counter FDB $00C0 ; 20, BLM Multiplier FDB $00F1 ; 21, Rich/Lean Counter FDB $00EA ; 22, Air flow in gm/sec, 16 bits FDB $00EB ; 23, LSB FDB $00D5 ; 24, Base pulse width (Last Injection), 16 bits FDB $00D6 ; 25, LSB ******************************************************* ******************************************************* * MODE 1 FIXED DATA DATA STREAM * * ALDL DEVICE MUST REQUEST MODE 1 BY TRANSMITTING THE FOLLOWING MESSAGE TO THE ECM: * * MSG ID = $80 * MSG LEN 1+85 = $56 * MODE = $01 * CKSUM = $29 * * THE ECM WILL RESPOND WITH: * * MSG ID = $80 * MSG LEN 64+85 = $95 * MODE = $01 * DATA BYTE 1 = $xx * . * . * BATA BYTE 63 = $xx * CKSUM = $cc ******************************************************* LC751: FDB $0000 ; Next Message Entry Address FCB $80 ; Device ID Code FCB $80 ; RAM/ROM Flag (EPROM) FCB 64 ; Output Message Length FCB 1 ; Input Message Length FDB $016F ; Address of Output Control Block FDB $0133 ; Address of Input Control Block LC75B: FDB $C000 ; 1, PROM ID MSB FDB $C001 ; 2, PROM ID LSB FDB $0005 ; 3, Error Flag #1 ; ; Bit 0 = Error 23 MAT SENSOR LOW ; 1 = Error 22 TPS LOW ; 2 = Error 21 TPS HIGH ; 3 = Error 16 NOT USED ; ; 4 = Error 15 COOL SENSOR LOW TEMP. ; 5 = Error 14 COOL SENSOR HIGH TEMP. ; 6 = Error 13 O2 SENSOR ; 7 = Error 12 NO DISTRIBUTOR REFERENCE PULSES FDB $0006 ; 4, Error Flag #2 ; ; Bit 0 = Error 35 NOT USED ; 1 = Error 34 MAF SENSOR LOW ; 2 = Error 33 MAF SENSOR HIGH ; 3 = Error 32 EGR diagnostics. ; ; 4 = Error 31 NOT USED ; 5 = Error 26 NOT USED ; 6 = Error 25 MAT SENSOR HIGH ; 7 = Error 24 VSS FDB $0007 ; 5, Error Flag #3 ; ; Bit 0 = Error 51 PROM ERROR ; 1 = Error 46 VATS FAILED ; 2 = Error 45 O2 SENSOR RICH ; 3 = Error 44 O2 SENSOR LEAN ; ; 4 = Error 43 ESC FAILURE ; 5 = Error 42 EST ERROR ; 6 = Error 41 cylinder SELECT ERROR ; 7 = Error 36 BURNOFF diagnostics FDB $0008 ; 6, Error Flag #4 ; ; Bit 0 = Error 63 NOT USED ; 1 = Error 62 NOT USED ; 2 = Error 61 NOT USED ; 3 = Error 56 NOT USED ; ; 4 = Error 55 NOT USED ; 5 = Error 54 FUEL PUMP VOLTAGE ; 6 = Error 53 OVER VOLTAGE ; 7 = Error 52 CAL PAC MISSING FDB $0009 ; 7, Error Flag #5 ; ; Bit 0 = NOT USED ; 1 = NOT USED ; 2 = NOT USED ; 3 = NOT USED ; ; 4 = NOT USED ; 5 = Error 66 NOT USED ; 6 = Error 65 NOT USED ; 7 = Error 64 NOT USED FDB $005D ; 8, Coolant, ADC FDB $005F ; 9, Start up Coolant, deg C FDB $0081 ; 10, TPS, ADC FDB $0057 ; 11, RPM, Var FDB $0095 ; 12, Ref Period FDB $0096 ; 13, LSB FDB $0065 ; 14, MPH Var for Display FDB $0066 ; 15, LSB FDB $008F ; 16, N/V Ratio FDB $006F ; 17, O2 Filtered FDB $00F1 ; 18, ALDL Rich/Lean Counter FDB $00C6 ; 19, Base PW Correction FDB $00C0 ; 20, Block Learn, Scaled FDB $00BF ; 21, Block Learn FDB $00C9 ; 22, CLOSED Loop integrator value FDB $002C ; 23, IAC Present Position FDB $0101 ; 24, IAC Step Direction Command FDB $0102 ; 25, Requested Idle Speed FDB $0063 ; 26, Filtered Load Value FDB $0064 ; 27, LSB FDB $0061 ; 28, Old Load Value, older Load Value FDB $0060 ; 29, MAT Value FDB $012B ; 30, MAT Value, ADC FDB $0112 ; 31, EGR D.C. FDB $0113 ; 32, Cannister Purge D.C. FDB $00F4 ; 33, Fan D.C. FDB $007E ; 34, Batt Volts, ADC FDB $007F ; 35, Pump VDC FDB $00EA ; 36, Air flow in gm/sec, 16 bits FDB $00EB ; 37, LSB FDB $00B6 ; 38, UNLIMITED AIRFLOW, (MAF diagnostics) FDB $0115 ; 39, Total Spark Advance relative to TDC FDB $0116 ; 40, LSB FDB $009D ; 41, Spark Advance relative to TDC FDB $009E ; 42, LSB FDB $00A1 ; 43, ECU Counter FDB $00A5 ; 44, Knock Retard FDB $00D5 ; 45, Base PW, Last Inject FDB $00D6 ; 46, LSB FDB $00CE ; 47, Total Air/Fuel Value FDB $00CF ; 48, LSB FDB $011A ; 49, Run total Fuel Consumed FDB $011B ; 50, LSB FDB $011E ; 51, Running total VSS pulses (.0005mi/bit) FDB $001A ; 52, engine Run Time, Seconds FDB $001B ; 53, LSB FDB $0035 ; 54, Minor LOOP mode word #2 ; ; Bit 0 = 1 = OVERDRIVE ON, 0 = OVERDRIVE OFF ; 1 = Error 14 or 15 THIS STARTUP ; 2 = REF PULSES OCCURRED (6.25 ms CHECK) ; 3 = 1= ALDL MODE, 8192 LOCKED IN, & MODE 4 ; ; 4 = diagnostic SWITCH IN diagnostic POSITION ; 5 = diagnostic SWITCH IN ALDL POSITION ; 6 = HIGH BATTERY VOLTAGE, DISABLE SOLENOID DISCRETES ; 7 = SHIFT LIGHT (1 = ON, 0 = OFF) FDB $0037 ; 55, MPU Status word, (Fan, P.S. etc) ; ; Bit 0 = PARK/NEUTRAL MODE ; 1 = NOT IN THIRD GEAR ; 2 = OVERDRIVE REQUEST ; 3 = EXCESSIVE POWER STEER PRESSURE, CLUTCH ANTICIPATE ; ; 4 = EGR diagnostics SWITCH CLOSED ; 5 = TCC LOCKED ; 6 = FAN REQUEST BIT ; 7 = 0 = A/C REQUEST FDB $002E ; 56, Mode word ; ; Bit 0 = PARK/NEUTRAL (0 = DRIVE) ; 1 = 3rd GEAR ; 2 = 4th GEAR ; 3 = POWER STEERING (1 = CRAMP) ; ; 4 = READ BUT NOT USED ; 5 = EGR diagnostics ; 6 = FAN REQUEST <=> ACHP (A/C HI PRESSURE) ; 7 = AIR CONDITIONER (0 = A/C REQUESTED) FDB $0034 ; 57, Minor LOOP word #1 ; ; Bit 0 = ADVANCE FLAG (0 = ADVANCE, 1 = RETARD) ; 1 = CHECK ENGINE LIGHT DELAY FLAG ; 2 = INTERRUPT SERVICE EXECUTION EXCEED 6.25 ms ; 3 = FAN ON DISABLED BY PID ; ; 4 = VSS ROAD SPEED 1st PULSE FLAG ; 5 = A/C CLUTCH FLAG (0 = A/C CLUTCH ON) ; 6 = BYPASS CHECK ENABLE ; 7 = ENGINE RUNNING FLAG (1 = RUNNING) FDB $0001 ; 58, Non Volatile Memory Mode word ; ; Bit 0 = O2 SENSOR READY ; 1 = CLOSED LOOP TIMER TIMED OUT ; 2 = NOT USED ; 3 = IMPROPER SHUTDOWN ; ; 4 = NOT USED ; 5 = IAC KICKDOWN ENABLED ; 6 = KWARM KICKDOWN ENABLED ; 7 = Error 42 FAILED FDB $0004 ; 59, MANUAL transmission Mode word ; ; Bit 0 = OVERDRIVE ON ; 1 = 1st GEAR DIRECT ; 2 = 1st GEAR LOOK-AHEAD OK ; 3 = 4th GEAR ; ; 4 = 1st GEAR OVERDRIVE ; 5 = DOWNSHIFT/OFF REQUEST ; 6 = UPSHIFT/ON REQUEST ; 7 = OVERDRIVE ACTIVE FDB $003C ; 60, ALDL Mode word ; ; Bit 0 = ALDL RESET ; 1 = NOT USED ; 2 = FIELD SERVICE MODE ; 3 = FIRST closed loop PASS THRU FIELD SERVICE MODE DONE (1 = DONE) ; ; 4 = FIELD SERVICE. O2 TRANSITION ; 5 = ONE SECOND FLAG (SYMMETRICAL) ; 6 = 200 ms TOGGLE BIT FOR 2.5 Hz FSM FLASH RATE ; 7 = PULLUP RESISTOR FOR COOL FDB $003E ; 61, Major LOOP mode word ; ; Bit 0 = 100 ms, OLD CCP PURGE ON FLAG (0 = OFF) ; 1 = AIR CONTROLLED, 0 = AIR DIVERTED ; 2 = AIR SWITCHED TO PORT ; 3 = NOT USED ; ; 4 = SKIP BURNOFF DUE TO > 17 VOLTS THIS STARTUP ; 5 = D.E. QSEC ; 6 = BURNOFF AIR METER ; 7 = DECELERATION ENLEANMENT FDB $0046 ; 62, Serial Data Mode Word ; ; Bit 0 = EXPECTING FIRST 160 BAUD INTERRUPT ; 1 = EXPECTING SECOND 160 BAUD INTERRUPT ; 2 = IN 8192 MODE ; 3 = LOCKED IN 8192 MODE ; ; 4 = NOT USED ; 5 = NOT USED ; 6 = NOT USED ; 7 = NOT USED FDB $0044 ; 63, Flag Word Fuel/Air Mode word ; ; Bit 0 = NOT USED ; 1 = LEARN CONTROL FLAG, (1 = ENABLE STORE, 0 = DISABLE) ; 2 = NOT USED ; 3 = NOT USED ; ; 4 = VSS FAILURE ; 5 = EECC SLOW O2 RICH/LEAN FLAG ; 6 = RICH/LEAN FLAG (1 = RICH, 0 = LEAN) ; 7 = CLOSED LOOP FLAG (1 = closed loop, 0 = open loop) *******************************************************
Last edited by Cliff Harris; 03-29-2014 at 01:20 AM.
#10
Wait, I thought the 1227165 ECM ran at 8192 baud?
Looking through that list it seems much more extensive than what I remember seeing on the '85 only 1226870 datastream. But it has been so long I don't remember anymore.
Looking through that list it seems much more extensive than what I remember seeing on the '85 only 1226870 datastream. But it has been so long I don't remember anymore.
#11
Race Director
The default mode for the 1227165 ECM is 160 baud.
The scan software sends a magic series of bytes to switch it to 8192 mode. Those bytes are listed in the "Mode 1" list I posted earlier in post #9:
The scan software sends a magic series of bytes to switch it to 8192 mode. Those bytes are listed in the "Mode 1" list I posted earlier in post #9:
Code:
* ALDL DEVICE MUST REQUEST MODE 1 BY TRANSMITTING THE FOLLOWING MESSAGE TO THE ECM: * * MSG ID = $80 * MSG LEN 1+85 = $56 * MODE = $01 * CKSUM = $29
Last edited by Cliff Harris; 04-04-2014 at 02:46 AM.
#12
Got it. Any idea what happens on an 1226870 ECM? It doesn't have 8192 baud so presumably it also doesn't have a "mode 1".
Edit: Re-read your original post again. Does the 1226870 deliver the same info as the 1227165 in 160 baud mode (approx. 25 parameters)?
Edit: Re-read your original post again. Does the 1226870 deliver the same info as the 1227165 in 160 baud mode (approx. 25 parameters)?
Last edited by jsiddall; 04-04-2014 at 09:57 AM.
#13
Race Director
#14
No problem. Thanks for the detailed info you provided. I'll see if I can find out more about the 6870 and post my findings. It's currently snowing here so that may be a while yet!