Is there a SAE number that goes with that doc?
Is there a SAE number that goes with that doc?
-Carl
Hi Carl,
There is no SAE number, it is a GM internal only document. These things do have a way of leaking out over years though.
I found the document title in another GM internal document named "Service Programming System (SPS) Interpreter Programmers Reference Manual". This doc was published by GM customer care for (I believe) the aftermarket test industry. In the document there is a section on mode $AE which interested me. This section references a list of CPID which I believe stands for control parameter identifier or some such. It may be that a list of CPID is in one of these docs, and that would save me a bunch of time.
Cheers,
Tom
Look what I gathered here for mode AE on later Pcms. I am not sure if the commands are standardized or not, but if they work for 97 pcm it will be a great find.
Some commands are still missing from the list. And there is more undefined too.
I have a question for those more used to working on LT1s with pro tools... There is a built in test that permits the user to pulse/disable injectors. As part of that, the user can set the a/f ratio. How do the pro tools use this. I expect that injectors are disabled in sequence to find a dead cylinder (?). Perhaps the commanded a/f ratio is used to stop feedback from O2s that will detect excess air (from the un-fueled cyl) in the exhaust. If someone could describe the test and give details about the intent/result it would be interesting for me.
Still a bit unsure about the following. I have done no testing with the A/F ratio part. I have disabled each injector and seen that work on my scope. The testing is triggered by the following j1850 sequence:
4C 10 F0 AE 02 00 00 20 00 00 xx <CRC>
xx =
00 NONE
01 CYLINDER 1
02 CYLINDER 2
04 CYLINDER 3
08 CYLINDER 4
10 CYLINDER 5
20 CYLINDER 6
40 CYLINDER 7
80 CYLINDER 8
FF ALL
4C 10 F0 AE 02 00 00 60 00 00 xx <CRC>
xx =
commanded a/f
When I get completed there will be a post about all the supported mode $AE commands (or most of them). I am not knowledgeable on auto trans and the whole sub-mode $03 is a/t might need some help there also.
-Tom
I still hope to hear from someone who has experience with pro tools that use to suspend an injector. I think it works like this, but...
you read from the PCM it's calculated a/f ratio. Then send the command a/f ratio to that value. Then send a sequence of disable injector commands.
This sequence would prevent the PCM from compensating for the extra air sent down the exhaust by fixing the a/f. Disable each injector in turn and note rpm loss. A dead cylinder would not change the rpm. Other ideas?
----------
Spark timing can be changed using mode $AE submode $02. Command is: 4C 10 F0 AE 02 00 00 04 00 NN 00 where NN is the timing you are requesting.
Edit post---
enter NN of $00 for -64 degrees, $80 for 0degrees and $FF for +63.5 degrees
---
With most (all?) mode AE commands, the PCM must be conditioned with a $A8 command first. These commands have a timeout unless the A8 is re-issued every few seconds.
There are just a bunch of commands, not sure what use they all are but I am working through testing them. Hope to post a list soon. Mode $AE Submode $03 are a bit of a problem for me to go through. First up they are all automatic trans related and my bench is set for manual. Second, I don't know much about automatic. I will look around the web to see if I can find a manual for a a/t diagnostic tool. That should give me an idea what to look for.
-Tom
Last edited by Tom H; 07-27-2021 at 09:23 PM.
Interesting to look as the similarities and differences between your command collection and what I find for '97...
Later PCM
----------
FUEL GAUGE
6C 10 F1 AE 02 40 1A 00 00 00 00 D4 10%
6C 10 F1 AE 02 40 33 00 00 00 00 08 20%
6C 10 F1 AE 02 40 4D 00 00 00 00 AE 30%
6C 10 F1 AE 02 40 66 00 00 00 00 A6 40%
6C 10 F1 AE 02 40 80 00 00 00 00 BA 50%
'97 PCM
--------
4C 10 F0 AE 02 40 00 00 00 00 00 <CRC>
In the '97 code mode $ae submode $40 has no other parameters and I believe is used to clear out the short term fuel trim table (both left and right).
code is
Not completely figured out yet but mostly there. I will continue next post ...Code:BANK0:7040 BANK0:7040 loc_7040: ; CODE XREF: VEC_OUTPUT_CMP2+326j BANK0:7040 ; VEC_OUTPUT_CMP2+335j BANK0:7040 ldaa M$AES$02P$00 ; M$AE PID $02 PARAM 0 BANK0:7043 bita #$40 BANK0:7045 beq loc_7060 BANK0:7045 BANK0:7047 brset <byte_7D $04 loc_7063 ; BIT 01 BANK0:7047 ; BIT 02 BANK0:7047 ; BIT 04 BANK0:7047 ; BIT 08 BANK0:7047 ; BIT 10 BANK0:7047 ; BIT 20 BANK0:7047 ; BIT 40 TX MESSAGE IN PROGRESS BANK0:7047 ; BIT 80 DISABLE BACKGROUND MESSAGES BANK0:7047 ; BANK0:7047 BANK0:704B bset <byte_7D $04 ; BIT 01 BANK0:704B ; BIT 02 BANK0:704B ; BIT 04 BANK0:704B ; BIT 08 BANK0:704B ; BIT 10 BANK0:704B ; BIT 20 BANK0:704B ; BIT 40 TX MESSAGE IN PROGRESS BANK0:704B ; BIT 80 DISABLE BACKGROUND MESSAGES BANK0:704B ; BANK0:704E ldaa #$80 ; CENTER FOR SHORT TERM FUEL TRIM BANK0:7050 ldx #$0026 BANK0:7050 BANK0:7053 BANK0:7053 loc_7053: ; CODE XREF: VEC_OUTPUT_CMP2+350j BANK0:7053 staa $23,x ; CLEAR TABLE TOP DOWN BANK0:7055 dex ; $0049 THROUGH $0024 BANK0:7056 bne loc_7053 ; LOOP CLEARING SHORT TERM FUEL TRIM SETTINGS BANK0:7056 BANK0:7058 staa STFT_B1 ; B1 (LEFT) SHORT TERM FUEL TRIM BANK0:705B staa STFT_B2 ; B2 (RIGHT) SHORT TERM FUEL TRIM BANK0:705E bra loc_7063
-Tom
Later PCM
----------
??? pwd ID
6C 10 F1 AE 02 80 [XX] 00 00 00 00
'97 PCM
--------
4C 10 F0 AE 02 80 00 00 00 00 00
In the '97 code mode $ae submode $80 has no other parameters and I believe is used to center the IAC.
Code is:
Code:BANK0:7025 loc_7025: ; CODE XREF: VEC_OUTPUT_CMP2:loc_701Ej BANK0:7025 ldaa M$AES$02P$00 ; M$AE PID $02 PARAM 0 BANK0:7028 bita #$80 BANK0:702A beq loc_703D BANK0:702A BANK0:702C brset <byte_7D $02 loc_7040 ; BIT 01 BANK0:702C ; BIT 02 BANK0:702C ; BIT 04 BANK0:702C ; BIT 08 BANK0:702C ; BIT 10 BANK0:702C ; BIT 20 BANK0:702C ; BIT 40 TX MESSAGE IN PROGRESS BANK0:702C ; BIT 80 DISABLE BACKGROUND MESSAGES BANK0:702C ; BANK0:702C BANK0:7030 bset <byte_7D $02 ; BIT 01 BANK0:7030 ; BIT 02 BANK0:7030 ; BIT 04 BANK0:7030 ; BIT 08 BANK0:7030 ; BIT 10 BANK0:7030 ; BIT 20 BANK0:7030 ; BIT 40 TX MESSAGE IN PROGRESS BANK0:7030 ; BIT 80 DISABLE BACKGROUND MESSAGES BANK0:7030 ; BANK0:7033 bset <byte_B7 $04 ; BIT 01 BANK0:7033 ; BIT 02 GEAR CHANGE IAC STEPS ACTIVE BANK0:7033 ; BIT 04 BANK0:7033 ; BIT 08 IAC TIMEOUT STEPS TIMER EXPIRED BANK0:7033 ; BIT 10 PARK/NEUTRAL SELECTED PREVIOUS STATE BANK0:7033 ; BIT 20 BANK0:7033 ; BIT 40 IAC LOW SPEED CONDITIONS ?? VEHICLE MOVING ?? BANK0:7033 ; BIT 80 AUTO TRANS PARK/NEUTRAL SELECTED FLAG BANK0:7033 ; BANK0:7036 ldab #$FF BANK0:7038 stab IAC_POSITION ; IAC MOTOR POSITION BANK0:703B bra loc_7040
The idle air control system is quite complex. There are a bunch of things relating to shifting of automatic trans from neutral to in gear, air conditioning, perhaps power steering load, various test controls. Also to be considered is the timing of the outputs to the motor. Each step needs to be sent and then a delay before the next step. This is needed to let the motor catch up with the applied state. It is going to take some effort to sort through all this.
-Tom
Usually when a cylinder is cut the tool monitors increase in map and drop in rpm, to figure if the cylinder is producing less power. High increase in map indicates strong cylinder. No change indicates bad cylinder.
It can be hardbuilt in code, that whenever a cylinder is disabled the pcm commands Open loop. In earier code when a cylinder is disabled you cannot change or command afr. The command is exclusive to each other. There might be something similar in the later code.
It is more than likely there will be some commands that are not present throughout the years. For example 97 can`t command fuel gauge, because there is not such an option built in the pcm.
Automatic trans have some simple commands for solenoids and line pressure. Most are simple on/off. Some pwm solenoids can be commanded with different pwm%.
An OBDII question for you all...
My PCM supports Mode $19 requests. Request is four bytes format like:
This all looks a lot like the Mode $18 listed in SAE J2190 -> in fact so much the same I wonder if some thing changed along the way or ??Code:BANK0:CF01 ************************************************* BANK0:CF01 * MODE $19: REQUEST DTCS BY STATUS BANK0:CF01 * REQUESTS H0,H1,H2,$19,$XX,$FF,$00 RETURN DTCS BANK0:CF01 * H0,H1,H2,$19,$XX,$FF,$FF COUNT OF DTC BANK0:CF01 * BANK0:CF01 * STATUS IS XX --> ANY/ALL OF THE BITS ORED TOGETHER BANK0:CF01 * $80 - MIL ILLUMINATED BANK0:CF01 * $40 - MIL PENDING BANK0:CF01 * $20 - MIL PREVIOUSLY ILLUMINATED -OLD CODE BANK0:CF01 * $10 - STORED TROUBLE CODE (FREEZE FRAMD DATA AVAILABLE) BANK0:CF01 * $08 - GM SPECIFIC STATUS 1 BANK0:CF01 * $04 - GM SPECIFIC STATUS 0 BANK0:CF01 * $02 - CURRENT DTC CODE BANK0:CF01 * $01 - IMMATURE DTC CODE BANK0:CF01 *************************************************
Can anyone tell me where Mode $19 is speced or any details? If you have the document, that would be icing on the cake.
Thanks,
-Tom
Bookmarks