PDA

View Full Version : $0D/$0E Efan control



Six_Shooter
04-30-2011, 08:52 AM
Well, I was just testing some electric fan control on my test bench, and it seems to work exactly as the author says it does.

Just a couple things I want to be able to fine tune, like the actual turn on and off temps, but hopefully will be able to sort that out soon.

Anyway, this is originally from: http://www.fullsizechevy.com/forum/general-discussion/performance/tbi-tuning-87-95-obd-i-ecm-pcm/482900-dual-speed-e-fan-code-0d.html
Change in code need for $0D:



What this code does

Engine temperature
Below 190F, fan off
Above 199F, fan turns on
above 210F, fan forced on regardless of other conditions

If the vehicle speed is above 25 MPH, the fan turns off unless the 45 seconds has not elapsed, or the temperature is very high (above 210F) in which case the fan will run at any vehicle speed.

The fan is turned on when the A/C Clutch is engaged. Unless the vehicle speed is above 25 MPH.

The code includes a 45 second absolute minimum fan run time. This was the big change from my last code. I added this condition so that if the A/C Compressor is cycling every 10 seconds, its not beating the fan, relay and electrical system up. It was also needed because of the 25 MPH fan rule, where if you were driving along at 24-26 MPH, the fan would cycle with subtle changes in speed. This solved that issue.

You can add the calibrations at locations L7000-L7004 to your preferred editor to allow you to change the values you would like to use for temperature, speed, or even the minimum fan run time using your editor program.



Ram Variables:
L02A7 = MPH
L00A2 = Coolant Temp
L004D,BIT 0 = A/C STATUS (1 = A/C Requested on)
L0052,BIT 3 = Fan Output Control
L0150 = Minimum Fan Run Timer

To enable this routine, be sure to change the Value at address 7C6F from D399 to 7020
Connect the fan relay to E3, Connect the other end of the relay coil to Power. The computer GROUNDS E3 to run the fan.

Coolant temp example:
199 deg F
199 + 40 = 239
239/1.35 = 177.04 (round to 177)
177 is B1 in hexidecimal.

Calibrations:
L7000 19 db High MPH Fan Cutoff (25 MPH)
L7001 B9 db Coolant Temperature Very High Value Enable (210 deg F)
L7002 B1 db Coolant Temperature High Value Enable (199 deg F)
L7003 AA db Coolant Temperature Low Value Disable (190 deg F)
L7004 2D db Minimum Fan Run "MFR" Time (45 Seconds)

Algorithms:
L7020 CE 70 00 L7020 LDX #L7000 Start of fan Calibrations
L7023 12 52 08 1F BRSET L0052,#$08,L7046 If Fan is On, Skip to "Load MFR Timer Variable"
L7027 96 A2 LDAA L00A2 Load Coolant Temperature
L7029 A1 01 CMPA 1,X Compare to Coolant Temperature Very High Value
L702B 22 11 BHI L703E Go to "Turn On Fan" if Higher
L702D 12 4D 01 06 BRSET L004D,#$01,L7037 If A/C is On, Go To "Load MPH"
L7031 96 A2 LDAA L00A2 Load Coolant Temperature
L7033 A1 02 CMPA 2,X Compare to Coolant Temperature High Value Enable
L7035 23 37 BLS L706E Go To "End" if Lower
L7037 B6 02 A7 L7037 LDAA L02A7 Load MPH
L703A A1 00 CMPA 0,X Compare to High MPH Fan Cutoff
L703C 22 30 BHI L706E Go to "End" if Higher
L703E 14 52 08 L703E BSET L0052,#$08 Turn on Fan
L7041 A6 04 LDAA 4,X Load MFR Timer
L7043 B7 01 50 STAA L0150 Save MFR Timer to L0150
L7046 B6 01 50 L7046 LDAA L0150 Load MFR Timer Variable
L7049 26 16 BNE L7061 If timer is Not Zero go to "Load MFR Timer Variable"
L704B 12 4D 01 06 BRSET L004D,#$01,L7055 If A/C is On, Go To "Load MPH"
L704F 96 A2 LDAA L00A2 Load Coolant Temperature
L7051 A1 03 CMPA 3,X Compare to Coolant Temperature Low Value Disable
L7053 23 09 BLS L705E Go To "Turn off fan" if Lower
L7055 B6 02 A7 L7055 LDAA L02A7 Load MPH
L7058 A1 00 CMPA 0,X Compare to High MPH Fan Cutoff
L705A 22 02 BHI L705E Go To "Turn off Fan" if Higher
L705C 20 10 BRA L706E End
L705E 15 52 08 L705E BCLR L0052,#$08 Turn off Fan
L7061 B6 01 50 L7061 LDAA L0150 Load MFR Timer Variable
L7064 D6 02 LDAB L0002 Load Loop Counter
L7066 C4 F0 ANDB #$F0 Mask First 4 Bits
L7068 26 04 BNE L706E Skip To end if no Decrement of Timer Needed
L706A 4A DECA Decrease MFR Timer by 1
L706B B7 01 50 STAA L0150 Save MFR Timer to L0150
L706E 4F L706E CLRA Clear A Register
L706F 5F CLRB Clear B Register
L7070 39 RTS Return



Here is the code as you would paste it into a hex editor. Just be sure that it OVERWRITES this section when you paste it, or else it will shift the whole program around, and your vehicle will NOT RUN.



7000: 19 b9 b1 aa 2d 00 00 00 00 00 00 00 00 00 00 00
7010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
7020: ce 70 00 12 52 08 1f 96 a2 a1 01 22 11 12 4d 01
7030: 06 96 a2 a1 02 23 37 b6 02 a7 a1 00 22 30 14 52
7040: 08 a6 04 b7 01 50 b6 01 50 26 16 12 4d 01 06 96
7050: a2 a1 03 23 09 b6 02 a7 a1 00 22 02 20 10 15 52
7060: 08 b6 01 50 d6 02 c4 f0 26 04 4a b7 01 50 4f 5f
7070: 39



Change in code needed for $0E (I haven't tested this yet)



So here it is, The same code, adapted to work for $0E:

Ram Variables:
L0283 = MPH
L00A8 = Coolant Temp
L004D,BIT 0 = A/C STATUS (1 = A/C Requested on)
L0052,BIT 3 = Fan Output Control
L0151 = Minimum Fan Run Timer

To enable this routine, be sure to change the Value at address 7C07 from D567 to 7120
Connect the fan relay to E3, Connect the other end of the relay coil to Power. The computer GROUNDS E3 to run the fan.

Coolant temp example:
199 deg F
199 + 40 = 239
239/1.35 = 177.04 (round to 177)
177 is B1 in hexidecimal.

Calibrations:
L7100 19 db High MPH Fan Cutoff (25 MPH)
L7101 B9 db Coolant Temperature Very High Value Enable (210 deg F)
L7102 B1 db Coolant Temperature High Value Enable (199 deg F)
L7103 AA db Coolant Temperature Low Value Disable (190 deg F)
L7104 2D db Minimum Fan Run "MFR" Time (45 Seconds)

Algorithms:
L7120 CE 71 00 L7120 LDX #L7100 Start of fan Calibrations
L7123 12 52 08 1F BRSET L0052,#$08,L7146 If Fan is On, Skip to "Load MFR Timer Variable"
L7127 96 A8 LDAA L00A8 Load Coolant Temperature
L7129 A1 01 CMPA 1,X Compare to Coolant Temperature Very High Value
L712B 22 11 BHI L713E Go to "Turn On Fan" if Higher
L712D 12 4D 01 06 BRSET L004D,#$01,L7137 If A/C is On, Go To "Load MPH"
L7131 96 A8 LDAA L00A8 Load Coolant Temperature
L7133 A1 02 CMPA 2,X Compare to Coolant Temperature High Value Enable
L7135 23 37 BLS L716E Go To "End" if Lower
L7137 B6 02 83 L7137 LDAA L0283 Load MPH
L713A A1 00 CMPA 0,X Compare to High MPH Fan Cutoff
L713C 22 30 BHI L716E Go to "End" if Higher
L713E 14 52 08 L713E BSET L0052,#$08 Turn on Fan
L7141 A6 04 LDAA 4,X Load MFR Timer
L7143 B7 01 51 STAA L0151 Save MFR Timer to L0151
L7146 B6 01 51 L7146 LDAA L0151 Load MFR Timer Variable
L7149 26 16 BNE L7161 If timer is Not Zero go to "Load MFR Timer Variable"
L714B 12 4D 01 06 BRSET L004D,#$01,L7155 If A/C is On, Go To "Load MPH"
L714F 96 A8 LDAA L00A8 Load Coolant Temperature
L7151 A1 03 CMPA 3,X Compare to Coolant Temperature Low Value Disable
L7153 23 09 BLS L715E Go To "Turn off fan" if Lower
L7155 B6 02 83 L7155 LDAA L0283 Load MPH
L7158 A1 00 CMPA 0,X Compare to High MPH Fan Cutoff
L715A 22 02 BHI L715E Go To "Turn off Fan" if Higher
L715C 20 10 BRA L716E End
L715E 15 52 08 L715E BCLR L0052,#$08 Turn off Fan
L7161 B6 01 51 L7161 LDAA L0151 Load MFR Timer Variable
L7164 D6 02 LDAB L0002 Load Loop Counter
L7166 C4 F0 ANDB #$F0 Mask First 4 Bits
L7168 26 04 BNE L716E Skip To end if no Decrement of Timer Needed
L716A 4A DECA Decrease MFR Timer by 1
L716B B7 01 51 STAA L0151 Save MFR Timer to L0151
L716E 4F L716E CLRA Clear A Register
L716F 5F CLRB Clear B Register
L7170 39 RTS Return


7100: 19 b9 b1 aa 2d 00 00 00 00 00 00 00 00 00 00 00
7110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
7120: ce 71 00 12 52 08 1f 96 a8 a1 01 22 11 12 4d 01
7130: 06 96 a8 a1 02 23 37 b6 02 83 a1 00 22 30 14 52
7140: 08 a6 04 b7 01 51 b6 01 51 26 16 12 4d 01 06 96
7150: a8 a1 03 23 09 b6 02 83 a1 00 22 02 20 10 15 52
7160: 08 b6 01 51 d6 02 c4 f0 26 04 4a b7 01 51 4f 5f
7170: 39

Lucky
04-30-2011, 05:44 PM
Wow. Amazing that a bunch of 2-digit characters can accomplish all that :thumbsup:

RobertISaar
05-01-2011, 04:44 AM
would you like to see some of the stuff i wrote for my nAst1 additons? : :laugh:

i'm amazed the fan control doesn't work that way from the factory...

+1 to the author.

EagleMark
05-01-2011, 05:13 AM
would you like to see some of the stuff i wrote for my nAst1 additons? : :laugh:

i'm amazed the fan control doesn't work that way from the factory...

+1 to the author.
Actually I would because I have no idea what a nasty is? :laugh:

May be a good learning opertunity, start a thread...

RobertISaar
05-01-2011, 05:24 AM
nAst1 = modified A1 mask(hence the awesome spelling).

here's a preview!

86 50 BD F0 D0 97 6D D6 57 96 64 81 A0 24 0B CE 9E DC 80 20 24 01 4F 48 20 28 CE 9D B8 80 A0 81 50 24 02 20 1D 96 62 81 D0 24 05 80 50 48 20 12 CE 9C 94 96 B3 80 68 24 01 4F 81 40 25 02 86 40 48 48 BD F7 6E 97 8A 7E B9 18 FF 01 8F 3C 32 33 CE 00 32 02 C1 19 25 06 3C 32 33 5C 20 03 3C 32 33 D7 B3 7E A5 5B D6 57 96 64 81 A0 24 0B CE 9B 70 80 20 24 01 4F 48 20 28 CE 9A 4C 80 A0 81 50 24 02 20 1D 96 62 81 D0 24 05 80 50 48 20 12 CE 99 28 96 B3 80 68 24 01 4F 81 64 25 02 86 40 48 48 BD F7 6E 16 B6 01 9E CE 92 63 1F 00 01 02 96 C7 CE 99 19 BD F7 51 3D 05 24 02 86 FF 7E A8 13

EagleMark
05-01-2011, 05:58 PM
That is awesome!!! :jfj:

I am so glad there are programs like TunerPro!

Lucky
05-02-2011, 12:48 AM
:yikes:

Innovative ! Can you even PUT a 'BD' after two '48's :?:

:rolleye:

RobertISaar
05-02-2011, 01:34 AM
well, $48 is ASLA, which more or less doubles the value in Acuumulator A, and $BD is JSR, so yes, you could quadruple a value and then jump to a subroutine. :happy:

Lucky
05-02-2011, 05:17 AM
Apparently my sarcasm font is broken ... :roll:

EagleMark
05-02-2011, 07:49 AM
Apparently my sarcasm font is broken ... :roll:
I hate when that happens... :mad1:

:rofl:

FSJ Guy
12-09-2011, 08:24 AM
Sooo.... Do I need to know the WHY behind these coolant temp calculations if I want to change them?

"Coolant temp example:
199 deg F
199 + 40 = 239
239/1.35 = 177.04 (round to 177)
177 is B1 in hexidecimal"

I understand the hex conversion, but I'm not sure why 40 is added and the sum is then divided by 1.35 to get the final value that is put into the bin file.

gregs78cam
12-20-2011, 06:53 AM
I know that the 40 is added, because the minimum coolant temp displayed is -40*, 1.35 is the conversion factor for the digital counts to degrees F.

Now another thing I did in my ADX was to make another bitmask item directly below the "Variable Tuning Control", with the same packet offset, source data size, and operation. Label it Cooling Fan, then you can have a flag on your dashboard to tell you when the cooling fan turns on.

FSJ Guy
12-20-2011, 08:33 AM
Thanks! I'll give it a try.

EagleMark
12-20-2011, 09:56 AM
I know that the 40 is added, because the minimum coolant temp displayed is -40*, 1.35 is the conversion factor for the digital counts to degrees F.

Now another thing I did in my ADX was to make another bitmask item directly below the "Variable Tuning Control", with the same packet offset, source data size, and operation. Label it Cooling Fan, then you can have a flag on your dashboard to tell you when the cooling fan turns on.Your to cool!

Next time your in town if you have time I need some help with a few of those things... maybe I'll start a thread with screen shots...

gregs78cam
12-20-2011, 10:50 AM
I spent a half hour trying to post a screenshot with that, resizing, pasting, adding as attachment. Nothing worked and had resolution. I gave up.

EagleMark
12-20-2011, 05:33 PM
I'll teach you how to do screen shots if you teach me how to do cool EFI stuff! :thumbsup:

EagleMark
01-02-2012, 04:01 AM
Link to optional fan control:
http://www.gearhead-efi.com/Fuel-Injection/showthread.php?468-Another-option-for-0D-efan-control

bonnieclyde100
09-29-2014, 04:51 AM
i have pcm 16168625 with an $od bjyl bin changed to work with a 700r4 . im trying to do the e fan control. i put all the lines of code in and its not working .even when i turn ac on it still doesnt work any ideas?
Well, I was just testing some electric fan control on my test bench, and it seems to work exactly as the author says it does.

Just a couple things I want to be able to fine tune, like the actual turn on and off temps, but hopefully will be able to sort that out soon.

Anyway, this is originally from: http://www.fullsizechevy.com/forum/general-discussion/performance/tbi-tuning-87-95-obd-i-ecm-pcm/482900-dual-speed-e-fan-code-0d.html
Change in code need for $0D:



Change in code needed for $0E (I haven't tested this yet)

JeepsAndGuns
09-29-2014, 02:24 PM
I'm running this code and it works great.
I would double check the code you put in, double check the addreses and parameters, then double check the wiring, make sure you have it hooked to the correct pin on the pcm.

bonnieclyde100
09-29-2014, 04:40 PM
I'm running this code and it works great.
I would double check the code you put in, double check the addreses and parameters, then double check the wiring, make sure you have it hooked to the correct pin on the pcm.


is there any more lines of code that need to be changed other than the 7000-7070 that is at the beginning of this thread? i was looking at some other ones and they had more lines to change.

Six_Shooter
09-29-2014, 07:58 PM
It's been a long time since I played with this, but I think there's also another hex value that needs to be changed elsewhere to enable the code to actually function.

bonnieclyde100
09-29-2014, 10:44 PM
It's been a long time since I played with this, but I think there's also another hex value that needs to be changed elsewhere to enable the code to actually function.

i was looking at another thread http://www.gearhead-efi.com/Fuel-Injection/showthread.php?468-Another-option-for-0D-efan-control&highlight=fierobsessed
it had 7c60:BD70
7c70:19

do you think these are it and be the same for this one? also in my hex editor there were alot more hex values in the same lines do i leave them as is or change them to 00 ?

bonnieclyde100
09-29-2014, 11:43 PM
i found at the top of this thread to change line 7c6F: from D399 to 7020 so i will try that first.

bonnieclyde100
09-30-2014, 04:30 AM
well except for coming on with AC it work with temp controls. not sure why its not working with AC. anyway on tunerpro to see when ac is on?

uhlhazard
10-07-2014, 07:14 PM
I've read a bunch of different efan mods for the $0d. They all seem to be different forks of the same code.

The challenge I've had is I have a fairly poorly documented/supported 4.3 cpi engine. I spent about 10 hours on this project so far. I completely abandoned it then stumbled on another thread where they show separate code for efan control a and efan control B. Control B uses the "air solenoid pin e7" iirc. That seems to work with ac commanded on. I've only got a probe on the pin with my emulator but everything seems to be legit.

If I install any of the code for efan control A nothing works.

I'm trying to steal an unused pin from my harness and move it over to efan controls B pin and test everything with the engine up to temp. Will advise in this thread my progress. I believe the code for the air solenoid doesn't seem to care that I have a 4.3 cpi and it should definitely work on any tbi setup.

uhlhazard
10-07-2014, 11:16 PM
HA! Got the E7 pin working!

So my troubleshooting was part of the issue. My pin E3 goes to a RELAY first, not the imtv. Well I still tested for changes on the imtv pigtail with nothing happening. Turned out my relay was bad. The 4.3 cpi 92-94 (95 possibly too) has 2 relays on the firewall on the drivers side. They are identical. The fuel pump portion is easily identifiable as it has large gauge wires compared to the imtv harness. I suppose someone smoked the fuel pump relay and just flipped the relays. When I installed my supercharger they remove the imtv and replace it with a huge rubber plug so I've never used it.

I didn't realize the bad relay until I swapped e3 to e7 then began tracing it when nothing was working. I got a good gnd signal at the ecu when desired so I knew it was a wiring issue. Checked with my service manual and that is when I realized it hit a relay first. I cut the wire from the relay and routed it to my efan solenoids now everythings working great!

The code works absolutely awesome. Now that the auxiliary efan control works I'm going to try and figure out if I can make the primary efan control work again as I do have 2 single speed fans.

57 Handyman
01-16-2018, 01:47 AM
uhlhazard and/or bonnieclyde100,

Although this is an old thread, I wanted to resurrect it since I am running the same 700r4 trans and a dual efan setup (Intrepid) with my 8625 PCM for my 4.3L TBI S-10.

If either or both of you are still around, would it be possible for me to get copies of your .bin, .adx, and .xdf so I don't have to reinvent the wheel. I would appreciate it greatly.

Thanks,

uhlhazard
01-16-2018, 02:05 AM
uhlhazard and/or bonnieclyde100,

Although this is an old thread, I wanted to resurrect it since I am running the same 700r4 trans and a dual efan setup (Intrepid) with my 8625 PCM for my 4.3L TBI S-10.

If either or both of you are still around, would it be possible for me to get copies of your .bin, .adx, and .xdf so I don't have to reinvent the wheel. I would appreciate it greatly.

Thanks,

Let me look around to see if I still have it. I have an l31 v8 now so all obd2.

bonnieclyde100
01-16-2018, 03:41 AM
uhlhazard and/or bonnieclyde100,

Although this is an old thread, I wanted to resurrect it since I am running the same 700r4 trans and a dual efan setup (Intrepid) with my 8625 PCM for my 4.3L TBI S-10.

If either or both of you are still around, would it be possible for me to get copies of your .bin, .adx, and .xdf so I don't have to reinvent the wheel. I would appreciate it greatly.

Thanks,
here is what I'm currently running but of coarse my engine tune wont run your engine cause mine is an 8 cylinder and 4 injectors where yours is a 6 with probably 2 injectors.

57 Handyman
01-16-2018, 10:34 AM
uhlhazard and bonnieclyde100,

Happy New Year to you guys!!! Wow, thank you for responding and agreeing to assist me; anything that you provide will be useful! Being a newbie to turning, I can use all the help I can get. Using what you've developed will put me that much more ahead of the process.

stew86MCSS396
01-16-2018, 10:36 AM
I want to make doubly sure that all we need to do is change the values at the corresponding addresses in a hex editor.

57 Handyman
01-16-2018, 11:05 AM
Stew,

Not being a computer guy, that precaution is flying over my head. So, I will leave that in your able hands. Thanks...

mihela
06-21-2019, 04:52 AM
I have been playing around with the Efan control in my truck and decided to take a crack at adding the $0E fan hack right into the XDF file. This XDF also has the fan parameters added as scalars if you want to make changes to the turn on temps or what not.

57 Handyman
06-22-2019, 12:08 AM
Mihela, thanks for modifying the XDF...will download and give this a try. As stated before, I need all the help I can get from guys like you.