Understanding FN901 LOM Spark and FN125

This is where the BIN Hackers and definition junkies discuss the inner workings of the EEC code and hardware. General tuning questions do not go here. Only technical/hardware-specific/code questions and discussions belong here.

Moderators: cgrey8, EDS50, Jon 94GT, 2Shaker

Post Reply
User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Wed Oct 26, 2016 4:56 pm

Well after pouring over the GUFB strategy book for a few hours last night, I'm putting out a request for help on FN901 and it's entry access table, FN125.

GUFx uses FN904A "LOMSEA" sealevel spark and FN905A "LOMALT" altitude spark normally for part throttle spark, and interpolates between the two based on baro. FN901's nickname is "SEASPK" and it's referred to as Base Sea Level Spark, LOM Spark, and Tip-in Spark at times.

Here's the first controversy. Sometimes Ford refers to FN901 as LOM, and yet it also refers to 904/905 as LOMSEA and LOMALT, but calls FN901 "seaspk". In other places, it seems to group FN901 as LOM spark. So why refer to 904/905 as LOMSEA and LOMALT?

FN125 is the LOM Load function used to activate "LOM spark strategy". LOM spark may be calibrated out by setting
FN125 = 0, according to Ford. Does this eliminate the use of FN901, or the use of 904/905? Since the FN901 spark strategy is only used at lower loads and RPM, it's apparent that FN125 is saying to use FN904A/905A if the load exceeds FN125. Which means an appropriate title for FN125 might be "Load required to skip using FN901 and stay using FN904/905A". Or it could be called "Load lower than this activates FN901".

FN901 has some pretty similar spark values in it, when comparing to FN904/905A, so that isn't of much help or interest.

So FN901 is used on tip-in at really light throttle positions and low RPM. OK. Now here's the calcuation: Tip-in Spark (LOM) is (1 - LUGTMR/LUGTIM) * FN901

LUGTMR is how long load > FN125. LUGTIM is engine load transition time, set to 4 seconds originally. So it would appear that LUGTMR is measuring how long you are applying enough load to skip using FN901 and instead use 904/905. Here's the 2nd controversy. Why are we timing anything for that? We should only be timing how long we are using FN901.

And now for the 3rd controversy. Based on the tip-in spark calculation above, the math says that once you enter FN901 (and lets pick out 28 degrees from the table), the spark is being reduced with time like this:

0 seconds = 28 degrees
1 seconds = 21 degrees
2 seconds = 14 degrees
3 seconds = 7 degrees
4 seconds = 0 degrees

So Ford is retarding timing, the longer you are in FN901? That seems backwards. And that would cause a transition problem, because at 4 seconds in, it would exit 901 and timing would jump straight from 0 to 28 degrees.

There's something just not right here. Starting with which tables Ford is calling LOM spark strategy. And the formula they use in FN901. And then there's this description:

On accelerating from a standstill, the strategy uses a more aggressive spark
table (FN901) for improved performance. Over a period of time (LUGTIM), the
spark shifts from LOM spark to normal part throttle spark. The LUGTMR logic
is described in the Timer Chapter.

And yet there is nothing more aggressive about FN901. Especially as it's being diminished with time. Thoughts?
If it's worth doing, it's probably not easy.

decipha

Re: Understanding FN901 LOM Spark and FN125

Post by decipha » Fri Oct 28, 2016 8:33 pm

set fn125 to 0

/done

User avatar
cgrey8
Administrator
Posts: 10565
Joined: Fri Jun 24, 2005 5:54 am
Location: Acworth, Ga (Metro Atlanta)
Contact:

Re: Understanding FN901 LOM Spark and FN125

Post by cgrey8 » Fri Oct 28, 2016 9:46 pm

decipha wrote:set fn125 to 0

/done
I suspect this isn't about solving a problem, done.

He's posting in the EECGeeks section. I assume his reason for posting is more about curiosity and understanding how the code works.
...Always Somethin'

89 Ranger Supercab, 331 w/GT40p heads, ported Explorer lower, Crane Powermax 2020 cam, 1.6RRs, FMS Explorer (GT40p) headers, Slot Style MAF, aftermarket T5 'Z-Spec', 8.8" rear w/3.27s, Powertrax Locker, Innovate LC-1, GUFB, Moates QuarterHorse tuned using BE&EA

Member V8-Ranger.com

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Tue Nov 01, 2016 3:01 am

That is correct, Chris. Also, setting FN125 to 0 has a similar effect on the fuel side of Lugging Mode.

The GUF document just does a crap job of explaining this one. My best guess is that the spark ramps from 0 to about 28 degrees (or whatevers in the FN901 table) over the 4 second period. But without testing it, I have no way to confirm this until my EEC bench is finished. I was hoping you guys had figured this out already.
If it's worth doing, it's probably not easy.

sailorbob
BIN Hacker
Posts: 1650
Joined: Tue Jul 12, 2005 6:10 am

Re: Understanding FN901 LOM Spark and FN125

Post by sailorbob » Tue Nov 01, 2016 11:45 am

I haven't looked at GUF* in a long time and, without going through this thread in any detail, here's my disassembly notes about FN901 usage from a very long time ago:

;
; determine lugging spark contribution
; i.e. spark = ((base spark - temp load spark) * lugging time fraction)) + temp load spark
; when lugtmr = LUGTIM then no adjustment is made, the closer the value of lugtmr is to LUGTIM then the smaller the effect
;

HTH

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Wed Nov 02, 2016 5:12 am

Is FN901 base spark, or temp load spark?
If it's worth doing, it's probably not easy.

sailorbob
BIN Hacker
Posts: 1650
Joined: Tue Jul 12, 2005 6:10 am

Re: Understanding FN901 LOM Spark and FN125

Post by sailorbob » Sat Nov 05, 2016 7:29 am

The temp load spark is from FN901.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Sun Nov 06, 2016 4:50 am

The way you describe it working makes the most sense, Derek.

[(FN904A/FN905A - FN901) * (1 - LUGTMR/LUGTIM)] + FN901

Basically, FN901 is used and slowly rolls towards FN904A/905A of a period of LUGTIM.

Whoever wrote the GUFB document was dazed and confused. They describe FN901 as being a more aggressive spark table for better acceleration. If you're right, and I think you are, it would be better described as a lower timing value to prevent knock on tip-in. Although I suppose it could be used to do whatever you want there. Ford barely changed any values in that table, so that's really confusing as to it's purpose at all.

Do you feel comfortable saying this formula is a fact?
If it's worth doing, it's probably not easy.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Sun Nov 06, 2016 5:01 am

Looking more closely at FN125, I believe it's only purpose of existance is to prevent the spark from being altered at idle. There's a 35% load threshold at 0 RPM that has to be met before allowing "lugging mode". At 750 RPM, that's about 20%. Just above idle at 1100 it drops to 13%, and at 1600 it drops to 2%. So this threshold is very easy to meet, as long as you aren't idling.

So really, any time you're giving it gas and not idling or decelerating, you're going to go into lugging mode for that 4 seconds, use FN901, and transition towards FN904/905A. At crusing speeds (low load/rpm), an A9L pulls anywhere from 1 to 8 degrees. But at higher loads (60% and up, 2500 RPM and up), this table actually increases timing by 1 or 2 degrees. With the sole exception of max load and 2,000 RPM, which pulls 3 degrees instead.

Delta (base is mostly lower than sea level)
0 0 0 0 1 1 -3 0 0 0
0 2 1 1 2 1 0 0 0 0
0 -1 0 0 0 0 -3 0 0 0
0 0 0 -4 -3 -2 0 2 0 0
0 0 -2 -8 -6 -4 2 2 0 0
0 0 0 -1 -1 -1 0 0 0 0
0 0 0 -1 -1 -1 -1 0 0 0

So it would appear the stock A9L use for this table is to retard spark on tip-in at lower loads, but at full throttle to add a little timing.

I'm not sure I understand the tuning logic here. Would the motor not be more burst knock sensitive during a full throttle stab than a tip-in?
If it's worth doing, it's probably not easy.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Mon Nov 07, 2016 4:24 am

Derek, I did the long math on this tonite, using A9L, 30% load, 1100 RPM as an example, where FN904A = 37 degrees and FN901 = 29 degrees.

If your "base spark" is FN904A and your "temp load spark" is FN901, then we have a problem. The Lug Time fraction basically goes from 1 to 0 over 4 seconds of time. Using your formula, timing starts out at 37, then heads towards 29, and then FN901 ends and timing would go back to 37 all at once. That must be backwards.

So if your "base spark" is FN901 and your "temp load spark" is FN904A, then it works out just the opposite. Timing starts out at 29, then heads towards 37, and after FN901 ends, it stays at 37. This is a typical example of some of the low load spark values, albeit an 8 degree difference is about the most.

At high engine loads, it works out about the opposite in most cells. So if I'm right about that being backwards, a sudden high load would add a degree or two of timing, then ramp it back down to normal over 4 seconds. However, this is a moot point, since WOT spark does not use FN901.

The other issue I can't work out is the FN125 table. The picture of how FN901 is used shows that it's only used at very low load and RPM points. And yet the math says that FN901 is used above that very low load threshold, not below it. Any chance I could get you to revisit this? My curiosity is killing me.
If it's worth doing, it's probably not easy.

User avatar
cgrey8
Administrator
Posts: 10565
Joined: Fri Jun 24, 2005 5:54 am
Location: Acworth, Ga (Metro Atlanta)
Contact:

Re: Understanding FN901 LOM Spark and FN125

Post by cgrey8 » Mon Nov 07, 2016 7:43 am

I vaguely recall somewhere in the GUFB doc where Ford envisioned having "tip-in" spark higher than sustained spark to give more power on takeoff but backed off under sustained load. That's exactly opposite of what we generally think of in terms of "tip-in". I may be remembering this wrong, but that does seem to spark true (pun intended).

Edit:
Go to the GUFB strategy doc. Refer to page 7-12 (PDF pg 171).
GUFB doc wrote:...On accelerating from a standstill, the strategy uses a more aggressive spark table, FN901, for improved performance...
However in your example, you have FN904 commanding more advance than FN901. So based on my understanding of how the code works, using your numbers it would start with a lower spark and gradually normalize to a higher value over LUGTIM.

Also look at pg 20-20 where the doc describes the use of FN125. LUGTMR counts up, not down and is clipped to LUGTIM.

When LOAD <= FN125 AND LUGSW=TRUE, LUGTMR is 0 which means only FN901 is used and FN904 is never used. When Load is above is when FN901 is used initially and advance transitions to FN904 over LUGTIM.

Although when LOAD is <= FN125 but LUGSW=FALSE, then LUGTMR is decremented. This means the spark transitions from FN904 to FN901 ASSUMING LUGTIM was equal to LUGTIM at the moment LOAD transitioned to being <=FN125.

So in your scenario, the initial values of LUGSW and LUGTMR need to be defined in order to determine what the expected behavior would be with your numbers.
...Always Somethin'

89 Ranger Supercab, 331 w/GT40p heads, ported Explorer lower, Crane Powermax 2020 cam, 1.6RRs, FMS Explorer (GT40p) headers, Slot Style MAF, aftermarket T5 'Z-Spec', 8.8" rear w/3.27s, Powertrax Locker, Innovate LC-1, GUFB, Moates QuarterHorse tuned using BE&EA

Member V8-Ranger.com

sailorbob
BIN Hacker
Posts: 1650
Joined: Tue Jul 12, 2005 6:10 am

Re: Understanding FN901 LOM Spark and FN125

Post by sailorbob » Mon Nov 07, 2016 3:05 pm

Taking the stock A9L value of LUGTIM of 4 seconds and the maximum and minimum values of LUGTMR when using your selection of 30% LOAD and 1100 rpm for FN904A and FN901 (I'm assuming there is no contribution from FN905A to the base spark value to simplify the example) you have the following:

When LUGTMR = 0
((37 - 29) * 0) + 29 = 29

When LUGTMR = 4
((37 - 29) * 1) + 29 = 37

This shows that at the start of lugging the spark advance is the FN901 value and then it is gradually changed back to the base spark value as LUGTMR approaches the value of LUGTIM.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Tue Nov 08, 2016 4:08 am

Right, using the stock A9L values, LUGTIM = 4 seconds. At 30% load and 1100 RPM, FN901 = 29 degrees and FN904 = 37 degrees.

When Load > FN125, LUGTMR starts counting upwards until it hits LUGTIM (4 seconds). However, load is so LOW in FN125, that you will basically hit that every time you touch the throttle. Here's FN125:

16384 0.020
1600 0.020
1500 0.130
1100 0.130
0 0.350

Even at 750 RPM, it only takes 20% load to exceed FN125's threshold. There's about 16 to 18% load on the engine at idle. And it only gets easier beyond 1100 RPM. So essentially, you will satisfy FN125 pretty much any time you touch the throttle. Right? When you let off the gas, the LUGTMR either resets to 0 or counts down towards 0, depending on the LUGSW setting. In a stock A9L, it just drops to 0 when you let off the gas, since LUGSW = 1 (enabled). So a decel and then tipping back in would start from scratch at FN901 again.

Now for the Lug Time Fraction, the formula SEEMS to be 1 - LUGTMR/LUGTIM. That based on the GUFB document saying 1 - LUGTMR/LUGTIM * FN901 (which appears to be wrong or incomplete anyway). Derek simply noted this as lug time fraction, but did not mention how that fraction was calculated. THIS may be the issue. If the Lug Time fraction is simply LUGTMR/LUGTIM, then the order is reversed, and Dereks formula would work the way we think.

If 1 - LUGTMR/LUGTIM is the fraction formula, then the fraction works like this:

0 seconds: 1 - 0/4 = 1
1 seconds: 1 - 1/4 = .75
2 seconds: 1 - 2/4 = .5
3 seconds: 1 - 3/4 = .25
4 seconds: 1 - 4/4 = 0

If the fraction formula is just LUGTMR/LUGTIM, then the fraction works like this:

0 seconds: 0/4 = 0
1 seconds: 1/4 = .25
2 seconds: 2/4 = .5
3 seconds: 3/4 = .75
4 seconds: 4/4 = 1

Thus reversing the order. Based on what I know about modern tip-in tuning, I would say that spark starts low and ramps upward. But perhaps they had a different idea back then. Their description is just odd. Also, even though high load is probably never achieved without hitting WOT mode, their high load (over 60%) values in FN901 are higher than in FN904. This might suggest, depending on which order we decide the Lug Time Fraction goes in, that maybe they are advancing the timing those first 4 seconds at low loads, or lowering the timing at high loads.

Since the GUFB document is just out to lunch on this particular parameter, I'm looking to Derek for his interpretation of the disassembly.

The graphic in the GUFB document indicates that FN901 should only apply when at light loads and low RPMs, and that anything very north of idle load/rpm would not use FN901 and instead use FN904. That graphic just seems out to lunch as well, and works the opposite of what we believe, since anything over idle basically CAUSES FN901 to be used for a while. The graphic makes you think any decent amount of pedal would PREVENT FN901 from being used. I think the GUF document is simply not usable here, and we need to closely study the disassembly.
If it's worth doing, it's probably not easy.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Tue Nov 08, 2016 4:16 am

The real questions here are what exactly is the formula for determining lug time fraction? What is Derek's "Base spark"? And what is Derek's Temp Load Spark?

Ironically, the name chosen for FN901 happens to be Base Spark or Base Sea Level Spark, but I'm sure Derek was referring to base spark as FN904 (normal spark), and temp load spark as FN901. And that has the values going from high to low, then jumping back to high after 4 seconds. That's unlikely, so either Derek's Base Spark and Temp Load Spark names are reversed, or the Lug Time Fraction formula doesn't have the "1 - " at the beginning.
If it's worth doing, it's probably not easy.

sailorbob
BIN Hacker
Posts: 1650
Joined: Tue Jul 12, 2005 6:10 am

Re: Understanding FN901 LOM Spark and FN125

Post by sailorbob » Tue Nov 08, 2016 4:44 am

Pontisteve wrote:What is Derek's "Base spark"?
The base spark is from the FN904A / FN905A interpolation.
Pontisteve wrote:And what is Derek's Temp Load Spark?
sailorbob wrote:The temp load spark is from FN901.
Pontisteve wrote:or the Lug Time Fraction formula doesn't have the "1 - " at the beginning.
Correct.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Tue Nov 08, 2016 5:21 am

Alright, the lug time fraction explains it then. So it works like this:

Lug timer fraction:
0 seconds = 0/4 = 0
1 seconds = 1/4 = .25
2 seconds = 2/4 = .5
3 seconds = 3/4 = .75
4 seconds = 4/4 = 1

The exact formula is ((FN904A - FN901) * (LUGTMR/LUGTIM)) + FN901.

Based on the example of an A9L at 30% load and 1100 RPM, spark would play out like this on loads greater than FN125 (pretty much any tip-in):

0 seconds: ((37 - 29) * .00) + 29 = 29
1 seconds: ((37 - 29) * .25) + 29 = 31
2 seconds: ((37 - 29) * .50) + 29 = 33
3 seconds: ((37 - 29) * .75) + 29 = 35
4 seconds: ((37 - 29) * 1.0) + 29 = 37

Above 4 seconds, FN901 is no longer used and FN904A remains at 37. Of course, this assuming RPM and load hasn't moved, which I'm sure it has along the way. If this is correct, then this tip-in logic is pretty similar to modern tunes. Although it should be noted that the 8 degree difference was the largest difference between these two tables. Most of the spark values have a smaller difference. And it leaves no explanation why they would be advancing the timing a degree or two at most of the high load situations. Not that you could get much higher than that.

Also, any time you let off the gas or load falls below FN125 (which probably could only happen on a decel or at idle), the LUGTMR resets to 0 instantly, so a tip-in would start the whole process all over from 0, unless you turned the LUGSW off.

Look correct Derek?

Only one more question. What on Earth was the graphic supposed to mean? Cause it seems whacked out.
If it's worth doing, it's probably not easy.

sailorbob
BIN Hacker
Posts: 1650
Joined: Tue Jul 12, 2005 6:10 am

Re: Understanding FN901 LOM Spark and FN125

Post by sailorbob » Tue Nov 08, 2016 7:28 am

That's pretty much it although you don't mention FN905A in your formula. As to the graphic it could just a poor illustration but that section of the strategy book actually refers to the GUE0 strategy rather than GUFB so there may be changes.

User avatar
Pontisteve
Regular
Posts: 76
Joined: Mon May 16, 2011 12:33 pm
Location: FL

Re: Understanding FN901 LOM Spark and FN125

Post by Pontisteve » Thu Nov 10, 2016 5:14 am

Right, I am assuming a interpolation of FN904A and FN905A depending on barometric pressure/altitude. However, there was something making me question if the interpolation was only with FN904A while FN901 was being used. But I couldn't spot any real evidence that 904A and 905A weren't always being interpolated between.

Thank you for walking thru that with me, guys. I don't know why the GUFB document showed the lugtime fraction as 1 - LUGTMR/LUGTIM, but I just assume it's as inaccurate there as it is throughout that entire FN901 section.

If anybody wants to test that, a simple way would be to put like 10 degrees in FN901 and 18 degrees in FN904A everywhere, and datalog a tip-in. Timing should jump up 2 degrees per second if we've all got this right.
If it's worth doing, it's probably not easy.

sailorbob
BIN Hacker
Posts: 1650
Joined: Tue Jul 12, 2005 6:10 am

Re: Understanding FN901 LOM Spark and FN125

Post by sailorbob » Thu Nov 10, 2016 5:36 am

FN904A and FN905A are always interpolated unless you use the hack to disable FN905A (or some other means of disabling FN905A).

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests