EviLette Posted November 25, 2012 Report Share Posted November 25, 2012 (edited) Trying to prove a point here, boys and girls. I know there is an idle relearn procedure in the FAQ, but still, please, just take the time to answer this for me. Does a 1992 Grand Prix SE with the 3.1 engine and OBD1 system have an idle relearn procedure which involves pulling the ECM fuse to reset and then running the car a specific way for a set length of time in a set cycle to set the idle properly? Thank-you for your time. Margeaux Edited November 25, 2012 by EviLette Quote Link to comment Share on other sites More sharing options...
94 olds vert Posted November 25, 2012 Report Share Posted November 25, 2012 I guess pulling the ECM would have the same affect as just pulling the fuse for the EMC, but pulling the EMC fuse is far easier. Quote Link to comment Share on other sites More sharing options...
EviLette Posted November 25, 2012 Author Report Share Posted November 25, 2012 D'oh. I meant the ECM fuse in the glove box. Smartass. LOL Quote Link to comment Share on other sites More sharing options...
94 olds vert Posted November 25, 2012 Report Share Posted November 25, 2012 My bad... Yeah, just follow the instructions in the FAQ thread. That's what I did after I tore apart my motor earlier this year. I've 500 or so miles on my engine now after doing everything from the block up. Its running great. The 3.1 is a bullet proof engine. Quote Link to comment Share on other sites More sharing options...
EviLette Posted November 25, 2012 Author Report Share Posted November 25, 2012 My bad... Yeah, just follow the instructions in the FAQ thread. That's what I did after I tore apart my motor earlier this year. I've 500 or so miles on my engine now after doing everything from the block up. Its running great. The 3.1 is a bullet proof engine. Then why did you answer 'no' on the poll? This is to prove it to my boyfriend, who keeps telling me that my car has no idle relearn, and that it has a backup memory, and essentially looks at me like I don't know what the f*ck I am talking about. :cussing: Quote Link to comment Share on other sites More sharing options...
RobertISaar Posted November 25, 2012 Report Share Posted November 25, 2012 if you or he would like to look at the steps the ECM goes through to test for and update the IAC setting the ECM settles at, let me know. Quote Link to comment Share on other sites More sharing options...
EviLette Posted November 25, 2012 Author Report Share Posted November 25, 2012 if you or he would like to look at the steps the ECM goes through to test for and update the IAC setting the ECM settles at, let me know. <3 you I would be very interested. Quote Link to comment Share on other sites More sharing options...
RobertISaar Posted November 25, 2012 Report Share Posted November 25, 2012 here are the two big sections that control it, i'll attempt to summarize below. the biggest issue is that GM set a very..... odd initial position in pretty much every calibration, so they tend to act funny until enough learn cycles go on. ROM:CDD3 ; --------------------------------------------------------------------------- ROM:CDD3 ROM:CDD3 loc_CDD3: ; CODE XREF: ROM:loc_CDC8j ROM:CDD3 ; ROM:CDCCj ROM:CDD3 tab ROM:CDD4 ldaa byte_16D ; IAC steps... ROM:CDD7 sba ; subtract B from A and place in A ROM:CDD8 bcs loc_CDE3 ; branch if B was higher ROM:CDDA brset byte_1 $10 loc_CDE4 ; NV Mode Byte ROM:CDDA ; 0 O2 SENSOR READY FLAG 1=READY ROM:CDDA ; 1 C/L TIMER 1=TIMER O.K. ROM:CDDA ; 2 NOT USED ROM:CDDA ; 3 IMPROPER SHUTDOWN FLAG 1=IMPROPER ROM:CDDA ; 4 1 = ISMNMPKA LEARNED AFTER NVM FAIL (QUICK LEARN DONE) ROM:CDDA ; 5 NOT USED ROM:CDDA ; 6 1 = IAC MOTOR RESET ENABLED ROM:CDDA ; 7 1 = MALF 42 FAILURE (EST MONITOR) ROM:CDDE suba 0,y ; Y is pointing at stack ROM:CDDE ; IAC Minimum adjust steps from NVRAM fail ROM:CDE1 bcc loc_CDE4 ROM:CDE3 ROM:CDE3 loc_CDE3: ; CODE XREF: ROM:CDD8j ROM:CDE3 clra ROM:CDE4 ROM:CDE4 loc_CDE4: ; CODE XREF: ROM:CDDAj ROM:CDE4 ; ROM:CDE1j ROM:CDE4 pshb ROM:CDE5 ldx word_1B ; idle speed minimum filtering value ROM:CDE7 ldab byte_8DEB ; FILT CONST FOR FILT ISMNMP INTO ISMNMPKA ROM:CDEA jsr Lag_filter ROM:CDED std word_1B ; idle speed minimum filtering value ROM:CDEF bset byte_3B 8 ; bits ROM:CDEF ; b3 set when filtering idle speed minimum ROM:CDF2 brclr byte_4B $40 loc_CE47 ; '@' ; bits ROM:CDF2 ; b1 set when fan(s) to be turned on ROM:CDF2 ; b3 set if hot offset to idle still in use ROM:CDF2 ; b5 set when fan 2 on? ROM:CDF2 ; b7 set = P/N indicated ROM:CDF6 ldaa word_19 ; IAC Minimum Position ROM:CDF6 ; N = IAC STEPS ROM:CDF8 adda byte_8DED ; ISMMPKAC-ISMNMPKA DELTA THRESH TO ADJ ISMNMPKA ROM:CDFB bcc loc_CDFF ROM:CDFD ldaa #$FF ; limit to 255 ROM:CDFF ROM:CDFF loc_CDFF: ; CODE XREF: ROM:CDFBj ROM:CDFF cmpa word_1B ; idle speed minimum filtering value ROM:CE01 bls loc_CE47 ; branch if A was lower ROM:CE03 ldaa word_19 ; IAC Minimum Position ROM:CE03 ; N = IAC STEPS ROM:CE05 suba byte_8DEE ; ISMNMPKA-ISMMPKAC DELTA THRESH TO ADJ ISMNMPKA ROM:CE08 bcc loc_CE0B ROM:CE0A clra ROM:CE0B ROM:CE0B loc_CE0B: ; CODE XREF: ROM:CE08j ROM:CE0B cmpa word_1B ; idle speed minimum filtering value ROM:CE0D bcc loc_CE47 ROM:CE0F ldaa word_1B ; idle speed minimum filtering value ROM:CE11 psha ROM:CE12 suba byte_15C ; idle speed minimum steps change since startup ROM:CE15 bcc loc_CE2B ROM:CE17 nega ROM:CE18 cmpa byte_8E07 ; MAX ALLOWED ISMNMPKA NEG DELTA FROM ENG STARTUP ROM:CE1B pula ROM:CE1C bls loc_CE3C ROM:CE1E ldaa byte_15C ; idle speed minimum steps change since startup ROM:CE21 suba byte_8E07 ; MAX ALLOWED ISMNMPKA NEG DELTA FROM ENG STARTUP ROM:CE24 bcc loc_CE28 ROM:CE26 ldaa #0 ROM:CE28 ROM:CE28 loc_CE28: ; CODE XREF: ROM:CE24j ROM:CE28 clrb ROM:CE29 bra loc_CE3C ROM:CE2B ; --------------------------------------------------------------------------- ROM:CE2B ROM:CE2B loc_CE2B: ; CODE XREF: ROM:CE15j ROM:CE2B cmpa byte_8E06 ; MAX ALLOWED ISMNMPKA POS DELTA FROM ENG STARTUP ROM:CE2E pula ROM:CE2F bls loc_CE3C ROM:CE31 ldaa byte_15C ; idle speed minimum steps change since startup ROM:CE34 adda byte_8E06 ; MAX ALLOWED ISMNMPKA POS DELTA FROM ENG STARTUP ROM:CE37 bcc loc_CE3B ROM:CE39 ldaa #$FF ROM:CE3B ROM:CE3B loc_CE3B: ; CODE XREF: ROM:CE37j ROM:CE3B clrb ROM:CE3C ROM:CE3C loc_CE3C: ; CODE XREF: ROM:CE1Cj ROM:CE3C ; ROM:CE29j ... ROM:CE3C cmpa byte_8DE6 ; MAXIMUM KEEP ALIVE MINIMUM MOT POS ROM:CE3F bcs loc_CE45 ROM:CE41 ldaa byte_8DE6 ; MAXIMUM KEEP ALIVE MINIMUM MOT POS ROM:CE44 clrb ROM:CE45 ROM:CE45 loc_CE45: ; CODE XREF: ROM:CE3Fj ROM:CE45 std word_19 ; IAC Minimum Position ROM:CE45 ; N = IAC STEPS and here's the big one... the "quick learn" is checked to see if it's been done, which happens after a battery disconnect. if not, quick learn is basically done now. the updated value is now filtered into the normal IAC minimum location. then A/C is accounted for. then a maximum positive and maximum negative change since startup is checked(this is why it can take a couple of cycles, if the factory value is too far off for the engine). then a maximum possible idle keep-alive position is checked against and limited if necessary. notice that these two sections don't have the qualifications to enter idle learn mode.... there's another section for that. i'm not going to clutter up the thread more with the exact stuff, but i will summarize: vehicle has to be at 0MPH throttle has to be at a very low position (0.78% in the case of the 91-92 3.1 W-bodies) actual idle speed must be very close(and stabile) to desired idle speed to update(within 75RPM for 1.6 seconds in this instance) minimum coolant temp of 133*F (only for the cycle after a battery disconnect, for cycles afterwards, 188*F) maximum coolant temp of 226*F (above that disables the learning until it drops under it again) the initial value used for IAC minimum is 10 steps.... i've found most LH0s like around 20-25. the number of IAC steps must be beyond a certain threshold to update the IAC minimum value, otherwise it's ignored. for quick learn, you have to be idling for at least 35 seconds before it starts updating. maximum added steps are 8, maximum steps to take away are 16. that's how it works in a nutshell, albiet a very complex one. Quote Link to comment Share on other sites More sharing options...
Pontiac6KSTEAWD Posted November 25, 2012 Report Share Posted November 25, 2012 As mentioned on the phone Evil, yes there is a procedure. It affects the drivability of the car, and on my TGP, fuel milage, power, and for some reason, AC function. I love being one of the people that she has on speed dial LOL! Quote Link to comment Share on other sites More sharing options...
dodgethis Posted November 25, 2012 Report Share Posted November 25, 2012 here are the two big sections that control it, i'll attempt to summarize below. the biggest issue is that GM set a very..... odd initial position in pretty much every calibration, so they tend to act funny until enough learn cycles go on. ROM:CDD3 ; --------------------------------------------------------------------------- ROM:CDD3 ROM:CDD3 loc_CDD3: ; CODE XREF: ROM:loc_CDC8j ROM:CDD3 ; ROM:CDCCj ROM:CDD3 tab ROM:CDD4 ldaa byte_16D ; IAC steps... ROM:CDD7 sba ; subtract B from A and place in A ROM:CDD8 bcs loc_CDE3 ; branch if B was higher ROM:CDDA brset byte_1 $10 loc_CDE4 ; NV Mode Byte ROM:CDDA ; 0 O2 SENSOR READY FLAG 1=READY ROM:CDDA ; 1 C/L TIMER 1=TIMER O.K. ROM:CDDA ; 2 NOT USED ROM:CDDA ; 3 IMPROPER SHUTDOWN FLAG 1=IMPROPER ROM:CDDA ; 4 1 = ISMNMPKA LEARNED AFTER NVM FAIL (QUICK LEARN DONE) ROM:CDDA ; 5 NOT USED ROM:CDDA ; 6 1 = IAC MOTOR RESET ENABLED ROM:CDDA ; 7 1 = MALF 42 FAILURE (EST MONITOR) ROM:CDDE suba 0,y ; Y is pointing at stack ROM:CDDE ; IAC Minimum adjust steps from NVRAM fail ROM:CDE1 bcc loc_CDE4 ROM:CDE3 ROM:CDE3 loc_CDE3: ; CODE XREF: ROM:CDD8j ROM:CDE3 clra ROM:CDE4 ROM:CDE4 loc_CDE4: ; CODE XREF: ROM:CDDAj ROM:CDE4 ; ROM:CDE1j ROM:CDE4 pshb ROM:CDE5 ldx word_1B ; idle speed minimum filtering value ROM:CDE7 ldab byte_8DEB ; FILT CONST FOR FILT ISMNMP INTO ISMNMPKA ROM:CDEA jsr Lag_filter ROM:CDED std word_1B ; idle speed minimum filtering value ROM:CDEF bset byte_3B 8 ; bits ROM:CDEF ; b3 set when filtering idle speed minimum ROM:CDF2 brclr byte_4B $40 loc_CE47 ; '@' ; bits ROM:CDF2 ; b1 set when fan(s) to be turned on ROM:CDF2 ; b3 set if hot offset to idle still in use ROM:CDF2 ; b5 set when fan 2 on? ROM:CDF2 ; b7 set = P/N indicated ROM:CDF6 ldaa word_19 ; IAC Minimum Position ROM:CDF6 ; N = IAC STEPS ROM:CDF8 adda byte_8DED ; ISMMPKAC-ISMNMPKA DELTA THRESH TO ADJ ISMNMPKA ROM:CDFB bcc loc_CDFF ROM:CDFD ldaa #$FF ; limit to 255 ROM:CDFF ROM:CDFF loc_CDFF: ; CODE XREF: ROM:CDFBj ROM:CDFF cmpa word_1B ; idle speed minimum filtering value ROM:CE01 bls loc_CE47 ; branch if A was lower ROM:CE03 ldaa word_19 ; IAC Minimum Position ROM:CE03 ; N = IAC STEPS ROM:CE05 suba byte_8DEE ; ISMNMPKA-ISMMPKAC DELTA THRESH TO ADJ ISMNMPKA ROM:CE08 bcc loc_CE0B ROM:CE0A clra ROM:CE0B ROM:CE0B loc_CE0B: ; CODE XREF: ROM:CE08j ROM:CE0B cmpa word_1B ; idle speed minimum filtering value ROM:CE0D bcc loc_CE47 ROM:CE0F ldaa word_1B ; idle speed minimum filtering value ROM:CE11 psha ROM:CE12 suba byte_15C ; idle speed minimum steps change since startup ROM:CE15 bcc loc_CE2B ROM:CE17 nega ROM:CE18 cmpa byte_8E07 ; MAX ALLOWED ISMNMPKA NEG DELTA FROM ENG STARTUP ROM:CE1B pula ROM:CE1C bls loc_CE3C ROM:CE1E ldaa byte_15C ; idle speed minimum steps change since startup ROM:CE21 suba byte_8E07 ; MAX ALLOWED ISMNMPKA NEG DELTA FROM ENG STARTUP ROM:CE24 bcc loc_CE28 ROM:CE26 ldaa #0 ROM:CE28 ROM:CE28 loc_CE28: ; CODE XREF: ROM:CE24j ROM:CE28 clrb ROM:CE29 bra loc_CE3C ROM:CE2B ; --------------------------------------------------------------------------- ROM:CE2B ROM:CE2B loc_CE2B: ; CODE XREF: ROM:CE15j ROM:CE2B cmpa byte_8E06 ; MAX ALLOWED ISMNMPKA POS DELTA FROM ENG STARTUP ROM:CE2E pula ROM:CE2F bls loc_CE3C ROM:CE31 ldaa byte_15C ; idle speed minimum steps change since startup ROM:CE34 adda byte_8E06 ; MAX ALLOWED ISMNMPKA POS DELTA FROM ENG STARTUP ROM:CE37 bcc loc_CE3B ROM:CE39 ldaa #$FF ROM:CE3B ROM:CE3B loc_CE3B: ; CODE XREF: ROM:CE37j ROM:CE3B clrb ROM:CE3C ROM:CE3C loc_CE3C: ; CODE XREF: ROM:CE1Cj ROM:CE3C ; ROM:CE29j ... ROM:CE3C cmpa byte_8DE6 ; MAXIMUM KEEP ALIVE MINIMUM MOT POS ROM:CE3F bcs loc_CE45 ROM:CE41 ldaa byte_8DE6 ; MAXIMUM KEEP ALIVE MINIMUM MOT POS ROM:CE44 clrb ROM:CE45 ROM:CE45 loc_CE45: ; CODE XREF: ROM:CE3Fj ROM:CE45 std word_19 ; IAC Minimum Position ROM:CE45 ; N = IAC STEPS and here's the big one... the "quick learn" is checked to see if it's been done, which happens after a battery disconnect. if not, quick learn is basically done now. the updated value is now filtered into the normal IAC minimum location. then A/C is accounted for. then a maximum positive and maximum negative change since startup is checked(this is why it can take a couple of cycles, if the factory value is too far off for the engine). then a maximum possible idle keep-alive position is checked against and limited if necessary. notice that these two sections don't have the qualifications to enter idle learn mode.... there's another section for that. i'm not going to clutter up the thread more with the exact stuff, but i will summarize: vehicle has to be at 0MPH throttle has to be at a very low position (0.78% in the case of the 91-92 3.1 W-bodies) actual idle speed must be very close(and stabile) to desired idle speed to update(within 75RPM for 1.6 seconds in this instance) minimum coolant temp of 133*F (only for the cycle after a battery disconnect, for cycles afterwards, 188*F) maximum coolant temp of 226*F (above that disables the learning until it drops under it again) the initial value used for IAC minimum is 10 steps.... i've found most LH0s like around 20-25. the number of IAC steps must be beyond a certain threshold to update the IAC minimum value, otherwise it's ignored. for quick learn, you have to be idling for at least 35 seconds before it starts updating. maximum added steps are 8, maximum steps to take away are 16. that's how it works in a nutshell, albiet a very complex one. Beautiful Saar!, looks like assembly, in a way. Quote Link to comment Share on other sites More sharing options...
EviLette Posted November 25, 2012 Author Report Share Posted November 25, 2012 As mentioned on the phone Evil, yes there is a procedure. It affects the drivability of the car, and on my TGP, fuel milage, power, and for some reason, AC function. I love being one of the people that she has on speed dial LOL! ^^Truth. I love this, too. Quote Link to comment Share on other sites More sharing options...
RobertISaar Posted November 25, 2012 Report Share Posted November 25, 2012 Beautiful Saar!, looks like assembly, in a way. correct. 68HC11 assembly to be exact. Quote Link to comment Share on other sites More sharing options...
EviLette Posted November 26, 2012 Author Report Share Posted November 26, 2012 I was shocked that I was reading that coding and it made some sense to me. Quote Link to comment Share on other sites More sharing options...
94 olds vert Posted November 26, 2012 Report Share Posted November 26, 2012 I meant to vote Yes. Not sure why I didn't. Quote Link to comment Share on other sites More sharing options...
EviLette Posted November 27, 2012 Author Report Share Posted November 27, 2012 epic fail, LOL Quote Link to comment Share on other sites More sharing options...
Schurkey Posted November 27, 2012 Report Share Posted November 27, 2012 I was shocked that I was reading that coding and it made some sense to me. The Matrix is real. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.