Welcome to the North American Subaru Impreza Owners Club Wednesday August 20, 2014
Home Forums WikiNASIOC Products Store Modifications Upgrade Garage
NASIOC
Here you can view your subscribed threads, work with private messages and edit your profile and preferences Home Registration is free! Visit the NASIOC Store NASIOC Rules Search Find other members Frequently Asked Questions Calendar Archive NASIOC Upgrade Garage Logout
Go Back   NASIOC > NASIOC Technical > Engine Management & Tuning

Welcome to NASIOC - The world's largest online community for Subaru enthusiasts!
Welcome to the NASIOC.com Subaru forum.

You are currently viewing our forum as a guest, which gives you limited access to view most discussions and access our other features. By joining our community, free of charge, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is free, fast and simple, so please join our community today!

If you have any problems with the registration process or your account login, please contact us.
* Registered users of the site do not see these ads.
Reply
 
Thread Tools Display Modes
Old 01-09-2006, 06:06 AM   #1
STI8U
Scooby Specialist
 
Member#: 54052
Join Date: Feb 2004
Location: Auckland, NZ
Vehicle:
2005 Spec C Type RA
WRC Blue

Default Knock Correction Map

In the stock ECU, I understand that the timing used at a specific RPM and load site is based upon three parameters:

Base ignition map setting for the load site
Knock correction map setting for the load site multiplied by the Ignition Advance Multiplier (IAM)

I understand that the base ignition map is hardcoded (i.e. does not get altered by the ECU based upon any knock experienced).

My question is: is the knock correction map dynamically altered by the ECU, or is it hardcoded like the base ignition map from the factory. Or does it have a specific learning period after an ECU reset, after which it then settles to a static map? I'm guessing that the knock correction map is dynamic, as it gives the ECU the ability to counter knock @ specific load sites (by reducing the ignition advance at the problem load site) rather than across the entire RPM/load site range by permanently reducing the IAM.

Now assuming the knock correction map is dynamic - is there anyway you can tune this to be static using Ecutek or Cobb StreetTUNER? I just want to see if you can essentially fix your timing like you can with a piggyback - e.g. set all knock correction map values to 0 (i.e. disable knock correction function) and only use base ignition map settings.
* Registered users of the site do not see these ads.
STI8U is offline   Reply With Quote
Old 01-09-2006, 10:53 AM   #2
Kha0S
Scooby Guru
 
Member#: 8808
Join Date: Jul 2001
Chapter/Region: NESIC
Location: Grantham, NH
Vehicle:
2011 WRX (DGM 5D)
2002 WRX/2003 SVTF

Default

Quote:
Originally Posted by STI8U
In the stock ECU, I understand that the timing used at a specific RPM and load site is based upon three parameters:

Base ignition map setting for the load site
Knock correction map setting for the load site multiplied by the Ignition Advance Multiplier (IAM)
Not quite. There's three main components of the ignition timing that the ECU uses:

Base ignition map
Ignition correction map and IAM
Knock correction

Base ignition is the most retarded timing available, and correction * IAM/16 is added to that value. Knock correction is an additional 8x8 (on the MY02, anyway) map that is added to or subtracted from the base + correction value.

ECUtek has a good explanation:

http://www.ecutek.com/tuning/ignition/

Quote:
I understand that the base ignition map is hardcoded (i.e. does not get altered by the ECU based upon any knock experienced).
correct.

Quote:
My question is: is the knock correction map dynamically altered by the ECU, or is it hardcoded like the base ignition map from the factory. Or does it have a specific learning period after an ECU reset, after which it then settles to a static map? I'm guessing that the knock correction map is dynamic, as it gives the ECU the ability to counter knock @ specific load sites (by reducing the ignition advance at the problem load site) rather than across the entire RPM/load site range by permanently reducing the IAM.
You are correct... the KC map is initially all zeros, and after the IAM learning, the ECU will begin to fill in the KC map dynamically at load sites, attempting to advance where possible and retarding where knock is detected. Again, the above link explains it quite well.

Quote:
Now assuming the knock correction map is dynamic - is there anyway you can tune this to be static using Ecutek or Cobb StreetTUNER? I just want to see if you can essentially fix your timing like you can with a piggyback - e.g. set all knock correction map values to 0 (i.e. disable knock correction function) and only use base ignition map settings.
There's no real need to manipulate the KC table, and you really want it to remain dynamic, so the ECU can exercise control over the active ignition timing. What's your reason to "fix" your timing at a single value?

The base map + correction map strategy works very well as a fallback in the case of bad fuel or a lean load site sneaking into your fuel map. The KC map also permits the car to work forward and get as close to MBT as possible. If you work within the car's logic, you'll find that the results are good, reliable power with fallbacks to "safe" values under sub-optimal conditions.

If you really wanted to do it, there's likely a parameter elsewhere in the ECU that permits tuning of how "aggressive" the KC dynamics are. That'd allow you to rely solely on the base map + correction map values, and KC would remain at 0 across the board.

To the best of my knowledge, StreetTuner wouldn't have that, but the ECUtek software might.

/Andrew
Kha0S is offline   Reply With Quote
Old 01-09-2006, 05:46 PM   #3
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

Not exactly-

You should think of the KC map as the amount of authority the ECU has to advance timing under different RPM/load conditions. When you reset the ECU, the IAM is set to 8 on a WRX or .5 on an STi/FXT, etc. Either way, your knock correction will start with 1/2 of the maximum allowable timing you programmed in the KC table. You can alter the starting point of the IAM, however, I am speaking about stock parameters here.

Now, if the car is 'happy' enough, the IAM will advance and allow for a greater percentage of the values in the KC table to be used. If the ECU encounters knock (or engine noise it perceives as knock), it will pull out 2 degrees of timing from that site. After some time, it will try to return that timing. If there is enough knock or the car becomes 'unhappy' it will decrease the IAM and remove timing globally again.

I find it helpful to modify the knock correction tables- as you modify the car, you may find areas of high likelyhood of det will move around (some people keep higher values in the KC map at peak torque). There are different thoughts on how to use the KC and main ignition tables. I personally feel like it would be best to never have the car pull timing. This means that I may not be getting the full potential of the car, but it also never leaves the car to go into a cycle of advancing timing, detonating, pulling timing, advancing timing, detonating, pulling timing, etc.... Now, it appears that the stock maps were intended to let the car do that to some degree, so maybe SOA feels like it is reasonable to let the car do this. However, at higher power levels, it may be less acceptible.

In the EcuTek post, the KC map is referred to as the 'coarse' correction. The fine correction is a map that starts out as all zeros. This map takes a lot longer to make corrections, but when it does, it affects timing across a larger rpm/load. If you check out the resolution, it's a lot smaller, so it affects a larger number of operating points.

i've seen people try to zero out the knock correction maps and I honestly don't recommend it. It seems like the car doesn't like to operate this way. What I would recommend is making sure that your overall timing between the two maps is such that it never pulls timing. If you can get your car to run consistently, you know that you still have the added safety of having timiing pulled in case of a real problem. By leaving no authority for the ECU to control things, you are really removing a nice feature of the ECU. Again, so long as there isn't a problem, the ECU should have no reason to ever remove timing.

Just my opinion.

Thanks,
Mike
crazymikie is offline   Reply With Quote
Old 01-09-2006, 05:49 PM   #4
Kha0S
Scooby Guru
 
Member#: 8808
Join Date: Jul 2001
Chapter/Region: NESIC
Location: Grantham, NH
Vehicle:
2011 WRX (DGM 5D)
2002 WRX/2003 SVTF

Default

Quote:
Originally Posted by crazymikie
Not exactly-

You should think of the KC map as the amount of authority the ECU has to advance timing under different RPM/load conditions. When you reset the ECU, the IAM is set to 8 on a WRX or .5 on an STi/FXT, etc. Either way, your knock correction will start with 1/2 of the maximum allowable timing you programmed in the KC table. You can alter the starting point of the IAM, however, I am speaking about stock parameters here.
Mike --

The KC table is dynamic, and the Main Ignition Correction map is the one that you program into the ECU. I think we're having a terminology confusion.

Base ignition is found in the Main Base Ignition Map in ROM
Coarse ignition is found in the Main Ignition Correction Map in ROM
Fine ignition is managed dynamically in an 8x8 knock correction map within the ECU's RAM
Kha0S is offline   Reply With Quote
Old 01-09-2006, 06:41 PM   #5
STI8U
Scooby Specialist
 
Member#: 54052
Join Date: Feb 2004
Location: Auckland, NZ
Vehicle:
2005 Spec C Type RA
WRC Blue

Default

Quote:
Originally Posted by Kha0S
Mike --

The KC table is dynamic, and the Main Ignition Correction map is the one that you program into the ECU. I think we're having a terminology confusion.

Base ignition is found in the Main Base Ignition Map in ROM
Coarse ignition is found in the Main Ignition Correction Map in ROM
Fine ignition is managed dynamically in an 8x8 knock correction map within the ECU's RAM
Thanks, that makes sense. If I understand this correctly, both the main base ignition map and the main ignition correction Map are hardcoded in ROM from the factory and are never altered by the ECU. The knock correction map is initially all 0's and is dynamically altered by the ECU in an attempt to find the most aggressive timing possible for your fuel, tune and environmental conditions.

Is there anyway to disable the use of the knock correction map with Ecutek et al?
STI8U is offline   Reply With Quote
Old 01-09-2006, 11:37 PM   #6
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

Quote:
Originally Posted by Kha0S
Mike --

The KC table is dynamic, and the Main Ignition Correction map is the one that you program into the ECU. I think we're having a terminology confusion.

Base ignition is found in the Main Base Ignition Map in ROM
Coarse ignition is found in the Main Ignition Correction Map in ROM
Fine ignition is managed dynamically in an 8x8 knock correction map within the ECU's RAM
I see what you are saying- way too many names for all of this stuff- Cobb is now refferring to it as dynamic advance instead of knock correction. I believe DSMs have a knock correction, except it is bad and means the car is pulling timing, whereas the Subaru knock correction is additional advance.
crazymikie is offline   Reply With Quote
Old 01-09-2006, 11:41 PM   #7
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

Quote:
Originally Posted by STI8U
Thanks, that makes sense. If I understand this correctly, both the main base ignition map and the main ignition correction Map are hardcoded in ROM from the factory and are never altered by the ECU. The knock correction map is initially all 0's and is dynamically altered by the ECU in an attempt to find the most aggressive timing possible for your fuel, tune and environmental conditions.

Is there anyway to disable the use of the knock correction map with Ecutek et al?
I still think it's simpler to think of it this way-

You have your main ignition map which is hardcoded. The ECU will always run at least this much timing. Think of your knock correction (ignition correction, dynamic advance, coarse correction whatever you want to call it) as the amount of additional advance the car can ever run.

If you set the maps up, you can ensure that the car will not have to det. It will simply add the additional amount of advance you specified and then leave it alone. If it sees a problem, it will pull timing, thus doing it's job.

There is no way to disable this as far as I know. I'm still curious to know why you'd want to do this.

With a reset, I start my IAM at 16. The car runs the same timing curve day in and day out. It doesn't change. I've found a good compromise between running the car on the edge, while still making good power, and have set my timing appropriately. If I get bad gas or something, the ECU can still take precautions to protect the motor. Isn't this the behaviour you are looking for?

Mike
crazymikie is offline   Reply With Quote
Old 01-10-2006, 07:27 AM   #8
Kha0S
Scooby Guru
 
Member#: 8808
Join Date: Jul 2001
Chapter/Region: NESIC
Location: Grantham, NH
Vehicle:
2011 WRX (DGM 5D)
2002 WRX/2003 SVTF

Default

I reviewed the Subaru ignition patent above, and essentially, it works like this (I'm assigning somewhat arbitrary terms to things here... there seems to be no accepted terminology):

base = base ignition map value (static, ROM)
advance = IAM * ignition advance map value (static, ROM)
correction = knock correction map value (dynamic, RAM, starts at all 0)

final timing = base + smaller(advance, correction)

So, essentially, if your ignition correction map is set conservatively enough, your IAM will hit 16 (or whatever corresponds to "full" in your model year), and you'll be running timing that makes full use of the advance table, and the values in the knock correction dynamic table won't be used (to advance further).

Interesting stuff.
Kha0S is offline   Reply With Quote
Old 01-10-2006, 08:51 AM   #9
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

That was my point.

The good thing is that the ECU can still remove timing if necessary. If you get some datalogs of your car, and log ignition timing and knock correction, you will see that sometimes they don't add up.

Once reason for this is the fine learning- your car may be running the full values in the knock correction (ignition advance, coarse) table, but is still making corrections. So it's possible to have your IAM fully advanced, but still not run the maximum allowable timing.


Mike
crazymikie is offline   Reply With Quote
Old 01-10-2006, 01:22 PM   #10
R4ND0M_AX3
Scooby Newbie
 
Member#: 67483
Join Date: Aug 2004
Location: Sacramento, CA
Vehicle:
2005 WRX STi

Default

OK, Now can someone explain how/when the the other two 'advance' maps (B & C) are used on the STi?
R4ND0M_AX3 is offline   Reply With Quote
Old 01-11-2006, 03:15 AM   #11
WrXwaBBit
Scooby Newbie
 
Member#: 33296
Join Date: Feb 2003
Location: cali
Default

Quote:
Originally Posted by crazymikie
That was my point.

The good thing is that the ECU can still remove timing if necessary. If you get some datalogs of your car, and log ignition timing and knock correction, you will see that sometimes they don't add up.

Once reason for this is the fine learning- your car may be running the full values in the knock correction (ignition advance, coarse) table, but is still making corrections. So it's possible to have your IAM fully advanced, but still not run the maximum allowable timing.


Mike
does this apply only with sti's? because the sti have 3 dynamic maps and the wrxs has one dynamic. I ask this because i have wrx with the streetTuner and my primary ignition+ dynamic advance in my logs does not add up to my tables in the streettuner and keep in mind my iam is at 16.
WrXwaBBit is offline   Reply With Quote
Old 01-11-2006, 10:22 AM   #12
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

R4ND0M_AX3-
I have a very vague idea of how the B map works for the STis- It looks like there are a bunch of triggers- intake temp, coolant temp, etc and when they meet certain criteria, the car will just from map A to map B. This is purely from observation and speculation, though- I haven't been able to actually sit and look at the code for the ECU.

The C map is a mystery to me- I have no idea what it does. I believe Cobb has stated that the maps aren't even used at face value. For example, there is some formula that takes the values from all of the maps and combines them with some formula. I'v seen a car move between the A and B maps firsthand, other than that, I can't comment.

WrXwaBBit-
As far as the fine learning goes, it exists on STis and WRXs. You should go look at your knock learning map and see if the ECU is pulling timing there.

Do you have some logs you can post?

Thanks!
Mike
crazymikie is offline   Reply With Quote
Old 01-11-2006, 03:45 PM   #13
WrXwaBBit
Scooby Newbie
 
Member#: 33296
Join Date: Feb 2003
Location: cali
Default

no my knock learning table was all zeros at that time and wasn't pulling any timing. Sorry but i don't know how to post the logs here
WrXwaBBit is offline   Reply With Quote
Old 01-11-2006, 04:11 PM   #14
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

Quote:
Originally Posted by WrXwaBBit
no my knock learning table was all zeros at that time and wasn't pulling any timing. Sorry but i don't know how to post the logs here
What values do you have programmed for ignition timing and knock correction in your maps vs what you are seeing? If you want to email me a log, I'd be happy to take a look as well.

There are also temperature correction maps for ignition timing I believe, so that may be playing into things. It should be a bit easier to say after seeing some data.


Thanks!
Mike
crazymikie is offline   Reply With Quote
Old 01-11-2006, 08:41 PM   #15
WrXwaBBit
Scooby Newbie
 
Member#: 33296
Join Date: Feb 2003
Location: cali
Default

I don't see any temp correction maps in my streetTuner or is it a map we st don't have access to? When i say my ignition timing in my log does not add up to my table I mean the whole timing log does not match they either 2 or 1 degrees off from my tables. I was thinking its spark plug issue firing to late but i have NGK bkr7e one step colder gap to .28 should try other spark plugs? pm me your email i will send you my logs

thanks alot
WrXwaBBit is offline   Reply With Quote
Old 01-11-2006, 10:07 PM   #16
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

you can email me at crazymikie at yahoo dot com.

i'll take a look- if you want to attach your streettuner map as well, that will be helpful so i can compare the logged values vs the programmed ones.

there are a bunch of tables that we don't have access to in streettuner. there are more tables in protuner than streettuner and it looks like there are even more tables that aren't available in either.

i'll see what i can do to help.

thanks!
mike
crazymikie is offline   Reply With Quote
Old 01-12-2006, 01:05 AM   #17
WrXwaBBit
Scooby Newbie
 
Member#: 33296
Join Date: Feb 2003
Location: cali
Default

mike sent you the logs and the map. But i don't think you could view my map unless you have the st for wrx2003.

Oh and for the owner of this thread sorry to hijacking, this is my last post.

thanks
WrXwaBBit is offline   Reply With Quote
Old 01-13-2006, 04:42 AM   #18
STI8U
Scooby Specialist
 
Member#: 54052
Join Date: Feb 2004
Location: Auckland, NZ
Vehicle:
2005 Spec C Type RA
WRC Blue

Default

Quote:
Originally Posted by Kha0S
Not quite. There's three main components of the ignition timing that the ECU uses:

Base ignition map
Ignition correction map and IAM
Knock correction

Base ignition is the most retarded timing available, and correction * IAM/16 is added to that value. Knock correction is an additional 8x8 (on the MY02, anyway) map that is added to or subtracted from the base + correction value.

ECUtek has a good explanation:

http://www.ecutek.com/tuning/ignition/

/Andrew
OK, I've read the above URL which explains it quite clearly.

One thing that I picked up is that the article implies fine ignition learning is NOT used if the IAM is at its maximum value. See the following sentence:

Fine Ignition Learning

Once an overall (coarse) ignition learning factor has been determined, the ECU begins to fine tune the timing. In contrast to the single blanket value of coarse ignition correction, the fine correction is stored as an 8x8 table totalling 64 values. This allows the ECU to tailor the timing in 64 separate areas of load and rpm. However, if the ECU is given sufficiently good quality fuel, the advance multiplier will hit its maximum value of 16 and will therefore use the full value from the correction map i.e. once the correction map hits its end stops, it is not possible to advance the timing further using fine learning.


I've highlighted the sentence that I'm querying - I interpret it as if the IAM = 16 (maximum), fine learning cannot be used to advance timing. Thus fine learning would only be used if the IAM is below 16, to avoid penalizing the entire ignition curve due to knock in a particular area of the map.

If you read through the patent, I interpret it as follows:

1. The ECU has a base ignition map (IGB) which has the lowest timing values for low Octane fuel

2. The ECU has a maximum ignition advance map (MBT) which has the highest timing values the ECU will ever apply (i.e. these CANNOT be exceeded)

Now applying this to the Ecutek information, I'd suggest the MBT is the ignition correction map. Under optimal fuel conditions where the IAM is at 16, the base ignition map + ignition correction map * IAM represents the maximum timing that Subaru has tuned the ECU for. If the IAM is under 16, then the knock correction map can be used by the ECU to fine tune the overall timing that is applied.
STI8U is offline   Reply With Quote
Old 01-13-2006, 08:00 AM   #19
crazymikie
Scooby Specialist
 
Member#: 56321
Join Date: Mar 2004
Chapter/Region: NESIC
Location: Hopkinton, MA
Vehicle:
2006 Honda El Camino
Green

Default

Quote:
Originally Posted by STI8U
OK, I've read the above URL which explains it quite clearly.

One thing that I picked up is that the article implies fine ignition learning is NOT used if the IAM is at its maximum value. See the following sentence:

Fine Ignition Learning

Once an overall (coarse) ignition learning factor has been determined, the ECU begins to fine tune the timing. In contrast to the single blanket value of coarse ignition correction, the fine correction is stored as an 8x8 table totalling 64 values. This allows the ECU to tailor the timing in 64 separate areas of load and rpm. However, if the ECU is given sufficiently good quality fuel, the advance multiplier will hit its maximum value of 16 and will therefore use the full value from the correction map i.e. once the correction map hits its end stops, it is not possible to advance the timing further using fine learning.


I've highlighted the sentence that I'm querying - I interpret it as if the IAM = 16 (maximum), fine learning cannot be used to advance timing. Thus fine learning would only be used if the IAM is below 16, to avoid penalizing the entire ignition curve due to knock in a particular area of the map.

If you read through the patent, I interpret it as follows:

1. The ECU has a base ignition map (IGB) which has the lowest timing values for low Octane fuel

2. The ECU has a maximum ignition advance map (MBT) which has the highest timing values the ECU will ever apply (i.e. these CANNOT be exceeded)

Now applying this to the Ecutek information, I'd suggest the MBT is the ignition correction map. Under optimal fuel conditions where the IAM is at 16, the base ignition map + ignition correction map * IAM represents the maximum timing that Subaru has tuned the ECU for. If the IAM is under 16, then the knock correction map can be used by the ECU to fine tune the overall timing that is applied.
THe one point you missed is that that fine ignition timing can still remove timing when the IAM is 16. Also, the car doesn't necessarily run MBT (I assume Max Best Timing)- it runs right up to the det limit and will possibly knock, remove timing and go through the cycle over and over.

If there was some way to measure cylendar pressure, then the ECU could optimize timing for best performance, but as far as I know, there isn't.

Initially, I would have guessed that if the fine learning saw enough of a change, then it would affect the coarse learning, however, with what I've seen recently, I don't think that's true. If you do an ECU reset, you can advance the IAM very quickly (at least in USDM cars). The knock correction remains pretty volatile and will move around as necessary. The fine ignition takes a while to start populating. In my car, I've seen values of -4 in the fine ignition map, while the IAM was still 16 and the knock correction values were fully advanced.

This makes me think the two ignition corrections (fine and coarse) are independent and have different criteria the ECU uses to adjust them.

Mike
crazymikie is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How come I Can't see feedback knock correction, fine learning knock correction? AraSh Open Source Reflashes 23 01-08-2014 07:04 PM
fbkc, knock sum, knock correction advance, help kh15 Open Source Reflashes 7 06-05-2009 12:56 PM
Correlations between Knock Lite and negative knock correction xFactor Engine Management & Tuning 1 01-12-2006 07:36 PM
Stock Ecu: Knock correction? TurboRex Engine Management & Tuning 8 02-18-2003 08:08 PM
Knock Correction and timing (long!) Ryan23 Factory 2.0L Turbo Powertrain 14 06-28-2002 07:18 PM


All times are GMT -4. The time now is 07:34 AM.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Powered by Searchlight © 2014 Axivo Inc.
Copyright ©1999 - 2014, North American Subaru Impreza Owners Club, Inc.