×

Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

Practical Reflash Tuning: Step 5: Optimising the Tune

Watch This Course

$229 USD

-OR-
Or 8 easy payments of only $28.63 Instant access. Easy checkout. No fees. Learn more
Course Access for Life
60 day money back guarantee

Step 5: Optimising the Tune

29.35

00:00 - Now that we've covered our MAF scaling, we an get into actually optimising our tune and the first thing we're going to do here is start by exporting our stage one file, remembering we have made our MAF calibration change to that file as well, we're going to export that and then flash that into the ECU.
00:17 THen we can assess the effect of all of those changes we made earlier in this process so let's jump into OLS and see how we can do that.
00:24 So we do have our stage one calibration open now and what we're going to do is use our little export icon here, we can click on that and now we need to choose the device or what wer'e going to be using for flashing this into the ECU and make sure that we are exporting it in a correct file format.
00:46 So we can see here, we have our bFlash file master selected and we can click OK.
00:53 Now actually before we click OK, we can see here a little bit of a warning about the checksum status.
00:58 The checksum can be corrected by OLS, in this case most of the popular aftermarket flashing tools will actually do a checksum correction.
01:08 Either way, the checksum correction does need to be done, otherwise we're going to end up with an ECU that's unresponsive and basically won't start so in this case, we don't need OLS to do that so this warning is fine so we'll click OK.
01:22 And that will then ask us to give a file name.
01:26 So it automatically assigns a file name which does include the file that we've been working on in OLS.
01:34 In this case, what I'm going to do though is just choose the existing file name and instead of stock what we'll do is change that to stage one.
01:43 It is still OBD2 so we can click save.
01:47 Now what we can do is head across to bFlash and we can load that file in and flash it into the ECU.
01:55 In order to do this what we're going to do is come up and use the control unit selection icon.
02:02 We can come back to our history because we've already used OBD2 here so that's nice and easy and then we're going to of course use the write icon in the toolbar and we're going to click on write file.
02:14 bFlash will then ask us which of the files we want to flash in and of course we're going to choose our stage one file.
02:21 Before we click open we want to key on and we can click open and the process will continue.
02:28 This is about a six minute process so we will jump ahead.
02:31 Again, normal warnings with flashing, we want to make sure that our laptop is connected to power and we want to make sure that the state of charge of the vehicle battery is adequate so we'll let our flash complete and we'll come back once that's finished.
02:46 Alright at this stage our first flash is complete there, we've got our stage one file now flashed into the ECU.
02:53 We can get everything up and running and I'll allow all of our heat soak to dissipate, running the car for a few minutes before we get into our first dyno pull.
03:01 OK we've got rid of our heat soak, everything's at a normal operating temperature so we're ready for our first run.
03:07 If we jump into our bFlash software, we've got that set up with our logging parameters and we're going to start our log file just before we start our ramp run so let's get our first ramp run underway.
03:19 We will be overlaying this run with essentially our stock baseline run as well so we'll straight away be able to see the effect of the changes that we have made so far.
03:49 So straight away we've seen a really significant gain in our power, we're now up to 243 horsepower and overlaying that on top of our original file we can see that we've made much more power and torque everywhere.
04:02 Let's save our log file though and analyse that in MegaLogViewer HD and see exactly what's going on.
04:09 Alright so looking at our log file, first of all what we want to do is have a look at our load and see how well that's tracked our new target.
04:17 So looking at our green trace here, our load we can see that this point here where it's essentially peaked, got a value of about 199, let's call that 200, that's close enough.
04:28 As we can see as we go through here, drops down a little bit 192 and then by the time we are getting out of the throttle around about 6500, we're down to about 158.
04:39 So always a good idea to start by just comparing that to what we're requesting to let's head back into OLS and just get a refresher with the changes that we made.
04:49 So you'll recall that within WinOLS there's two ways that we were requesting more load or more relative cylinder fill, the first of these is from the KFMIRL table and remembering that at a 100% or 96% and above, relative torque request, we've got a relative cylinder fill of 200%.
05:12 However, this is also overridden by our maximum relative engine load table so if we click on one of those, you'll remember for simplicity we made all of these the same.
05:21 We can see that the value is essentially 200% from about 2250 through to about 5000 RPM or at least within reason and then we can see by 6600 RPM we're down to 155% so this actually matches reasonably closely with what we're getting.
05:41 Now what we do from here, if we want to try and make a little bit more boost, we could raise these values.
05:49 I'm quite comfortable with the maximum values we've got at the moment.
05:52 I also know from experience that we're unlikely to be able to achieve significantly more boost or relative cylinder fill at higher RPM, we're really just running out of turbocharger and increasing the request here or the maximum values here is not actually going to net us a gain so for a conservative stage one tune I'm actually really happy with the targets that we've got in there and as we can see from our log file we are pretty closely matching those values so everything's working quite nicely there.
06:22 Let's jump back into our log file and have a look at our lambda.
06:26 Looking at our log file here we can see at the point that I've highlighted here, about 2800 RPM we've got our maximum relative cylinder fill of 200% there and we can see that our target lambda is 0.82 and we're achieving that.
06:41 We can see though, further along in the log file, we do actually start targeting 0.77 so probably a little bit richer than we need to be, given that our relative cylinder fill is now starting to roll away and we are also running a direct injected engine so typically we can run leaner targets than we would with a normal port injected engine so let's have a look in our tables and see what we can actually learn from that so we'll switch back to OLS.
07:09 Now coming through first of all to our driver's requested lambda table and this is the first of the tables that the ECU uses relative, you'll recall, to our driver's foot pedal position and we can see here that we're essentially targeting 0.82 at wide open throttle right the way through or at least from about 2000 RPM and above.
07:31 We're obviously targeting or actually achieving a much richer target than that, 0.77 so this is a hint here that we are most likely operating in our lambda for component protection tables.
07:43 We'll jump to those and have a look.
07:45 At higher load, higher RPM, we were operating at around about 157, 158 and obviously as we know, in the sort of 2500 RPM area, we're actually off to the right of this at about 200%.
07:59 The ECU will interpolate so there is no need to actually change our break points to match this, as long as we want to achieve the same lambda targets from 170% load to 200% or wherever we want.
08:12 Alternatively, absolutely personal preference here, you could change the break points if you want so again just depends exactly what you're trying to achieve.
08:20 As a point here, if we do want to adjust the break points, we can just come up to the break point that we want to adjust, press the equals sign and let's say we wanted to make that particular line 190 and we can click OK and that change is made.
08:36 I will mention here, I entered a value of 190, we can see that we've achieved a value of 189.75.
08:43 We're splitting hairs but this comes down to the raw values as well as the precision that we're working with so not always going to get exactly what we request but we're going to be really close.
08:54 Control Z will undo that change because I don't need to make that.
08:58 But what we can see here is that absolutely we are operating with the same lambda targets that we have in our component protection table so this is a pretty good indication here that we are operating in lambda for component protection.
09:13 So 0.77, again little bit richer than we really need to be running here so I am going to come through and make a little bit of a change here and from 3000 RPM, we're at 0.80, not too worried about that but let's just highlight the values here that are 0.77 and what we'll do is we'll make those 0,80 as well.
09:36 So that's just leaned that out a little bit, it's still nice and safe and what we're going to do here is again just make all of these tables for the sake of simplicity the same, so highlight the entire table using our shift key and our arrow keys, control C, what I'm going to do now is just use control V and that will copy those changes into our other maps so let's go ahead and get the remaining maps complete now.
10:01 Alright so we've made our change to our lambda targets and we may need a little bit of a gain in power from that.
10:09 What we're going to do now is start looking at our ignition timing but before we actually make any changes to our ignition tables, what we want to do is just log and see whether we've actually got any knock feedback going on.
10:21 And this is an area where we have a little bit of a peculiarity with this controller.
10:27 Interestingly with the bFlash unit which we've been using for the logging so far, this does not actually allow us to log any knock retard parameters so for the remainder we'll be switching to another product called VCDS from Ross-Tech and this does allow us to log the individual knock retard parameters so this gives us a bit of an insight into what's going on with the knock control strategy.
10:49 It's a bit unfortunate that we can't do this with one platform.
10:53 While we could have done all of our logging with VCDS, this will not also allow us to log short term and long term fuel trims so we're a bit torn here.
11:03 As it's turned out, due to the way we've flashed the vehicle and run it, the long term fuel trims really haven't been a consideration but we didn't know that until we actually got stuck into it so that's why we are using the two separate products here for our data logging.
11:18 So what I'm going to do is we'll save this particular file, I'm going to leave this named as a stage one tune.
11:24 You could of course make variations as you go along but I don't find that too necessary, we're working on an iterative process here and just creeping up on our ideal tune so I'll save this and we will export this as you've already seen at the start of this module and we'll flash this into the vehicle and we'll come back when we're ready to do another run.
11:47 Alright we've got ourselves back up and running here and we're going to be logging of course now with VCDS as I mentioned and we'll just go through that particular process so what we want to do is choose the advanced measuring values tab or box here and then we need to add the values that we're interested in logging here.
12:06 Again we want to keep our logged values to a minimum just so that we have a high enough logging frequency and in order to enable that as well we do want to make sure that we click the little turbo box here that will increase our logging speed.
12:21 So we need a reference here so that we know where abouts we're operating inside the table so of course we're going to need to have engine speed and engine load being logged.
12:32 The other parameters we want to log here will be our ignition retard.
12:37 So what we can do here is if we know the name of the parameter we want to log we can simply enter it, or alternatively you can scroll down through here until you find it, in this case timing retardation cylinders one through to four is what we're after so if you did know that we can enter that up here and we see that that is available so we will add all four cylinders.
13:00 And looking at our through put here, our sample rate, we're looking at about 10-11 Hz so again a little bit marginal but manageable with just these six parameters so let's get ourselves up and running now and we'll perform another wide open throttle ramp run, logging this so we can have a look and see what our knock activity is doing and this will guide us as to whether or not we're going to be able to creep a little bit more ignition timing into the engine.
13:27 In terms of the changes since our last run, obviously we have just marginally leaned out the air/fuel ratio target.
13:33 This may result in a small increase in power but I wouldn't be expecting too much so we're not really expecting a power change for this particular run so let's get the run underway and see what we end up with.
14:00 Alright so we can see our power there, 242 horsepower, 180 kW at the wheels so really within the realms of run to run variation from our last run, let's load up our log file into MegaLogViewer HD though and get a little bit more insight into what was going on with our ignition timing.
14:18 Alright so looking at our log file inside of MegaLogViewer HD we can see in terms of our green trace at the top, our load looking very much like our last run, exactly what we'd expect.
14:29 What I've done here is I've added in our timing retardation cylinder one, two, three and four and a group two here.
14:36 We can see for the most part, everything's looking great here.
14:39 However, we can see at this point here we do see our timing for cylinder four see 3° of negative retard and this indicates that the ECU has responded to some level of knock.
14:53 However, if we look at where this has occurred, it is actually past the end of our run as the dyno has been clamping and pulling the engine RPM back down so I'm not necessarily too concerned about this, what I'm really looking for is that during the actual ramp run area, we do have no knock present.
15:12 So this is an indication that we can try creeping a little bit more timing into this and just see how it responds.
15:18 The fact that we've got this timing retard come in as the dyno has clamped the car does suggest that we are probably there or there abouts in terms of the amount of timing the engine will take so I'm not expecting to be able to go too far here but for the sake of completeness, let's just have a look and see how we can do that.
15:37 So if we start by looking about where we're running in the map here, so we can tell where we're going to be making these changes, we know that looking at our load, sort of starting with our load ramping up to about 188, peaking around 200 and then as you already know, dropping back to about 155% cylinder fill so let's jump into OLS and make some changes here.
16:01 Alright looking at the first of our ignition tables, and we do know that we've got six of these tables, and if I just cycle through these as well and just take note of some of the values in the area that we're running, we will see that there are variations, we don't necessarily know specifically which of these maps we're on so our first map here, let's have a look at our second map, and we can see that we've got a value at the moment where the cursor is of 15°, go back to our first map, 14°, let's have a look at our third map, 14°, 14°, we can see there are some variations here and yeah we don't know specifically which of these maps the ECU's going to decide to use so there's a couple of ways we can go about this.
16:43 We can of course use our logging to help dial in and figure out which of these maps we are operating on, just by comparing the logged ignition timing values to the numbers in these tables.
16:54 However what I'm going to do here is make the same magnitude of change to one table and then copy that magnitude change to the others so I won't be setting the tables all identical, but if we add 2° to one table, we'll be adding 2° to another.
17:10 Of course the other option is to make all of those tables the same.
17:13 This can erode in some cases some of the built in safety precautions with some of the tables, maybe being more retarded than others so again no clear cut black and white way of how we must modify these tables, comes down to understanding what the tables are doing, how they're being used and then making your own informed decision about how you'd prefer to make these changes.
17:34 So now that we know what's going on here, let's go back to the first of our ignition tables and we know that we were running around about 200% relative cylinder fill through the mid range and falling back to around about 157 at the top end so essentially we're taking a run through this table that sort of looks probably something a little bit like this.
17:56 Obviously the values here, we're exceeding 170% but that's not necessarily a problem so what we'll do is make some across the board changes here and make them relatively straightforward so let's just highlight 6500 RPM here down to 2500 RPM and the areas that we are actually operating.
18:16 So 155% load and above and what I'll do here is just add 2° timing.
18:21 You can do this by using the shift key and just pressing the plus key twice.
18:26 Now that we've added that timing in here we just want to have a look at the rest of the table and make sure that we're not introducing any large steps or anything that's going to maybe affect how smoothly the engine is going to operate.
18:40 In this case everything's looking reasonably good.
18:43 However for the sake of completeness I will make a couple of other changes here.
18:47 Press delete to unmark the area that we've just changed, otherwise if we highlight some more areas, we're going to end up changing those as well so what I'll do here is at 2500 RPM and 3000 RPM, 140% load, I'm going to use the shift and plus and add a degree in there.
19:04 Again I'll press the delete key here to unmark those cells and we'll come across to the 2250 RPM column, I'll highlight those three cells there, again shift and plus, delete will add a degree in there so we've got a nice relatively smooth shape there.
19:20 Now what we want to do is essentially copy that magnitude of change that we've just made so that we can apply it to our other maps so we can do this by hovering over the map and right click, we want to come down to copy map properties.
19:34 This gives us a lot of control here and we do need to be careful.
19:38 So this is useful when we are defining the map so obviously we're not doing that at this point so this will allow us to copy the description of the axes as well as the scaling information.
19:47 In this case we don't need to do that, it's all done, so I've just made sure that all of the boxes here are unticked so essentially it's going to do nothing.
19:55 On the right hand side we can tell WinOLS how to deal with the data and what I've done is I've clicked the little contents box here so it's going to actually copy the values and what it's going to do is copy differences.
20:08 So we can do difference, a percent change or an absolute change.
20:12 In this case if I've added 2° to my map, I want to add 2° to the remaining maps but again this is personal preference, you could equally make percent changes as well.
20:21 If we go absolute, then this is going to make all of the maps the same which is as I mentioned, not what I wanted to do.
20:27 Then we have to define what we're doing here, in terms of where this data's coming from, the X axis, the Y axis or the map, in this case we are taking this from the map data, we'll press OK, so that's copied that now.
20:38 What we'll do is we'll open our second map and control V and you can see it makes the change to this map.
20:46 What we can also do in the top right hand corner we've got some control over how we view this table.
20:53 So what we can do, we can see that the red values, we know that that means that they have been increased over the stock value and if we hover over the little delta icon here, we can see the delta or change from the original, of course exactly what we made to our first map.
21:10 The other aspect here is if we come down the bottom we can view this in text which we're doing now, 2D or 3D, we'll click on 3D and this gives us a sense of the shape of this table which even in stock form, you can see, is a little bit erratic so let's just click down here in the bottom corner of the graph, 3D graph and what we can do is hold down our left mouse button and manipulate this around so we can actually see what we want here and we can see the relatively small area where I have made this change so reasonably small change here in the big scheme of things but we don't want to go too far with our timing.
21:45 Let's continue and we'll apply that change just using control V to our remaining ignitition timing maps.
21:52 Alright our change has been made there so what we're going to do is save this file and export it.
21:57 Now I didn't show this part when we made our last change to our lambda target but if we come to our little save icon here and click on this, it's going to ask us if we want to create a new version.
22:10 So last time I didn't, and again this is really personal preference, you could absolute create new versions with each change you make.
22:17 This will make it easier to roll back if you don't like a particular change.
22:21 In this case I can always just compare back to the original file because that's the only change I've made to these ignition maps so if I don't like the change here, it's really easy just to load up our original file and basically copy the original ignition timing values and paste them back into these maps.
22:38 So again personal preference so I'm not going to create a new version here, this is now saved.
22:43 What we're going to do is export this and again we're exporting in the bFlash file configuration, we'll click OK and it'll ask us to give the file a name.
22:55 Again we can rename each of these separately but I'm just going to write over the top of my stage one file so we'll save this, we'll flash it in and we'll get it back up and running and see the effect of that change.
23:07 Alright we're back up and running on the dyno, we've got rid of our heat soak and we're ready to perform another run.
23:13 We will be overlaying this on the top of the last run and we should be able to see in real time if we've picked up power and torque as a result of that additional timing so let's get our run underway now.
23:40 Alright so what we could see there in real time during that run is we did see a bit of a gain in the power and torque through the mid range but further into the run we actually lost a little bit of power so suspicious that we may have gone a little bit too far and maybe seen some knock retard but let's open our log file and see exactly what we've got there.
23:59 Looking at our log file here, we can see that we do have some knock retard going on here on two cylinders.
24:05 This green trace here which starts at about 5000 RPM, we're pulling 3° out of cylinder three and a little bit further through the log file, cylinder two, the red trace here is also pulling 3° out.
24:16 So this indicates that we have gone probably a little bit too far here with our timing, we're really walking a tightrope with our timing which I did suspect given the timing retard that occurred previously as the dyno was pulling the engine back down.
24:32 So let's have a look at what that results in if we overlay our graphs on the dyno and at the moment we've got all of our graphs being displayed, I'll bring in tune two as well.
24:45 And we can see we've got a really good gain, all things being considered, compared to our baseline run in blue, maximum in our blue run was about 211 horsepower and we can see that our green run there, 244 so we've picked up 33 horsepower give or take which is a significant gain considering there's no hardware modifications to this car, it is only tuning changes.
25:11 Let's just compare the two runs where our only change is our ignition timing though so we'll get rid of our other runs just to make this a little bit cleaner.
25:20 And looking at this we can see our white run, which is our last run with the additional 2°, we picked up a really small amount down sort of 2500, through to about 3500, 4000 RPM, we're talking a horsepower or two here and there but not a massive amount.
25:35 There is a reasonable gain here through around about 4300 RPM, we can see at that point, 212 vs 207 so we've picked up around about five horsepower which is definitely power that we'd like to have.
25:48 However we get to around about this point here, 5000 RPM, we can start to see that white trace for tune four, our latest run, start to dip below our green line and that is as a result directly of our ignition retard occurring so in this case, the real solution here is to simply keep our tune conservative, we're going to go back and we're going to remove that timing.
26:10 Hasn't really netted us a significant gain for the most part and in the higher rev range, we have ended up as a result having some knock occur.
26:20 Now if you want to get granular with this of course, in that sort of 4500 RPM vicinity, you could choose to retain some of that additional timing but in our case here for a street driven car, the gains really don't warrant the additional risk where we know that we're running that close to the line in terms of knock sensitivity so let's dive back into OLS and see what we can do to rectify this.
26:44 So we've got our ignition timing changes here visible of course and again we could choose to be a bit more granular but I'm simply going to remove the timing change that we've made.
26:54 Really easy way to do this is just to load up our original file, so you can do this by opening our project here, we'll come into the one that we are working with and load up our original file.
27:05 Alright so we've got our timing table open here so what we can do is simply highlight the entire contents here, control C to copy those and this time we'll come back up to our stage one ignition timing map, control V and that will paste those values in, delete to unmark them, our job's done for our first table.
27:24 Now of course because the contents of each of these tables is slightly different, we will have to do this for each of our individual tables and the reason that we can't use the map properties and copy the difference like we did in our last example is of course because in our original table there is no difference, these are the original values so a little bit more work involved here but let's go through and we will copy the remaining tables.
28:00 Alright so we've copied all those original values back into our six ignition timing tables and what we can do now is just scroll back down to the original file that we've opened and we can use the little X here to close that down.
28:12 So we've now got what should be in our case our final iteration of our map so what we want to do is come and use the little save icon.
28:20 And it will again as usual ask us if we want to create a new version for this and I'm going to click no I don't want to create another version so our job's done there.
28:30 What we're going to do then is use the export icon and we'll again of course export in the bFlash format and we're going to copy over the top of our stage one file and click yes.
28:42 So now we're ready to flash our map back into the ECU, this should just simply take us back to where we were for our previous run.
28:50 Of course we'd run the car on teh dyno again and just confirm that that has got rid of that knock but you've already seen that process so I won't repeat it here.
28:59 At this stage, I'm comfortable that we've got our calibration where we want it, of course depending on the modifications to your own specific vehicle, you may want to make more changes than what we've done here but the process that I have demonstrated is the process that you'll use irrespective of the modifications you've made.
29:17 From here we can get the car off the dyno and perform our final step out on the road or the racetrack to confirm that our tune is doing everything that we saw here on the dyno.
29:27 If you do have any questions on this worked example, please feel free to ask them in the forum and I'll be happy to answer them there.

We usually reply within 12hrs (often sooner)

Need Help?

Need help choosing a course?

Experiencing website difficulties?

Or need to contact us for any other reason?