|
RomRaider
Documentation
Community
Developers
|
| Author |
Message |
|
crispyduck
|
Post subject: Re: 07 sti rom analysis Posted: Wed Feb 06, 2008 9:25 pm |
|
 |
| Administrator |
Joined: Mon Feb 13, 2006 9:12 pm Posts: 48 Location: www.scoobypedia.co.uk
|
gabedude wrote: ... I am going to make a writeup that captures it all. Gabe If you want any help to post a Wiki artical just let me know. -Steve.
_________________ -Steve.
|
|
| Top |
|
 |
|
TROLL
|
Post subject: Re: 07 sti rom analysis Posted: Thu Feb 14, 2008 12:07 am |
|
 |
| Experienced |
Joined: Sun Jul 22, 2007 1:41 am Posts: 162 Location: Langhorne, PA
|
|
hey gabe, just wanted to check in and see if you had any time to put toward this yet or not. thanks as always for all of your contributions to the community...
_________________ http://www.TriStateTuners.com | http://www.bryantroll.com
Bugeye STi 3"/8cm FP Green | DW 750cc | Aquamist HFS-5 | APS 70mm CAI| APS Turbo Inlet | APS FMIC | TGV Delete | Perrin Headers | TurboXS Uppipe | TiAL 44mm EWG | APS Exhaust
|
|
| Top |
|
 |
|
gabedude
|
Post subject: Re: 07 sti rom analysis Posted: Thu Feb 14, 2008 3:05 am |
|
 |
| RomRaider Developer |
 |
Joined: Tue Jan 23, 2007 9:11 pm Posts: 966 Location: Hillsboro, Oregon
|
|
Not yet. Sorry. Will do soon.
|
|
| Top |
|
 |
|
merchgod
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 1:43 pm |
|
 |
| RomRaider Donator |
 |
Joined: Thu Mar 30, 2006 2:38 am Posts: 5336
|
|
I posted some details about how the advance a/b and multiplie boost, fuel, and initial wgdc maps work for the usdm 07 sti on Nasioc. I'm posting here for reference:
Timing Advance A/B
I took a closer, preliminary look at the advance A/B logic to get a general idea of what is going on:
As explained before:
final advance map value (not including FBKC/FLKC) = (Timing Advance B map value * 'Map Ratio Advance B') + (((Timing Advance A map value * 'Map Ratio Advance A') + Final C/D result) * current IAM)
The map ratio a/b values above are multipliers that can range from 0 to 1 (so, it could be 0, 1, 0.5, etc.). So, these multipliers determine if and how much of the A/B maps are added to advance.
Map Ratio Advance A is actually based on 4 separate multipliers: Map Ratio Advance A = multiplier 1 * multiplier 2 * multiplier 3 * multiplier 4 As you can see, if any of these multipliers is 0, then advance A is inactive. The ECU ramps these multipliers up or down (by a specific step value which can vary - for example 0.025, 0.2, 0.004, etc.) as determined by the logic. To avoid turning this into a 5000 word post (and force me to spend even more time on it), I'll gloss over the details to give you an idea of what is generally going on:
If you look at Timing Advance A, you'll see that the only non-zero values are at moderate to high RPM and load (>2.05g/rev and >4000 RPM).
Basically, the ECU is more likely to increase the portion of Advance A added to total advance when there's no knock "history" (a relatively brief period of time) and the conditions are not such that the potential for knock would be higher. It is likely to decrease the portion of Advance A when knock "history" is high or when there's current knock AND the conditions are such that the potential for knock is higher. The ECU may also make no change to a multiplier outside of the conditions above (for example, some conditions require a delay to rule out a situation where a threshold is exceeded for only a very brief period of time).
The following is a list of most of the thresholds used by some or all of the separate multipliers in the decision process for advance A (some may use only 1 or 2, another may use most, etc.) to give you a general idea of what is involved:
1. various RPM thresholds (knock failsafe active range debug table is one) 2. IAT (> 100 F - used across several multipliers) 3. various load thresholds 4. knock "history" (counter incremented when there's no knock, cleared when knock occurs) - also takes into consideration the current IAM to determine 3 separate modes (high knock, low knock, or low IAM and other stuff I'm not sure about). 5. knock signal (current knock -> set (knock), clear (no knock) 6. manifold absolute pressure (>18.4 psia) 7. requested torque (> 85 raw) 8. feedback knock correction (negative or zero) 9. current timing advance A map value (> 4.9 degrees) 10. atmospheric pressure (only used with one multiplier - reduces it closer to zero as AP approaches 11.6 psi). 11. current delay counter (as it related to the CL to OL delay)
As an example, with one of the multipliers, it will be increased by a 0.025 (max multiplier = 1.0) when all of the following are true: 1. knock history is low 2. current knock signal is clear 3. rpm > 4000 and <= 6600 4. load > 2.20 g/rev 5. fbkc > -.35 degrees of correction 6. timing adv A map value <= 4.9 degrees. 7. IAT <= 100 F 8. final advance A multiplier has not just dropped below 1.0
This is only one multiplier and one outcome (increasing). For example, there are two other sets of conditions that would decrease this multiplier using different step values (and that is just this one multiplier). However, if any of the other multipliers are zero, it doesn't matter as advance A would be inactive.
For timing advance B map ratio, which is also used for map switching for Target Boost, OL fuel maps, and initial WGDC, it is similar. In fact, 2 of the 4 multipliers for A are used with B. I didn't spend as much time here, but the example above is very close for one of the B multipliers, except that the minimum advance map value is lower (2.0 degrees) and some of the other thresholds are not used.
This was an extremely simplified explanation of what is going on, but hopefully will at least give some an idea of what is going on.
Target Boost, OL Primary Fueling, and Initial WGDC multiple maps and relation to advance B
Here's some more information (the following assumes you are using RomRaider/Ecuflash with the latest ECU definitions):
As I said, the timing advance B multiplier is also involved in the map switching for "Target Boost A/B", "Initial Wastegate Duty A/B", and "Primary Open Loop Fueling A/B" and the portion of these maps used would be determined as follows:
Final target = (Map A Target * (1.0 - Map Ratio Multiplier)) + (Map B Target * Map Ratio Multiplier)
As you can see, if the multiplier is 1.0, then only Map B is active. If multiplier is 0, then only Map A is active. Any value between 0 and 1 will result in a portion of each map being used (added together to determine the final target) and is essentially ramping between the two tables rather than abruptly switching.
This reveals the purpose of these multiple maps. We know that if timing advance B multiplier is 0, advance B is not active. Since they share the same multiplier (the multiple maps and advance b), whether advance B is active or how much is being applied also determines which or how much of the multiple maps are being used:
Target Boost A / Initial Wastegate Duty A / Primary Open Loop Fueling A - used when timing advance B is inactive Target Boost B / Initial Wastegate Duty B / Primary Open Loop Fueling B - used when timing advance B is active and applying full advance
This is the exact purpose of having multiple maps for these tables (as compared to 06/07 WRX which do not have these multiple tables). That is, the ECU can run different target boost, initial wgdc, and ol fueling depending on whether timing advance B is being applied to total advance or not (and a portion in-between). If you look at these tables, only the OL fuel maps A/B are actually different. Fuel map B, for the most part, is richer at loads greater than about 2.0 g/rev between about 2000-6000 RPM and leaner between about 4000-6000 RPM at lower loads (as compared to fuel map A).
You'll remember that I said you could actually disable the timing advance A/B logic by changing one constant in the ROM. That is, the engineers designed the capability to bypass this logic into the code. So what happens with the multiple tables for boost, wgdc, and fuel when you do this? There are actually another set of tables that are activated in this case and the previous A/B tables are disabled. So, instead of tuning A/B tables, there is one additional table for each (table C). When I released the official RomRaider (then enginuity) defs for the 07 STi a while back, I left out these additional tables as it was obvious that they were never used as it came from the factory. I later added the "C" table for Target Boost and Initial WGDC (labeled them "unused"), but only for those who own an AP who are tuning with RomRaider due to the way Cobb may set up their real-time tuning (completely unrelated to the whole a/b advance story - just the way Cobb may use unused tables as placeholders in RT tuning). Again, for the "C" version of the tables, only the fuel map is different. Fuel Map "C" is actually the same as Fuel Map A. That makes sense, as fuel map A is active when timing advance B is disabled and obviously fuel map C is active when the a/b logic is disabled in the code.
So, what about the USDM 04-06 STi? I haven't looked closely at these yet, however, I suspect that the timing advance C with these ECUs works similarily to advance B in the 07 STi.
So, what is the purpose of all this? I'll leave it up to the tuners to decide. Since it is only active on the STi (logic is still there in the 06/07 WRX, etc. but disabled), I'm going to assume it has at least partially a performance advantage maybe as it relates to the compromises that have to be made with a factory tune. That doesn't mean that zeroing out the A/B advance is going to kill power or isn't a valid tuning method (otherwise WRX/LGT/FXTs would be relatively down on power with a tune which doesn't seem to be the case).
So why all the issues with the usdm 07 sti compared to prior year stis? Because this year adds an additional advance map (A) which adds timing at high rpm and load. If this wasn't active when the tuner was tuning on a dyno and they didn't understand how it came into play, they may have tuned advance C/D to near MBT and then later, when the customer was driving, the advance A (and/or B) table(s) comes into play, which, obviously, would be a problem. Combine this with the other issues of the 07 STi (more narrow rough correction rpm range, cl to ol delay, etc.) and it has to be the most challenging Subaru to tune yet (or maybe a better way to look at it is the most jacked up tune from the factory yet).
EDIT: Actually, thinking about it, the EDM/ADM 07 STi advance is set up just like the 06/07 WRX (single advance table). Since the EDM/ADM models are not hampered by the more stringent emissions requirements as we have, it would stand to reason that the "add-on" advance logic in the USDM 07 STi (and even prior years) is primarily an addition due to emissions not performance. So, zeroing out the A/B tables (or bypassing the logic as designed), is a valid method of tuning for USDM STis unless emissions is also a priority of the tuner.
|
|
| Top |
|
 |
|
fasterthanurwrx
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:25 pm |
|
 |
| Experienced |
 |
Joined: Mon Sep 18, 2006 2:55 pm Posts: 229
|
|
| Top |
|
 |
|
merchgod
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:36 pm |
|
 |
| RomRaider Donator |
 |
Joined: Thu Mar 30, 2006 2:38 am Posts: 5336
|
fasterthanurwrx wrote: Great work, great info ! no problem.  I got sick of reading about the misinformation in that thread on Nasioc (mainly so and so tuner/Suby tech said it was a bad idea to do this or that), that I decided to find out for myself what actually was going on.
|
|
| Top |
|
 |
|
fasterthanurwrx
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:42 pm |
|
 |
| Experienced |
 |
Joined: Mon Sep 18, 2006 2:55 pm Posts: 229
|
merchgod wrote: You'll remember that I said you could actually disable the timing advance A/B logic by changing one constant in the ROM. That is, the engineers designed the capability to bypass this logic into the code. Does the rom have to be patched to disable this logic? Or could a table be made in RomRaider so a user can enable or disable it?
|
|
| Top |
|
 |
|
gabedude
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:47 pm |
|
 |
| RomRaider Developer |
 |
Joined: Tue Jan 23, 2007 9:11 pm Posts: 966 Location: Hillsboro, Oregon
|
merchgod wrote: EDIT: Actually, thinking about it, the EDM/ADM 07 STi advance is set up just like the 06/07 WRX (single advance table). Since the EDM/ADM models are not hampered by the more stringent emissions requirements as we have, it would stand to reason that the "add-on" advance logic in the USDM 07 STi (and even prior years) is primarily an addition due to emissions not performance. So, zeroing out the A/B tables (or bypassing the logic as designed), is a valid method of tuning for USDM STis unless emissions is also a priority of the tuner. This is the truth. Only the USDM STI has this logic. It is purely for emissions IMHO.
|
|
| Top |
|
 |
|
gabedude
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:50 pm |
|
 |
| RomRaider Developer |
 |
Joined: Tue Jan 23, 2007 9:11 pm Posts: 966 Location: Hillsboro, Oregon
|
fasterthanurwrx wrote: merchgod wrote: You'll remember that I said you could actually disable the timing advance A/B logic by changing one constant in the ROM. That is, the engineers designed the capability to bypass this logic into the code. Does the rom have to be patched to disable this logic? Or could a table be made in RomRaider so a user can enable or disable it? No, you just make sure Advance A and B tables are zeroed (Then just make Advance C&D the same as well as Base A,B,C,D, the fuleing tables, etc the same). Revisit your FLKC and FBKC ranges to fix them to appropriate values. Use the EDM 07 STI ROM as a guide. Gabe
|
|
| Top |
|
 |
|
fasterthanurwrx
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:53 pm |
|
 |
| Experienced |
 |
Joined: Mon Sep 18, 2006 2:55 pm Posts: 229
|
gabedude wrote: fasterthanurwrx wrote: merchgod wrote: You'll remember that I said you could actually disable the timing advance A/B logic by changing one constant in the ROM. That is, the engineers designed the capability to bypass this logic into the code. Does the rom have to be patched to disable this logic? Or could a table be made in RomRaider so a user can enable or disable it? No, you just make sure Advance A and B tables are zeroed (Then just make Advance C&D the same as well as Base A,B,C,D, the fuleing tables, etc the same). Revisit your FLKC and FBKC ranges to fix them to appropriate values. Use the EDM 07 STI ROM as a guide. Gabe Gotcha, thanks !
|
|
| Top |
|
 |
|
merchgod
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 2:59 pm |
|
 |
| RomRaider Donator |
 |
Joined: Thu Mar 30, 2006 2:38 am Posts: 5336
|
fasterthanurwrx wrote: Does the rom have to be patched to disable this logic? Or could a table be made in RomRaider so a user can enable or disable it? I can add the capability to disable it to the next def release (it would be a switch table fix sort of like DTC disabling). I would also need to add the "C" version of the fuel map (and relabel the "unused" target boost and initial wgdc). I could call them "alternate mode" tables - you would need to tune these new C tables for those 3 tables as the normal tables would no longer be used if you enabled the fix. In the meantime, you can just zero out the A/B advance tables as Gabe said. It would still switch between the A/B multiple maps for target boost/fuel map/initial WGDC, however only fuel map A and B are different among those.
|
|
| Top |
|
 |
|
TROLL
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 4:45 pm |
|
 |
| Experienced |
Joined: Sun Jul 22, 2007 1:41 am Posts: 162 Location: Langhorne, PA
|
gabedude wrote: No, you just make sure Advance A and B tables are zeroed (Then just make Advance C&D the same as well as Base A,B,C,D, the fuleing tables, etc the same). Revisit your FLKC and FBKC ranges to fix them to appropriate values. Use the EDM 07 STI ROM as a guide. Gabe Ok, here's the way that the inside view of a wanna-be tuner noob processes the info in this thread... So is this right here the down and dirty summary of how to have your timing read the same thing alllllll the time, and what you recommend doing to tune the 07 STi? Its not explained how Advance C and D operate above, can you explain that just so I'm 100% sure what to expect on all of this? i assume it uses the raw value of either C or D for advance and thats the long and short of it but let me know. And if I'm right so far, when Advance A and B are zeroed, you also make sure that your Fueling A/B and WGDC A/B tables are identical to further ensure consistency with the way the car runs? Lastly, what do you mean by fixing the FLKC and FBKC ranges to appropriate values? Thanks a lot for the info posted so far, just want to be sure that I understand this backwards and forwards...
_________________ http://www.TriStateTuners.com | http://www.bryantroll.com
Bugeye STi 3"/8cm FP Green | DW 750cc | Aquamist HFS-5 | APS 70mm CAI| APS Turbo Inlet | APS FMIC | TGV Delete | Perrin Headers | TurboXS Uppipe | TiAL 44mm EWG | APS Exhaust
|
|
| Top |
|
 |
|
gabedude
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 4:57 pm |
|
 |
| RomRaider Developer |
 |
Joined: Tue Jan 23, 2007 9:11 pm Posts: 966 Location: Hillsboro, Oregon
|
|
Yes, just make sure to keep the rest of the tables the same. As far as the FBKC and FLKC ranges, this is up to you. Use the 06 STI as a guide or an 06 WRX.
The only other thing is the multiplier that switches Advance C/D, Base B&D/A&C, and AVCS A&B, but this mutliplier is almost always 1 when moving forward, so you can make these tables the same. Just make sure to 0 Advance A and B, make everything else match.
|
|
| Top |
|
 |
|
merchgod
|
Post subject: Re: 07 sti rom analysis Posted: Mon Feb 25, 2008 5:33 pm |
|
 |
| RomRaider Donator |
 |
Joined: Thu Mar 30, 2006 2:38 am Posts: 5336
|
TROLL wrote: Its not explained how Advance C and D operate above, can you explain that just so I'm 100% sure what to expect on all of this? i assume it uses the raw value of either C or D for advance and thats the long and short of it but let me know. I posted this before: Based on what Gabe logged...Timing Advance D is used seemingly when cruising or during lift throttle (could be some other factors - not sure) and Timing Advance C seems to be used when accelerating (also could be some other factors). The switch between these two maps is gradual and there is sometimes a delay before the switch even starts. For example, if you are accelerating and using all of Timing Advance C and then you lift off the throttle, there is a pause before it starts using a combination of C/D and then reverts to D. The logic of the multiplier that determines the map ratio of advance C/D is a PITA, so I can't give you any details about how the switching is determined other than what you can see for yourself by logging (use the latest logger defs - there is parameter for advance c/d map ratio). Quote: And if I'm right so far, when Advance A and B are zeroed, you also make sure that your Fueling A/B and WGDC A/B tables are identical to further ensure consistency with the way the car runs? Also Target Boost A/B, although this table and initial WGDC A/B are already the same in the factory tune. Quote: Lastly, what do you mean by fixing the FLKC and FBKC ranges to appropriate values? As Gabe said, use can use an 06 STi for reference. Look especially at the rough correction range (RPM) and feedback correction range (RPM). Also, the appropriate load max ranges if you are exceeding those values.
|
|
| Top |
|
 |
|
gabedude
|
Post subject: Re: 07 sti rom analysis Posted: Fri Feb 29, 2008 5:49 pm |
|
 |
| RomRaider Developer |
 |
Joined: Tue Jan 23, 2007 9:11 pm Posts: 966 Location: Hillsboro, Oregon
|
|
I have been thinking about this extensively. I have tuned the car both ways before and I just simply prefer to tune all STIs like WRXs. I mean, logically it makes no sense.
So you sit there, you zero Advance A&B, then tune. Ok, so now you are done with your tune and found a "safe" or "at the edge" limit. What I do for WRXs is just find the limit, and back it off a few degrees and richen it up a few points. I make sure all load and RPM zones are covered by the FLKC table, I make sure an IAM adjustment is possible (various things including what values you put in the DA table) and I make sure that initial IAM is not 1 for the final flash.
Now you could take this whole approach, tune it aggressively, then say take 2-3 degrees out of the base timing tables and put it in Advance B in the upper RPM ranges and then some in Advance A if you wanted to. It doesn't make a difference. Yeah the car learns fueling trims and has this extra layer of knock crap on top of it. It can help some, but a simple vishnu reset can force fuel trims to learn. We have one knock sensor and all pulled or learned timing is based upon the activity of this microphone. The underlying code that controls how much timing to add and when is what irks me and has bothered me. I do not like seeing FBKC values of over -2.8, but I have seen this often using the "Denso" way. It is essentially the same emissions crap IMHO (more complex yes) that the 06-07 WRX has (the base alternate timing, etc).
I guess as a tuner it just doesn't matter either way you go about it. Neither way will make a more powerful car or a more "knock free" car. Done correctly, since all of this logic relies on the knock sensor signal, if the car knocks, timing will be pulled from somewhere. I guess you have to ask yourself, do you want more timing pulled (more knock events while the ECU is trying to learn timing) before IAM drops and you go into limp home (you can always change the amount of timing pulled as well) or do you want the ECU to drop IAM like a bad habbit when bad knock is encountered (by not using the extra advance tables).
IMHO, zeroing Advance A&B makes the ECU behave like a standalone. There is essentially one DA table, one Base timing table. No funky additions, you still have your two layers of protection.
Some tuners 0 (or make it so that the values in the DA tables are so low that an IAM change is not possible) the DA tables and simply rely on FLKC (much like a J&S safegaurd running on all cylinders). IMHO, this is bad, but some tuners do it (although getting a J&S addon running on all 4 cylinders individually would be a very good addition as it can adjust timing per cylinder).
So why all the conjecture and argument?
Simply put, there is money to be made. If I can convince X user that using all of the DA tables is the "correct" way and that his/her engine will run longer tuned this way then I have gained a customer.
I am glad I am not tuning many cars now. Done it, tried it, not worth the hassle. I'd rather just work on my own cars and share our findings with other DIY tuners.
Gabe
P.S.
For those of you that want a 07 STI base map that tunes like a WRX, it is posted over on osecuroms.org. Start with my Stage 1 v2 91 octane mapping.
|
|
| Top |
|
 |
Who is online |
Users browsing this forum: No registered users and 4 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|