Our Community is 940,000 Strong. Join Us.


Tuning & ECU Basics


spyderturbo007
03-09-2007, 09:46 AM
I got a PM from Chas (NOFX0617) asking for some information about tuning. I ended up writing a long reply and thought I would post it here incase anyone wanted to take a look at it.


Alright, let me see what I can type up here for you before my fingers start to hurt. :p

The ECU basically has 3 operating modes, closed loop, open loop and limp mode. Limp mode is reserved for potentially damaging proplems the ECU may encounter. The main problem of which, is a nonfunctional MAS. Without feedback from the MAS the ECU has no idea the mass of air passing to the motor. At this point it enters limp mode and runs extremely rich to protect against what could be disaster. This allows you to get your car to the shop or home so it can be repaired immediately.

Closed loop is where you spend most of your time. It is a loop that involves the O2 sensor and the ECU. As the ECU receives a voltage from the O2 sensor it determines if the previous combustion cycle was rich or lean. It then uses the Short Term Fuel Trim (STFT) and Long Term Fuel Trim (LTFT) to adjust the fuel delivery for the next combustion cycle. The ECU is shooting for an AFR of 14.7:1 which is the stoichometric point where all of the fuel is exhausted during the combustion cycle. This allows for maximum use of the fuel injected and gives you the maximum mpg possible. An AFR of 14.7:1 corresponds to an O2 voltage of 0.50v.

If it determines that the previous combustion cycle was lean, i.e O2 voltage <0.50v and AFR >14.7:1, it increases the STFT which corresponds to an increase in IPW (Injector Pulse Width) in an attempt to bring the O2 voltage back to 0.50v. If the previous combustion cycle was rich, i.e O2 voltage >0.50v and AFR <14.7:1, it decreases the STFT which corresponds to a decrease in the the IPW.

STFT is the ECU's display of what is happening right now, whereas, LTFT is pretty much a running average. If the ECU sees a consistent rich or lean condition, it will transfer the STFT value to the LTFT and return the STFT to zero. When running a SAFC, you need to adjust the airflow so the STFT and LTFT add up to zero. For example, if the STFT is +5% and the LTFT is -5%, sooner or later they will cancel each other out and both the LTFT & STFT will be 0.

The other "mode" the ECU operates in is called open loop, this is normally considered WOT. In this "mode" the ECU uses things like barometric pressure, Intake Air Temperature (IAT), coolant temperature, etc. to calculate the mass of air entering the combustion chamber. Based on this air mass calculation, the ECU attempts to inject an appropriate amount of fuel to reach the desired AFR. On a 2g, the factory programmed maps are designed to hit an AFR of 9.5:1. This is rich compared to the closed loop stoichometric value of 14.7:1, but the increase in fuel delivery is used to prevent knock by using the extra fuel to cool the intake charge. When running at WOT, the ECU uses feedback from the knock sensor to monitor engine operation and protect the motor. Keep in mind, that the O2 sensor feedback is completly disregarded during open loop operation.

See, the ECU has what can basically described as 3-dimensional maps for fuel delivery and timing values based on the mass of air being delivered, rpm, etc. For example, at an air mass of 2.1 g/rev the timing is capped by the ECU at 16 degrees of advance. So, if everything is perfect, and within the predefined specs, you will see 16 degrees of timing when running over 2.1g/rev. This isn't always the case. Based on feedback from the other sensors listed above, the ECU will modify the timing value from their preset target. For example, if the IAT is >84 degrees, you will loose 1 degree of timing. So now, at 2.1g/rev, you will only see a maximum advance of 15 degrees.

Timing values are also heavily influenced by feedback from the knock sensor. The ECU uses a linear relationship to pull timing based on the knock count. So the more knock the ECU "hears", the lower your timing value will be. This is how we can use a log to determine knock on a 2g. The 1g guys have it easy, because knock values are output to the OBD port. On a 2g, the ECU does not transmit this value to the OBD-II port. This forces us to "estimate" knock based on the timing curve. For example, you make a WOT pull and you see a steady timing increase from 3k up till you hit 5k. At this point the timing begins to drop, from let's say 15 degrees, down to 13 degrees. Most likely this is caused by knock, but it could also be caused by your coolant temp going over 210 degrees and the IAT going above 84 degrees simultaneously, each of which will cost you 1 degree of advance. What you do in that case, is make another pull and log coolant temp and IAT. If you don't see these values exceeding the limit imposed by the ECU, then you know the problem is caused by knock. At this point, we need to determine what is causing the knock.

Normally with the SAFC, this involves adding fuel in the affected rpm range. But you have to be careful, because there is also rich knock. So, you make the appropriate adjustments on the SAFC and make another pull. If the knock goes away, great! If not, we need to keep making adjustments.

Using the SAFC is like ice skating uphill. As you use the SAFC to molest the mass of air the ECU "sees", the ECU increases timing. Remember, the lower the mass of air seen by the ECU, the higher the ECU will allow the timing to increase. This causes a problem, because we really aren't running a lower value of air, we are just telling the ECU that we are. So as you increase the size of your injectors, you need to remove more and more fuel. See, when you add larger injectors, the ECU doesn't know, and frankly, doesn't care. It treats them as stock and continues to use the programmed IPW. But since the injectors are larger than stock, the same IPW results in additional fuel that the ECU interprets as a rich condition. Seeing a rich condition, it decreases the STFT and LTFT until it runs out of adjustment range. I believe this occurs at -17%. When it hits it's adjustment limit, you get the good old P0170 CEL, Fuel Trim Malfunction (Bank 1).

This is where the SAFC comes in.....By lowering the airflow value before it reaches the ECU, we can manipulate the IPW. Now that the ECU sees less air, it drops the IPW and basically compensates for the larger injectors. This is also what causes problems at WOT. You want larger injectors to support additional flow generated by a turbo upgrade, right? So now we have a turbo that flows significantly more that stock and larger injectors to support the additional flow. So what do we do??? Add a SAFC and manipulate the airflow to the ECU. This works, but causes a big problem. The ECU is now seeing significantly less air than is actually being "ingested" and allows for additional timing over the 2.1g/rev cap of 16 degrees. High timing + high airflow = knock.

This is the problem with running the SAFC, over something like DSMLink. It is "doable" but is definately not the best way to approach the situation. I am running 650cc injectors and a SAFC and have a pretty good tune, so it can be done.

My fingers hurt now, so I'm going to stop typing ....If you want some additional information, let me know, but that should give you something to chew on for now.

Thor06
03-09-2007, 11:40 AM
Holy fuck.... do I smell another spyderturbo007 writeup? I dont have near the concentration to read that right now, Brian or Shpyder you two will have to tackle this one :p.

Blackcrow64
03-09-2007, 12:00 PM
Holy fuck.... do I smell another spyderturbo007 writeup? I dont have near the concentration to read that right now, Brian or Shpyder you two will have to tackle this one :p.
I already scrolled through and was like shit, I'm too tired to read it. lol... Maybe I'll read it now... Some of it... lol

**EDIT**
Ok I read it all and I feel so stupid right now. lol He knows so much technical numbers and such it ain't even funny. But it all makes sense and I feel like I did learn something. So, bravo to this little writeup. lol

Would you like us to move it to the 'Tech Articles' section, Nate?

scottsee
03-09-2007, 12:43 PM
Well written Mr. Spyder.

Black99GST
03-09-2007, 01:11 PM
:1: Great info spyder!

spyderturbo007
03-09-2007, 03:49 PM
Would you like us to move it to the 'Tech Articles' section, Nate?

Sure, that's fine with me. :smokin:

Blackcrow64
03-09-2007, 03:55 PM
Moved and added to Tech Article Index... :)

NOFX0617
03-10-2007, 01:41 AM
I got a PM from Chas (NOFX0617) asking for some information about tuning. I ended up writing a long reply and thought I would post it here incase anyone wanted to take a look at it.

Thanks again spyderturbo007 I was very suprised when I opened that pm and got all this. I was going to suggest putting it in the write up...lol...Helped out a ton man.

One quick question though.

When you refer to 2.1 g/rev. What does the g/rev stand for?

scottsee
03-11-2007, 03:25 PM
grams per revolution

spyderturbo007
03-12-2007, 07:28 AM
scottsee is absolutely correct. Just to expand on that, it's grams of air per revolution of the engine. The ECU code uses mass of air in g/rev as opposed to lbs/min. It's an easy conversion and I have no idea why the ECU doesn't output g/rev to the OBD-II port.

I asked the guys at Digital Tuning if they could write some code into the pocketlogger software that would convert, but they ignored me. :(

spyderturbo007
03-12-2007, 08:22 AM
Ok, I'm going to add to my initial post because I'm bored at work today. No samples to run on the XRF. Let's talk a little more about the SAFC's manipulation of airflow since the question of g/rev was brought up.

The Karmen sensor inside the MAS sends a frequency to the ECU based on the mass of air flowing into the system. The sensor contains a vortex generator that creates small swirling within the intake stream. When properly detected, the frequency of the vortices are proportional to the mass of air passing through the sensor. As the vortices are created, they are directed to a sensor within the MAS and begin to vibrate a piece of reflective, metallic foil. As the metallic foil vibrates, it causes light to be reflected to, or away from a photoelectric sensor. This creates a square voltage wave within the sensor that is transmitted to the ECU. The faster the airflow through the intake, the faster the foil vibrates, the higher the frequency value passed to the ECU.

Wow, that was fun, wasn't it.....This is what I get for paying attention durning physics class. :p Alright, so what do we do with this frequency once it gets to the ECU?? Well, why don't we screw around with it and see what happens. Remember that SAFC stands for Super Airflow Convertor and only alters fuel delivery indirectly. So, as you drop the airflow signal with the SAFC, the frequency is manipulated to a percentage lower than what we started with. An opposite effect is produced when you add airflow with the SAFC. As I decribed in my initial post, this leads to a increase or decrease in the fuel delivered by the ECU. We use this ablility to manipulate the airflow signal to compensate for larger injectors or lean out the AFR from the factory 9.5:1.

So now that the SAFC has minipulated the airflow frequency and the ECU has used that information, it gets output to the OBD-II port. One thing everyone forgets, is that the airflow shown on your logger, isn't the actual airflow value. You are getting this airflow value after it has been molested by the SAFC. So, if you want to find the actual airflow, we need to convert using the highest airflow value output to the logger, the rpm at which that airflow value occurs and the corresponding SAFC Hi Throttle correction factor.

Here is the calculation:

Airflow (Value from logger) / ( 1 - SAFC Correction Factor in decimal form corresponding to peak airflow rpm) = Actual airflow

So, for example, let's say your logger shows 26lbs/min of airflow at 6200rpm. You check your Hi Throttle table and see that you have a -21% correction factor at 6200rpm. So, the calculation becomes:

26 lbs/min / (1 - 0.21) = 32.91 lbs/min

What do we do with that number you might ask? I use it whenever I am increasing boost and also to determine what boost I should be running. Why boost more when you aren't getting a higher flow. Higher boost increases the temperature of the intake charge and leads to an increased chance of knock. So why push 20 psi when you can create the same flow at 17psi.

You can also use this to evaluate the effectiveness of an upgrade. Back when I installed my UICP, I made a baseline log after the installation at 17psi and was flowing 30.26 lbs/min. Prior to the upgrade, boosting 17psi I would see a peak airflow of 28.50 lbs/min. I cranked up the boost to 19psi and saw an increase to 32.15 lbs/min. Before installing the UICP, I was seeing a minimal airflow increase when upping the boost, so it would have been self defeating to increase the boost and not get a proportional increase in flow.

So, let's say that we want to determine if we have been placed on the ECU's highest timing map. If so, we can definitively see if we are knocking, which is always a hard thing to determine on a 2g.

We need to convert the airflow value from lbs/min to g/rev, but which airflow value do we use. We need to use the airflow displayed on the logger, not the value after the calculation.

To convert to g/rev you need to use this equation:

(A * 453.59) / R = Airflow in g/rev

Where:

A = maximum airflow displayed on the logger
R = rpm value of A

Cheers :popcorn: I'm going for a smoke break. :)

kjewer1
03-14-2007, 01:45 AM
Only thing that stands out to me scanning the thread quickly is the relationship between knock "counts" and degrees retard. The 0-3 and 3-7 thing doesn't apply. It's strictly linear/proportional. There is a set number of degrees of timing pulled per "count." The system you mention was long thought to be the case, and since Todd Day (of TMO) put it out, no one argued. But now that there are many people manipulating the codes and burning their own chips (there is a whole yahoogroup for DSM ecu chip burners) they are finding that this really isn't the case on 1Gs either... Just a little history for you youngins :D Nice thread, should answer a lot of questions for poeple!

NOFX0617
03-14-2007, 07:20 PM
Yup...awesome stuff Nathan...if you have the inspiration to continue on this stuff that would be awesome...I feel like I have learned so much already...

spyderturbo007
03-19-2007, 08:02 AM
It's strictly linear/proportional. There is a set number of degrees of timing pulled per "count." The system you mention was long thought to be the case, and since Todd Day (of TMO) put it out, no one argued.

Do you have any idea what that relationship is? For example, 4 counts = 1degree and 8 counts = 2 degrees. I said what I did, because of what Jeff with DSMChips had posted a couple times on DSMTuners.

Thanks for the correction Kevin, I'll change that in my post.

kjewer1
03-20-2007, 12:00 AM
It's roughly 3 counts per 1 degree (2.8x IIRC). The Octane tables also have some effect on timing retard, but in normal use they don't really have a significant impact (we don't knock for loong periods of time, DSMlink resets octant on every start as do most chips, etc). The max the 1g ECU will retard is 43 counts, or 15 degrees. 2g max retard is 12 degrees, but I'm not sure what the max count is. I believe it is also close to a 3:1 ratio, but all one would need to do is take a log of raw knock counts and knorck retard and do the math. The important thing is that there is a direct relationship between the two, and the octane tables can affect it as well by a couple degrees but rarely will.

Add your comment to this topic!