Idle RPM limiter 730/AUJP
#1
Supreme Member
Thread Starter
Join Date: Nov 2003
Location: STL area
Posts: 1,399
Likes: 0
Received 0 Likes
on
0 Posts
Idle RPM limiter 730/AUJP
WHere is the location of the idle speed limiter? HOw does it work exactly. Did a search but did not find any clear answers.
thanks,
Tim
thanks,
Tim
#4
Supreme Member
Join Date: Aug 1999
Location: sweden
Posts: 2,441
Likes: 0
Received 1 Like
on
1 Post
Car: GTA -89
Engine: Blown 415"
Transmission: 4L80E
Axle/Gears: Strange 12-bolt
[QUOTE]Originally posted by TRAXION
[B]Regarding the 800rpm limit in AUJP ...
#$0040 is hexadecimal for 64 decimal. Since we are talking about RPM/12.5 ... 64 is actually 800. You need to modify BOTH 426C and 4270.
/N.
[B]Regarding the 800rpm limit in AUJP ...
Code:
426B: C1 40 L426B CMPB #$0040 426D: 23 02 BLS L4271 426F: C6 40 LDAB #$0040 4271: 12 FD 80 03 L4271 BRSET L00FD,#$80,L4278
/N.
#5
Supreme Member
iTrader: (1)
Join Date: Jan 2002
Location: garage
Posts: 4,432
Likes: 0
Received 1 Like
on
1 Post
Engine: 3xx ci tubo
Transmission: 4L60E & 4L80E
I don't think you have to modify both. You only need to modify the second 0x40. From the AUJP code:
brclr *L00FE,#0x80,LC26B ; if NOT in park/neutral then go to LC26B
addb L862E ; add in the park/neutral RPM value
bra LC271 ; go to LC271
LC26B: cmpb #0x40 ; not in prk/ntrl, ck if RPM < 800
bls LC271 ; if RPM greater than or equal 800
ldab #0x40 ; then limit RPM to 800 rpm
LC271: brset *L00FD,#0x80,LC278
You only need to change address LC270 from 0x40 to your desired value. (e.g., 0x50 = 1000rpm)
brclr *L00FE,#0x80,LC26B ; if NOT in park/neutral then go to LC26B
addb L862E ; add in the park/neutral RPM value
bra LC271 ; go to LC271
LC26B: cmpb #0x40 ; not in prk/ntrl, ck if RPM < 800
bls LC271 ; if RPM greater than or equal 800
ldab #0x40 ; then limit RPM to 800 rpm
LC271: brset *L00FD,#0x80,LC278
You only need to change address LC270 from 0x40 to your desired value. (e.g., 0x50 = 1000rpm)
#6
Supreme Member
Thread Starter
Join Date: Nov 2003
Location: STL area
Posts: 1,399
Likes: 0
Received 0 Likes
on
0 Posts
Thanks guys. So the idle speed limiter is just that, it will not set the idle speed, just "cap" it. Was thinking about why GM put this in the code.....
I think is just like a carb's fast idle. The carb will have a raised idle when cold, tap the gas once and the high speed idle is reduced(so when you put the trans in gear it doesn't "clunk"). Same thing for the ECM, basically..
I think is just like a carb's fast idle. The carb will have a raised idle when cold, tap the gas once and the high speed idle is reduced(so when you put the trans in gear it doesn't "clunk"). Same thing for the ECM, basically..
#7
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Actully if you only change LC26B the limiter would be completly eliminated. The limiting value at LC270 would never be loaded.
Changing the second value only would load the "Higher" limiter of what ever you set IF the value exceeded 800.
Changing both would be the best way. That way the branch to the limit only happens IF you exceed the limit set.
The issue I'm thinking of is what happens after this value is set?
Can the lookups deal with a value higher than 800 in the tables?
I looked a little but got distracted with work.
(I'll look some more later)
Changing the second value only would load the "Higher" limiter of what ever you set IF the value exceeded 800.
Changing both would be the best way. That way the branch to the limit only happens IF you exceed the limit set.
The issue I'm thinking of is what happens after this value is set?
Can the lookups deal with a value higher than 800 in the tables?
I looked a little but got distracted with work.
(I'll look some more later)
Trending Topics
#8
Supreme Member
iTrader: (1)
Join Date: Jan 2002
Location: garage
Posts: 4,432
Likes: 0
Received 1 Like
on
1 Post
Engine: 3xx ci tubo
Transmission: 4L60E & 4L80E
On second thought. You are correct.....change both values.
The code checks against the RPM limit, and uses the desired clamp RPM value as the new RPM. Yes, change both values............
As an example, Suppose only the LC270 value is changed to 1000rpm. suppose the engine rpm is 1200 rpm is park, the driver switch to drive and the rpm drops to 900rpm.....which exceeds 800 RPM.........and then 1000 rpm is used as the new RPM.......but the real engine rpm is 900rpm.
Overall, change both values.
The table can go above 800 rpm. I believe this code was added so that you wouldn't get run away idle speeds.....safety first I guess.
J
The code checks against the RPM limit, and uses the desired clamp RPM value as the new RPM. Yes, change both values............
As an example, Suppose only the LC270 value is changed to 1000rpm. suppose the engine rpm is 1200 rpm is park, the driver switch to drive and the rpm drops to 900rpm.....which exceeds 800 RPM.........and then 1000 rpm is used as the new RPM.......but the real engine rpm is 900rpm.
Overall, change both values.
The table can go above 800 rpm. I believe this code was added so that you wouldn't get run away idle speeds.....safety first I guess.
J
Last edited by junkcltr; 01-21-2005 at 04:00 PM.
#10
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
looks ok
Yes, The $50 would equal 1000 rpm max value and would load the second $50 if your idle exceeds 1000.
I still have not looked into the subsequent table lookups to see if there is any effect except going to the limit value (if they are setup to max at 800)
I Still need to do that check.
Edited to fix the values (I forgot it was half)
$50 would be 1000 RPM.
I still have not looked into the subsequent table lookups to see if there is any effect except going to the limit value (if they are setup to max at 800)
I Still need to do that check.
Edited to fix the values (I forgot it was half)
$50 would be 1000 RPM.
Last edited by JP86SS; 01-21-2005 at 08:25 PM.
#11
Supreme Member
Thread Starter
Join Date: Nov 2003
Location: STL area
Posts: 1,399
Likes: 0
Received 0 Likes
on
0 Posts
Tested it and it worked perfect. For some reason my car has a problem idling at 800rpms right now(at this point I'm suspecting the plugs). At any rate, I wanted to raise the idle anyways. Thanks for the help!
#12
Supreme Member
Join Date: Jun 2000
Location: In reality
Posts: 7,554
Likes: 0
Received 1 Like
on
1 Post
Car: An Ol Buick
Engine: Vsick
Transmission: Janis Tranny Yank Converter
Originally posted by junkcltr
I believe this code was added so that you wouldn't get run away idle speeds.....safety first I guess.
I believe this code was added so that you wouldn't get run away idle speeds.....safety first I guess.
#13
TGO Supporter
Join Date: Jul 1999
Location: The Bone Yard
Posts: 10,907
Likes: 0
Received 3 Likes
on
3 Posts
Car: Death Mobile
Engine: 666 c.i.
I believe it was put there by GM to limit "creeping" when in gear with an automatic. In places with a cold climate during winter (like how it can get in most of Canada), without the 800 rpm limit when in Drive, the engine typically idles well over 1,000 rpm when started for the first few minutes before the engine gets fully warmed. It can take over 5 minutes in typcial Canadian winters for the engine to warm up sufficiently so the stock idle tables would give a 800 rpm (or less) reading.
#14
Supreme Member
Join Date: Jun 2002
Location: great lakes
Posts: 1,787
Likes: 0
Received 0 Likes
on
0 Posts
when you look at the stock stall speed of the factory converters being 1800 rpm the limit may have been imposed to keep from overheating the transmission fluid.
#15
Supreme Member
Join Date: Jun 2000
Location: In reality
Posts: 7,554
Likes: 0
Received 1 Like
on
1 Post
Car: An Ol Buick
Engine: Vsick
Transmission: Janis Tranny Yank Converter
Originally posted by JP86SS
Actully if you only change LC26B the limiter would be completly eliminated. The limiting value at LC270 would never be loaded.
Changing the second value only would load the "Higher" limiter of what ever you set IF the value exceeded 800.
Changing both would be the best way. That way the branch to the limit only happens IF you exceed the limit set.
The issue I'm thinking of is what happens after this value is set?
Can the lookups deal with a value higher than 800 in the tables?
I looked a little but got distracted with work.
(I'll look some more later)
Actully if you only change LC26B the limiter would be completly eliminated. The limiting value at LC270 would never be loaded.
Changing the second value only would load the "Higher" limiter of what ever you set IF the value exceeded 800.
Changing both would be the best way. That way the branch to the limit only happens IF you exceed the limit set.
The issue I'm thinking of is what happens after this value is set?
Can the lookups deal with a value higher than 800 in the tables?
I looked a little but got distracted with work.
(I'll look some more later)
Just as an idea, how about figuring out how to remove the routine?. While it's neat just editing it to be OK, why not remove it, and then eventually, after repeatedly making changes that remove the unused code, maybe generate something, *new*.
#16
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Originally posted by Grumpy
Just as an idea, how about figuring out how to remove the routine?. While it's neat just editing it to be OK, why not remove it, and then eventually, after repeatedly making changes that remove the unused code, maybe generate something, *new*.
Just as an idea, how about figuring out how to remove the routine?. While it's neat just editing it to be OK, why not remove it, and then eventually, after repeatedly making changes that remove the unused code, maybe generate something, *new*.
baby steps... baby steps...
Its all in the theory of evolution. (trying to keep the theory part at bay)
#17
Supreme Member
Thread Starter
Join Date: Nov 2003
Location: STL area
Posts: 1,399
Likes: 0
Received 0 Likes
on
0 Posts
Originally posted by Grumpy
Just as an idea, how about figuring out how to remove the routine?. While it's neat just editing it to be OK, why not remove it, and then eventually, after repeatedly making changes that remove the unused code, maybe generate something, *new*.
Just as an idea, how about figuring out how to remove the routine?. While it's neat just editing it to be OK, why not remove it, and then eventually, after repeatedly making changes that remove the unused code, maybe generate something, *new*.
#19
Supreme Member
Thread Starter
Join Date: Nov 2003
Location: STL area
Posts: 1,399
Likes: 0
Received 0 Likes
on
0 Posts
I'm going to assume two thing and correct me if I'm wrong. 1)no manual bins have/use this code. 2) the AUJP will ignore this routine when the manual bit is selected...
#21
Senior Member
Join Date: Jun 2000
Location: Tuscaloosa, AL
Posts: 998
Likes: 0
Received 0 Likes
on
0 Posts
Car: 91Z, 91RS, '84 Jimmy
Engine: L98, 355, L98
Transmission: 700R, T56, 700R4
You could also just change the first line you want gone to BRA to wherever you want it to pick back up (although NOPs would be cleaner.) Doing it's the easy part....figuring out what you can get rid of without compromising other parts of the code is the problem.
A quick glance at the IAC routine in the ANHT hack showed no such limiter.
A quick glance at the IAC routine in the ANHT hack showed no such limiter.
#22
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
I confirmed that it does not exist in the ANHT.
I think it pasted kid of ugly but the details are there of where the code is different between the two.
Code switch works, Thanks.
Code:
LC250: pshx ; CRef: $C24B pshx pshx pshx tsy bclr L00FE,#$20 ; CLR b5, PID CMD STEP ACTIVE (IAC Md Wd #2) ldaa L005D ; FILTERED COOLANT TEMP ldx #$8632 ; IAC CMD SPEED vs COOL TABLE jsr LE3D8 ; 2D LOOK UP, NO OFF SET (Is LE3D0 in ANHT) tab ; Moves the contents of A to B (A stays same) brclr L00FE,#$80,LC26B ; BR IF NOT b7, PK/NEUT, 1 = NEUT ; (IAC Md Wd #2) ; ... else addb L862E ; 100 RPM ADDED IF IN PK/NEUT bra LC271 ; BRANCH ALWAYS ; Code in ANHT changes from here (below is ANHT code) ; ----------------------------------------------------------------------------- ;LC269: BRSET L00FD,#$80,LC270 ; BR IF AC STATUS OFF ; ADDB $8630 ; 12.5 RPM ADDED IF A/C ON ;LC270: BRCLR L003A,#8,LC27E ; HOT RE-START RETARD OFF ;------------------------------------------------------------------------------- ; ; AUJP Code LC26B: cmpb #$40 ; VAL = 64, 800 RPM ; CRef: $C262 bls LC271 ; BR IF Less Than 64, (800 RPM) ; ... else ldab #$40 ; VAL = 64, 800 RPM LC271: brset L00FD,#$80,LC278 ; BR IF AC STATUS OFF (IAC MODE WD) ; CRef: $C269,$C26D ; ...else addb L8630 ; 12.5 RPM ADDED IF A/C ON LC278: brclr L003A,#$08,LC286 ; HOT RE-START RETARD OFF ; CRef: $C271 ;-------------------------------------------------------------------------------- ; Code in ANHT resumes normal here and matches AUJP ldaa L0063 ; INV A/D MAT ldx #$8673 ; HOT RESTART CMD SPEED vs MAT TBL jsr LE3D8 ; 2D LOOK UP, NO OFF SET (Is LE3D0 in ANHT) aba ; ADD B to A tab ; Moves the contents of A to B (A stays same) LC286: addb L01B5 ; DIFF DESIRED RPM FOR LOW BATTERY ; CRef: $C278 ;-------------------------------------------------------------------------------------
Code switch works, Thanks.
Last edited by JP86SS; 01-23-2005 at 10:53 PM.
#23
Senior Member
Join Date: Jun 2000
Location: Tuscaloosa, AL
Posts: 998
Likes: 0
Received 0 Likes
on
0 Posts
Car: 91Z, 91RS, '84 Jimmy
Engine: L98, 355, L98
Transmission: 700R, T56, 700R4
Try the {code}.....{/code} switch next time. Just use [ instead of {.
Code:
LC26B CMPB #$0040 BLS LC271 LDAB #$0040
#25
Member
iTrader: (6)
Join Date: Jun 2003
Location: Oak Harbor, WA
Posts: 488
Likes: 0
Received 2 Likes
on
2 Posts
Car: 1990 IROC-Z
Engine: 383 HSR
Transmission: 700R4
Axle/Gears: 3.70
Originally posted by 11sORbust
Thanks guys. So the idle speed limiter is just that, it will not set the idle speed, just "cap" it. Was thinking about why GM put this in the code.....
I think is just like a carb's fast idle. The carb will have a raised idle when cold, tap the gas once and the high speed idle is reduced(so when you put the trans in gear it doesn't "clunk"). Same thing for the ECM, basically..
Thanks guys. So the idle speed limiter is just that, it will not set the idle speed, just "cap" it. Was thinking about why GM put this in the code.....
I think is just like a carb's fast idle. The carb will have a raised idle when cold, tap the gas once and the high speed idle is reduced(so when you put the trans in gear it doesn't "clunk"). Same thing for the ECM, basically..
#26
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Code:
;---------------------------------------------------------------- ; IAC CMD SPEED vs COOL ; ; TBL = RPM/12.5 ;---------------------------------------------------------------- ; VAL RPM DEG C ;------------------------------------ L8632: .byte 0x54 ;= 84, 1050 -40 .byte 0x54 ;= 84, 1050 -28 .byte 0x54 ;= 84, 1050 -16 .byte 0x54 ;= 84, 1050 - 4 .byte 0x4C ;= 76, 950 8 .byte 0x4C ;= 76, 950 20 .byte 0x48 ;= 72, 900 32 .byte 0x40 ;= 64, 800 44 .byte 0x38 ;= 56, 700 56 .byte 0x34 ;= 52, 650 68 .byte 0x32 ;= 50, 625 80 .byte 0x2F ;= 47, 588 92 .byte 0x2F ;= 47, 588 104 .byte 0x30 ;= 48, 600 116 .byte 0x30 ;= 48, 600 128 .byte 0x30 ;= 48, 600 140 .byte 0x30 ;= 48, 600 152 ;----------------------------------------------------------------
It will adjust idle for "In Gear" only.
There are a few adders that go in when not in gear that make it jump up 100 or so RPM and more if A/C is on.
This will get "capped" by the hardcoded 800 RPM limit if not changed but since you are trying to go lower it don't come into play.
Jp
#27
Supreme Member
iTrader: (1)
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes
on
3 Posts
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Add to XDF
I just tried this and it works to change the bin.
Add the following to your XDF and then you won't have to search the Hardcode Hex to change it.
Add address 426C, Call it Idle Limiter Part 1 (AUJP ONLY)
Add address 4270, Call it Idle Limiter Part 2 (AUJP ONLY)
Use Calculation ((X/256)*6400)/2
You MUST adjust both values the same.
Be sure to note it that way.
Much easier than searching the Hex.
Add the following to your XDF and then you won't have to search the Hardcode Hex to change it.
Add address 426C, Call it Idle Limiter Part 1 (AUJP ONLY)
Add address 4270, Call it Idle Limiter Part 2 (AUJP ONLY)
Use Calculation ((X/256)*6400)/2
You MUST adjust both values the same.
Be sure to note it that way.
Much easier than searching the Hex.
Thread
Thread Starter
Forum
Replies
Last Post
theshackle
Tech / General Engine
4
09-17-2020 08:26 AM