Secondary Air Injection
-
- Posts: 303
- Joined: 2021 Feb 15, 22:12
- Location: Sacramento CA
- Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1
Secondary Air Injection
Is anyone aware of any functions that exist for Smog Pumps? I recently hooked up my air injection system as am due for inspection. It made a noticeable difference in off idle behavior. I'm curious about breaking out any functions that may exist. Is there anything documented?
-
- Posts: 321
- Joined: 2021 Feb 16, 15:53
- Location: Victoria, BC, Canada
- Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2
Re: Secondary Air Injection
Documented:
Can enable/disable with THRMHP
The only function(fox) I see is:
different bin I have.
I would have to guess that the air pump is putting a little extra load on the engine, could by why you feel off idle behavior.
Here's my strategy:
Comments might be off, haven't looked at this for a while.
Nothing for the smog pump itself, it's always pumping, I believe.THERMACTOR AIR STRATEGY
Thermactor air refers to air added to the exhaust gas mixture from the
belt-driven thermactor air pump.
The computer controls two solenoids to create three mutually exclusive air
states:
Thermactor Air State AM1 Solenoid AM2 Solenoid
Upstream on on
Downstream on off
Bypass off off
Can enable/disable with THRMHP
The only function(fox) I see is:
Code: Select all
FNTP_AIR_OFF (N_RPM) := TP_REL at which to dump air below.
b656: ff,ff,00,00 func 65535, 0
b65a: 00,00,00,00 func 0, 0
b65e: 00,00,00,00 func 0, 0
b662: 00,00,00,00 func 0, 0
b666: 00,00,00,00 func 0, 0
b66a: 00,00,00,00 func 0, 0
b66e: 00,00,00,00 func 0, 0
b672: 00,00,00,00 func 0, 0
b676: 00,00,00,00 func 0, 0
I would have to guess that the air pump is putting a little extra load on the engine, could by why you feel off idle behavior.
Here's my strategy:
Code: Select all
THERMACTOR_AIR_STRATEGY:
6de0: b3,f6,4a,38 ldb R38,[Rf6+4a] R38 = CTBYS; # Minimum coolant temperature to bypass thermactor air, deg F.
6de4: 98,38,b6 cmpb Rb6,R38
6de7: da,05 jle 6dee if (ECT > R38) {
6de9: 91,20,a4 orb Ra4,20 TAQ1 = 1;
6dec: 20,0c sjmp 6dfa goto 6dfa; }
6dee: 7b,f6,4b,38 sb2b R38,[Rf6+4b] R38 -= CTBYSH; # CTBYS - CTBYSH = Hysteresis term for CTBYS, deg F.
6df2: 98,38,b6 cmpb Rb6,R38
6df5: d6,03 jge 6dfa if (ECT < R38) {
6df7: 71,df,a4 an2b Ra4,df TAQ1 = 0; }
6dfa: ef,e9,da call 48e6 UUWFuncLU_48e6 (
6dfd: 14,42 #arg 1 FNTP_AIR_OFF,
6dff: b4,00 #arg 2 N_RPM );
6e01: 88,00,38 cmpw R38,R0
6e04: df,10 je 6e16 if (R38 != 0) {
6e06: 47,f5,90,00,38,36 ad3w R36,R38,[Rf4+90] R36 = R38 + TP_AIR_OFF_H;
6e0c: d3,03 jnc 6e11 if (R36 > ffff) {
6e0e: bd,ff,36 ldsbw R36,ff swR36 = ff; }
6e11: 88,bc,36 cmpw R36,Rbc
6e14: d9,05 jgtu 6e1b if (R36 > TP_REL) goto 6e1b; }
6e16: 71,fb,d6 an2b Rd6,fb TP_AIR_OFF_F = 0; # (allow air)
6e19: 20,08 sjmp 6e23 goto 6e23; }
6e1b: 88,bc,38 cmpw R38,Rbc
6e1e: d1,03 jleu 6e23 if (R38 > TP_REL) {
6e20: 91,04,d6 orb Rd6,4 TP_AIR_OFF_F = 1; } # (dump air)
6e23: 71,fb,25 an2b R25,fb CHKAIR = 0; # (force O.L.)
6e26: 8b,ea,ae,00 cmpw R0,[Rea+ae]
6e2a: d7,6c jne 6e98 if (DFSO_A_TMR = 0) {
6e2c: 3f,a5,69 jb B7,Ra5,6e98 if (b7_CRKFLG_a5 = 0) {
6e2f: 51,af,a6,32 an3b R32,Ra6,af R32 = (B0_ETV_ERROR_a6|
B1__a6|
B2_TFMFLG_a6|
B3_MFMFLG_a6|
B5_CFMFLG_a6|
B7_AFMFLG_a6);
6e33: d7,63 jne 6e98 if (R32 = 0) {
6e35: b3,e4,ce,30 ldb R30,[Re4+ce] R30 = [14e];
6e39: 9b,f6,47,30 cmpb R30,[Rf6+47]
6e3d: db,59 jc 6e98 if (R30 < [b95b]) {
6e3f: 31,27,06 jnb B1,R27,6e48 if (B1_DFSFLG_R27 = 1) {
6e42: 9b,f6,4c,00 cmpb R0,[Rf6+4c]
6e46: d7,50 jne 6e98 if ([b960] != 0) goto 6e98; }
6e48: 45,44,00,f6,30 ad3w R30,Rf6,44 R30 = b958;
6e4d: ef,ce,db call 4a1e Sub_4a1e ();
6e50: d3,46 jnc 6e98 if (R42 >= [R30+2]) {
6e52: 3d,a4,43 jb B5,Ra4,6e98 if (TAQ1 = 0) {
6e55: b3,ee,84,42 ldb R42,[Ree+84] R42 = KAM_BIT_FLAGS;
6e59: 3d,42,3c jb B5,R42,6e98 if (B5_R42 = 0) {
6e5c: b3,e4,d2,30 ldb R30,[Re4+d2] R30 = WOTTMR;
6e60: 9b,f6,41,30 cmpb R30,[Rf6+41]
6e64: d3,03 jnc 6e69 if (R30 >= BYPWOT) {
6e66: 3a,a5,2f jb B2,Ra5,6e98 if (B2_APT_a5 = 1) goto 6e98; }
6e69: 36,25,06 jnb B6,R25,6e72 if (B6_MPGFLG_25 = 1) {
6e6c: 9b,f6,52,00 cmpb R0,[Rf6+52]
6e70: d7,26 jne 6e98 if (SW_MPD != 0) goto 6e98; }
6e72: 3a,d6,23 jb B2,Rd6,6e98 if (TP_AIR_OFF_F = 0) {
6e75: 9b,f4,5f,00 cmpb R0,[Rf4+5f]
6e79: df,03 je 6e7e if (T75LSW != 0) {
6e7b: 32,9f,1a jnb B2,R9f,6e98 if (B2_OLFLG = 0) goto 6e98; }
6e7e: b3,e4,cf,30 ldb R30,[Re4+cf] R30 = LMBTMR;
6e82: 9b,f6,48,30 cmpb R30,[Rf6+48]
6e86: db,0a jc 6e92 if (R30 < [b95c]) {
6e88: b3,e4,ca,30 ldb R30,[Re4+ca] R30 = [14a];
6e8c: 9b,f6,40,30 cmpb R30,[Rf6+40]
6e90: d7,10 jne 6ea2 if (R30 != [b954]) goto 6ea2; }
6e92: 9b,f6,49,00 cmpb R0,[Rf6+49]
6e96: df,03 je 6e9b if ([b95d] = 0) goto 6e9b; } } } } } } } } } } } }
6e98: 91,04,25 orb R25,4 CHKAIR = 1; } # (not forced O.L.)
6e9b: 71,bf,47 an2b R47,bf AM2 = 0;
6e9e: 71,fe,46 an2b R46,fe AM1 = 0;
6ea1: f0 ret return; } # (bypass air)
6ea2: 45,58,00,f6,30 ad3w R30,Rf6,58 R30 = b96c;
6ea7: 3a,8f,05 jb B2,R8f,6eaf if (B2_R8f = 0) {
6eaa: 45,55,00,f6,30 ad3w R30,Rf6,55 R30 = b969; }
6eaf: ef,6c,db call 4a1e Sub_4a1e ();
6eb2: d3,2b jnc 6edf if (R42 >= [R30+2]) {
6eb4: b3,e4,c9,30 ldb R30,[Re4+c9] R30 = [149];
6eb8: 9b,f6,5b,30 cmpb R30,[Rf6+5b]
6ebc: db,03 jc 6ec1 if (R30 < [b96f]) {
6ebe: 3a,a5,1e jb B2,Ra5,6edf if (B2_APT_a5 = 1) goto 6edf; }
6ec1: 37,24,0a jnb B7,R24,6ece if (B7_HUMTMR_FLG_24 = 1) {
6ec4: b3,e4,cc,30 ldb R30,[Re4+cc] R30 = HMUTMR;
6ec8: 9b,f6,54,30 cmpb R30,[Rf6+54]
6ecc: d3,11 jnc 6edf if (R30 < [b968]) goto 6edf; }
6ece: 9b,f6,53,00 cmpb R0,[Rf6+53]
6ed2: df,03 je 6ed7 if ([b967] != 0) {
6ed4: 3a,9f,08 jb B2,R9f,6edf if (B2_OLFLG = 1) goto 6edf; }
6ed7: 91,04,25 orb R25,4 CHKAIR = 1; # (not forced O.L.)
6eda: 71,bf,47 an2b R47,bf AM2 = 0; # (downstream air)
6edd: 20,03 sjmp 6ee2 goto 6ee2; } } } }
6edf: 91,40,47 orb R47,40 AM2 = 1; # (upstream air)
6ee2: 91,01,46 orb R46,1 AM1 = 1;
6ee5: f0 ret return;
-
- Posts: 151
- Joined: 2021 Mar 22, 15:58
- Location: Newington CT
- Vehicle Information: 1986 Mustang GT, Stock block, TFS 170 Heads , N41 cam, ported cobra intake, nitrous, T5 , 3.73s
Re: Secondary Air Injection
The pump adds extra air so the catalyst can reburn any fuel residue left after combustion. I'm sure it's more technical than that but that's a simplified explanation.
You could have vacuum leaks at the actuators. Leaks at air pump valves or the hoses.
You could have vacuum leaks at the actuators. Leaks at air pump valves or the hoses.
-
- Posts: 303
- Joined: 2021 Feb 15, 22:12
- Location: Sacramento CA
- Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1
Re: Secondary Air Injection
This is great information, thanks!
I found the sub in my bin just trying to discern if the target lambda is modified to account for the extra air when injected upstream. Looking at the code you posted do you know what Sub_4a1e is?
I found the sub in my bin just trying to discern if the target lambda is modified to account for the extra air when injected upstream. Looking at the code you posted do you know what Sub_4a1e is?
-
- Posts: 321
- Joined: 2021 Feb 16, 15:53
- Location: Victoria, BC, Canada
- Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2
Re: Secondary Air Injection
Sub_4a1e checks for engine coolant temperature at startup, hot start minimum and cold start maximum.
I would have to assume no, the target lambda is not modified when extra air is injected upstream.
I would have to assume no, the target lambda is not modified when extra air is injected upstream.
Upstream refers to air added at or near the exhaust ports. This is done to
provide better oxidation of the exhaust gas mixture when a richer exhaust gas
mixture is anticipated. It is not possible to operate in closed loop fuel
control while air is introduced upstream (the EGO sensor may always indicate
a lean condition).