Jump to content

Simple Question, Simple Poll: Idle Relearn 92 GP 3.1 (OBDI) Y/N?


EviLette

Is There an Idle Relearn on a 3.1 OBD1 Equipped GP?  

9 members have voted

  1. 1. Is There an Idle Relearn on a 3.1 OBD1 Equipped GP?

    • yes
    • no
    • i don't know
    • what's idle relearn?
      0


Recommended Posts

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 by EviLette
Link to comment
Share on other sites

My bad... :P

 

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.

Link to comment
Share on other sites

My bad... :P

 

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::cussing::cussing:

Link to comment
Share on other sites

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. :)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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! :o

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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! :o

 

^^Truth. I love this, too. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...