2009 Aussie RA - Tweaking and Tuning
Yes, those are still the ones I have.
I'm not 100% sure on the "IAT" one being IAT - I found that just messing around logging addresses in "similar" ROMs. But it sure seems to act like IAT!
And I've been using the 0x808776 address for load lookup into both the fuel map and the spark map... but I wouldn't bet my life on that being the correct one to use for both. The 0x808776 load value reads a bit higher than the one in 0x80876e.
It doesn't help that I don't have a working AFRMAP logging address!
Rich
For anyone interested in seeing how a GST Boost Pill based RA tune goes on track (and my humble attempts to fine-tune it), here is the first of half a dozen results from a track test afternoon.
A graphed excerpt... I'm sure anyone who has got involved in tuning will find the red line of particular interest!...

Full logfile attached. Note the usual EvoM proviso - it'll probably appear as a "zip-in-a-zip". Unzip, rename the resulting file as a .zip and unzip that. Don't ask me why - maybe it's the way I upload 'em!
AFR readings are from Inno LC-1 in downpipe after t/c, analog via OP2.0 ADC (Pin 8). That's the black line, using secondary axis on right of graph (10:1 to 15:1 range).
I'm getting 12-13 logged items a second, standalone. Whittled it down to the bare minimum items.
A few notes about this tune. It's essentially GST Base Map 2.5, but with...
For reference, here's the High Octane Fuel Map:


...and the High Octane Spark Map...

I won't dump the entire afternoon's work in this one posting - too much information to deal with!
I took my netbook with me on the day, reviewed each drive's data as soon as I'd parked up, and was perfectly happy to have a crack at addressing issues then and there. So stay tuned for more on this...
Enjoy...
Rich
A graphed excerpt... I'm sure anyone who has got involved in tuning will find the red line of particular interest!...

Full logfile attached. Note the usual EvoM proviso - it'll probably appear as a "zip-in-a-zip". Unzip, rename the resulting file as a .zip and unzip that. Don't ask me why - maybe it's the way I upload 'em!
AFR readings are from Inno LC-1 in downpipe after t/c, analog via OP2.0 ADC (Pin 8). That's the black line, using secondary axis on right of graph (10:1 to 15:1 range).
I'm getting 12-13 logged items a second, standalone. Whittled it down to the bare minimum items.
A few notes about this tune. It's essentially GST Base Map 2.5, but with...
- Different t/c boost control tables, as the GST ones weren't making good results with my vehicle, maybe due to the AMS boost pill I use. I've since tweaked these a bit (and will be doing some more boost control fine-tuning soon).
- Timing retarded by a degree in the odd spark map cell, based on past on-track logging episodes.
- Revised upper/lower boundary spark maps.
- Rev limiter still set to GST 2.0 value (around 7150).
For reference, here's the High Octane Fuel Map:


...and the High Octane Spark Map...

I won't dump the entire afternoon's work in this one posting - too much information to deal with!

I took my netbook with me on the day, reviewed each drive's data as soon as I'd parked up, and was perfectly happy to have a crack at addressing issues then and there. So stay tuned for more on this...

Enjoy...
Rich
I think you may be knocking there because of the rich AFR. Personally, I'd lean that out about a full point and see how the knock reacts. That's the way my car seems to like it anyhow....
The WOT areas were easy enough - and knock was almost entirely absent - but setting AFR in the spool-up areas were quite simply beyond me...
If I drove so as to "traverse" the map with steady RPM but increasing boost/load, I got far leaner readings than I did going through the exact same cells with increasing RPM but steady boost/load.
For example, going WOT from whatever rpm, I could get the Fuel Map giving a wbo2 reading of 12.5:1 during spool-up to (say) 10psi, then dropping fast to 11.5:1 before peak boost. BUT if I then hit those same cells at part-throttle or deliberately limited boost, the wbo2 would read 10.5:1.
Conversely, if I tuned the cells from the part-throttle (or capped boost), then spooling up hard through them would see wbo2 readings of 12.5:1 at peak boost!

And right about then, I had a decision to make. Should I, with my very limited experience, "trust" that those very lean readings were laggy and/or wrong, and press on? Or should I stop right then and get the hell away from EcuFlash before I damaged something expensive?

I chose the latter.
Hence the reason for blasting around a track with readings as rich as 10.2:1 - I simply don't trust myself to get spool-up tuning right with leaner mixtures.
But... guess what? Most of the areas knocking in the previous log were during spool-up, after throttling on above 4000rpm. So it's not really something I could get away from.
More on that score next post...
Rich
I know how you feel. I've struggled with the exact same thing. The car definitely acts different at part or full throttle off the same fuel map during spool. And its consistently that way. Who knows, maybe there are more maps that adjust the fuel map depending on rate of change of load regardless of lean-spool settings. I agree with better safe than sorry though.
I've found that tweaking the MAP tables just a little in the spool area help with this. But its really easy to start chasing your own tail between the MAP and fuel maps. Throw a random minor boost leak into the equation and you may find yourself cursing EcuFlash, Evoscan, and Mitsubishi all in the same sentence!
I've found that tweaking the MAP tables just a little in the spool area help with this. But its really easy to start chasing your own tail between the MAP and fuel maps. Throw a random minor boost leak into the equation and you may find yourself cursing EcuFlash, Evoscan, and Mitsubishi all in the same sentence!
Okay, so after the first short on-track run, I was looking at some knock between 4500rpm and 5100rpm... after nailing the throttle and spooling up through that area. This was on GST Base Map fuelling tables.
There was a bit of a step-up in the fuel map in that very area... you can see it in the 3d graph at 4500...

...so I decided to enrich that area by just 0.1 or 0.2 AFR, and re-test. I wanted to see if this affected things in a good way.
I'd also seen one instance of knock (ks=3) at 6500, going WOT. Only once, though, so no emerging pattern. But something to remember and look out for as the day progressed.
The change I applied was to slightly enrich 4500, 5000, 5500 spool-up:

Here's the result - second run:

This time, two more instances of very slight knock (ks=2) around 6500/190... just like the single instance in the first run. A pattern emerging? Maybe.
And... some unhappiness indeed at 4000/200 (ks=9).
Note that I'd previously limited my minor enrichments to 4500-5500rpm spool-up cells; I hadn't touched anything at 4000rpm at all.
The good news was, there was no knock at all in the 4500-5500 rpm range... and that wasn't for lack of sudden WOT right in that range.
Given things seemed to be moving in a sensible direction, I continued to follow my nose... and slightly enriched the 4000rpm spool-up cells by just a hair...

And here's the third run, on the newly modified map:

That run was nice and clean! Yay.
I had more runs to do... and was going to keep an eye on the 6500rpm WOT area. Not just because there was a little knocksum grumbling earlier on, but because the mixtures were trending slightly leaner as revs approached 7000...

I really wanted to see steady AFR readings - certainly not slight enleanment.
But seeing as the last run was so tidy, I thought another blast was in order. After all, sometimes you've just got to have a little fun...
Rich
There was a bit of a step-up in the fuel map in that very area... you can see it in the 3d graph at 4500...

...so I decided to enrich that area by just 0.1 or 0.2 AFR, and re-test. I wanted to see if this affected things in a good way.
I'd also seen one instance of knock (ks=3) at 6500, going WOT. Only once, though, so no emerging pattern. But something to remember and look out for as the day progressed.
The change I applied was to slightly enrich 4500, 5000, 5500 spool-up:

Here's the result - second run:

This time, two more instances of very slight knock (ks=2) around 6500/190... just like the single instance in the first run. A pattern emerging? Maybe.
And... some unhappiness indeed at 4000/200 (ks=9).
Note that I'd previously limited my minor enrichments to 4500-5500rpm spool-up cells; I hadn't touched anything at 4000rpm at all.
The good news was, there was no knock at all in the 4500-5500 rpm range... and that wasn't for lack of sudden WOT right in that range.
Given things seemed to be moving in a sensible direction, I continued to follow my nose... and slightly enriched the 4000rpm spool-up cells by just a hair...

And here's the third run, on the newly modified map:

That run was nice and clean! Yay.
I had more runs to do... and was going to keep an eye on the 6500rpm WOT area. Not just because there was a little knocksum grumbling earlier on, but because the mixtures were trending slightly leaner as revs approached 7000...

I really wanted to see steady AFR readings - certainly not slight enleanment.
But seeing as the last run was so tidy, I thought another blast was in order. After all, sometimes you've just got to have a little fun...

Rich
I'm getting into ROM disassembly a bit now.
Some stuff for ROM 53610010...
Direct (PSI-based) Boost Control
Here are the EcuFlash definitions that allow you to switch from traditional load-based boost error correction to direct boost control...
Scalings:
Defs:
For reference, here's my setup. This isn't a recommendation - it just shows one way to drive it...

EvoScan addresses...
It should log like this...

Cheers,
Rich
Some stuff for ROM 53610010...Direct (PSI-based) Boost Control
Here are the EcuFlash definitions that allow you to switch from traditional load-based boost error correction to direct boost control...
Scalings:
Code:
<scaling name="psia16" units="psia" toexpr="x*0.19347" frexpr="x/0.19347" format="%.1f" min="0" max="49.5" inc="0.1" storagetype="uint16" endian="big"/> <scaling name="psia8" units="psia" toexpr="x*0.19347" frexpr="x/0.19347" format="%.1f" min="0" max="49.5" inc="0.1" storagetype="uint8" endian="big"/> <scaling name="BoostErrorPsi" units="psi" toexpr="(x-128)*0.19347/4" frexpr="(x*4/0.19347)+128" format="%.1f" min="-6.1" max="6.1" inc="0.1" storagetype="uint16" endian="big"/>
Code:
<table name="Atmospheric Boost" address="53484" category="Direct Boost" type="1D" scaling="psia16"/> <table name="Boost Target #1A (High Gear Range)" address="58e8d" category="Direct Boost" type="3D" swapxy="true" scaling="psia8"> <table name="Throttle" address="62672" type="X Axis" elements="9" scaling="Throttle_Main - Stored Minimum Throttle %"/> <table name="RPM" address="625f0" type="Y Axis" elements="18" scaling="RPM"/> </table> <table name="Boost Target #1B (High Gear Range)" address="58f37" category="Direct Boost" type="3D" swapxy="true" scaling="psia8"> <table name="Throttle" address="62672" type="X Axis" elements="9" scaling="Throttle_Main - Stored Minimum Throttle %"/> <table name="RPM" address="625f0" type="Y Axis" elements="18" scaling="RPM"/> </table> <table name="Boost Target #2 (Low Gear Range)" address="5743d" category="Direct Boost" type="3D" swapxy="true" scaling="psia8"> <table name="Throttle" address="62672" type="X Axis" elements="9" scaling="Throttle_Main - Stored Minimum Throttle %"/> <table name="RPM" address="625f0" type="Y Axis" elements="18" scaling="RPM"/> </table> <table name="Target Boost Error Correction" address="58d20" category="Direct Boost" type="2D" scaling="DynamicBoost"> <table name="Boost Error" address="6261a" type="Y Axis" elements="17" scaling="BoostErrorPsi"/> </table> <table name="Variable for Boost Control 0xC774 -> 0xC71A" address="9f516" category="Direct Boost" type="1D" scaling="Hex16"/> <table name="SHLR->SHLR2 0x5101 -> 0x5102" address="9f518" category="Direct Boost" type="1D" scaling="Hex16"/> <table name="Boost Error RAM Address 0xC590 -> 0xC58E (is 0x80858e for logging)" address="9f53e" category="Direct Boost" type="1D" scaling="Hex16"/> <table name="Boost Error RAM Address in Load Error Table 0xC590 -> 0xC58E" address="62616" category="Direct Boost" type="1D" scaling="Hex16"/>
For reference, here's my setup. This isn't a recommendation - it just shows one way to drive it...

EvoScan addresses...
Code:
LogReference: BoostTarget RequestID: 23808b5b Eval: x/5.18 ResponseBytes: 1 LogReference: BoostError RequestID: 2380858f Eval: (x-128)/4*0.19347 ResponseBytes: 1
It should log like this...

Cheers,
Rich
Last edited by richardjh; Jul 31, 2011 at 08:03 PM.
For reference, here's what my Direct PSI-based boost control looks like...


I might have my new IAT Adjusted BWGDC table ever-so-slightly too conservative, but it's not far off at all. Here's a 4th gear test...

I realise there are some parts of this boost-tune style that vary from the norm. I've spent a lot of time playing with different approaches to the stock 2-port tuning (and how it interacts with the SST), so there's usually some method behind the madness.
I'll put up a few observations about the tables in a while. For now, I just leave this as a big "table-blat" post!
Rich


I might have my new IAT Adjusted BWGDC table ever-so-slightly too conservative, but it's not far off at all. Here's a 4th gear test...

I realise there are some parts of this boost-tune style that vary from the norm. I've spent a lot of time playing with different approaches to the stock 2-port tuning (and how it interacts with the SST), so there's usually some method behind the madness.
I'll put up a few observations about the tables in a while. For now, I just leave this as a big "table-blat" post!

Rich
Some notes about why I've set things up the way I have...
Target Boost Error Correction
The Upward Correction side of things doesn't look anything like other peoples' ones, I know. If boost is up to 2psi below target, I'm adding a FIXED upward correction of 1%. Why?
...because the ECU doesn't distinguish between "initial spool-up, approaching boost target" and "ongoing correction to match target curve"!
With a nice, fast correction interval of 1, I'll almost always "hit" a correction in the 0-2psi range once. Where I'll hit a correction event in that range is pure chance. It could be 1.9psi - it could be 0.8psi. If I had an increasing reaction (as per stock looking EC curve), it would basically be a RANDOM WGDC ADD GENERATOR, right before the peak - exactly where you don't want random WGDC additions to occur!
So instead, I've set it up so it's more of a binary switch... "If Boost is 0-2psi below target, add 1%".
It's all about consistency.
Also, I've adjusted the scale. I wanted precise control around the zero mark, so I could (a) define a small "dead" area with no correction at all, and (b) have 0.5psi spaced EC points to tune. It seems to work well.
Reactive Solenoid Max Total Upward WGDC Correction vs. TPS
I tried the "all zeroes" approach for this table, but I didn't like the way the initial boost peak felt. It was quite harsh - particularly going WOT at 4000-5000rpm.
Instead, I build in a "buffer" of 5% using this table.
My Reactive Solenoid Base WGDC tables are tuned w.r.t. the initial WOT spool-up, at whatever RPM. You'll have little, if any, error correction at that point... so the BCS will be running at a little lower duty cycle. I want the wastegate to open a hair below the target from my Boost Target table.
Once I'm within 2psi of target, error correction will pull up the WGDC and track the target boost level. It just needs enough "upward correction" headroom.
IAT Adjusted WGDC
This is a brand new table/code I added myself. Because I can!
This should help keep my WGDC table in the ball-park from summer to winter. I'll just take a while to tune correctly.
OBTR (Over-Boost Timing Retard)
In my opinion, this one is useful for SST-equipped cars because of their tendency to push boost high through WOT upshifts
It will pull timing while boost is over the Boost Target level, thereby avoiding knock.
There's actually a better solution for this SST upshift boost issue, but it'll take come code to accomplish. That one is still "in development".
Rich
Target Boost Error Correction
The Upward Correction side of things doesn't look anything like other peoples' ones, I know. If boost is up to 2psi below target, I'm adding a FIXED upward correction of 1%. Why?
...because the ECU doesn't distinguish between "initial spool-up, approaching boost target" and "ongoing correction to match target curve"!
With a nice, fast correction interval of 1, I'll almost always "hit" a correction in the 0-2psi range once. Where I'll hit a correction event in that range is pure chance. It could be 1.9psi - it could be 0.8psi. If I had an increasing reaction (as per stock looking EC curve), it would basically be a RANDOM WGDC ADD GENERATOR, right before the peak - exactly where you don't want random WGDC additions to occur!
So instead, I've set it up so it's more of a binary switch... "If Boost is 0-2psi below target, add 1%".
It's all about consistency.
Also, I've adjusted the scale. I wanted precise control around the zero mark, so I could (a) define a small "dead" area with no correction at all, and (b) have 0.5psi spaced EC points to tune. It seems to work well.
Reactive Solenoid Max Total Upward WGDC Correction vs. TPS
I tried the "all zeroes" approach for this table, but I didn't like the way the initial boost peak felt. It was quite harsh - particularly going WOT at 4000-5000rpm.
Instead, I build in a "buffer" of 5% using this table.
My Reactive Solenoid Base WGDC tables are tuned w.r.t. the initial WOT spool-up, at whatever RPM. You'll have little, if any, error correction at that point... so the BCS will be running at a little lower duty cycle. I want the wastegate to open a hair below the target from my Boost Target table.
Once I'm within 2psi of target, error correction will pull up the WGDC and track the target boost level. It just needs enough "upward correction" headroom.
IAT Adjusted WGDC
This is a brand new table/code I added myself. Because I can!

This should help keep my WGDC table in the ball-park from summer to winter. I'll just take a while to tune correctly.

OBTR (Over-Boost Timing Retard)
In my opinion, this one is useful for SST-equipped cars because of their tendency to push boost high through WOT upshifts
It will pull timing while boost is over the Boost Target level, thereby avoiding knock.
There's actually a better solution for this SST upshift boost issue, but it'll take come code to accomplish. That one is still "in development".

Rich
OBTR (Over-Boost Timing Retard)
In my opinion, this one is useful for SST-equipped cars because of their tendency to push boost high through WOT upshifts
It will pull timing while boost is over the Boost Target level, thereby avoiding knock.
There's actually a better solution for this SST upshift boost issue, but it'll take come code to accomplish. That one is still "in development".

Which reminds me, have you looked into why yours doesn't follow that table like mine does?
Hi Bryan.
I've spent heaps of disassem time on that, and still haven't tracked it back!
There are a lot of SST-related bitflags, and they light up like a Christmas tree during part-throttle upshifts. But when I'm at full-throtle, it's like my ECU programming doesn't "see" the upshift at all. Consequently, stuff like Lower Boundary Timing Map doesn't come into it.
That leads to my Plan B... I'm going to try patching the ROM in the WGDC / Error Correction area instead.
It might take some experimentation to really nail an appropriate response, but how's this for a dead-simple starter?...
If ( WOT ) & ( RPM decreasing ) & ( Boost Error Correction > 0 )then
Boost Error Correction = 0
This will eliminate "dumb ECU behaviour #1", namely, carrying positive WGDC error correction through the upshift and applying it from the getgo in the next gear.
That's never going to fly with SST upshifts - it's not like it needs positive EC at that point!!! Indeed, it's pretty much guaranteed to be THE place NOT requiring any positive EC.
If that gets me more sensible looking upshift boost, I'll leave it at that. If not, I'll start getting creative.
Rich
I've spent heaps of disassem time on that, and still haven't tracked it back!

There are a lot of SST-related bitflags, and they light up like a Christmas tree during part-throttle upshifts. But when I'm at full-throtle, it's like my ECU programming doesn't "see" the upshift at all. Consequently, stuff like Lower Boundary Timing Map doesn't come into it.
That leads to my Plan B... I'm going to try patching the ROM in the WGDC / Error Correction area instead.
It might take some experimentation to really nail an appropriate response, but how's this for a dead-simple starter?...
If ( WOT ) & ( RPM decreasing ) & ( Boost Error Correction > 0 )then
Boost Error Correction = 0
This will eliminate "dumb ECU behaviour #1", namely, carrying positive WGDC error correction through the upshift and applying it from the getgo in the next gear.
That's never going to fly with SST upshifts - it's not like it needs positive EC at that point!!! Indeed, it's pretty much guaranteed to be THE place NOT requiring any positive EC.
If that gets me more sensible looking upshift boost, I'll leave it at that. If not, I'll start getting creative.

Rich
Some notes about why I've set things up the way I have...
Target Boost Error Correction
The Upward Correction side of things doesn't look anything like other peoples' ones, I know. If boost is up to 2psi below target, I'm adding a FIXED upward correction of 1%. Why?
...because the ECU doesn't distinguish between "initial spool-up, approaching boost target" and "ongoing correction to match target curve"!
With a nice, fast correction interval of 1, I'll almost always "hit" a correction in the 0-2psi range once. Where I'll hit a correction event in that range is pure chance. It could be 1.9psi - it could be 0.8psi. If I had an increasing reaction (as per stock looking EC curve), it would basically be a RANDOM WGDC ADD GENERATOR, right before the peak - exactly where you don't want random WGDC additions to occur!
So instead, I've set it up so it's more of a binary switch... "If Boost is 0-2psi below target, add 1%".
It's all about consistency.
Also, I've adjusted the scale. I wanted precise control around the zero mark, so I could (a) define a small "dead" area with no correction at all, and (b) have 0.5psi spaced EC points to tune. It seems to work well.
-snip-
Rich
Target Boost Error Correction
The Upward Correction side of things doesn't look anything like other peoples' ones, I know. If boost is up to 2psi below target, I'm adding a FIXED upward correction of 1%. Why?
...because the ECU doesn't distinguish between "initial spool-up, approaching boost target" and "ongoing correction to match target curve"!
With a nice, fast correction interval of 1, I'll almost always "hit" a correction in the 0-2psi range once. Where I'll hit a correction event in that range is pure chance. It could be 1.9psi - it could be 0.8psi. If I had an increasing reaction (as per stock looking EC curve), it would basically be a RANDOM WGDC ADD GENERATOR, right before the peak - exactly where you don't want random WGDC additions to occur!
So instead, I've set it up so it's more of a binary switch... "If Boost is 0-2psi below target, add 1%".
It's all about consistency.
Also, I've adjusted the scale. I wanted precise control around the zero mark, so I could (a) define a small "dead" area with no correction at all, and (b) have 0.5psi spaced EC points to tune. It seems to work well.
-snip-
Rich

I went with my correction setup, because I noticed that with the stock correction settings it had a tendency to 'search' for the target; constantly going over target and under target. From what I could tell it was because the correction amount was relatively large.
I still get some fluctuation (usually in the 0.5 to 1 PSI range) with my setup, but the curve between pulls is nearly identical. It gives me, what I perceive to be, a more consistent curve, with more consistency in hitting the boost target and the ability to make corrections to reach target even w/ altitude/weather/air pressure deviations...






