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

Ends in --- --- ---

Practical Reflash Tuning: Step 3: Configure Base Tune File

Watch This Course

$229 USD

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 3: Configure Base Tune File


00:00 - For the next step of our process, we're going to go through and essentially build up our base map, making some of the key changes that we know that we're going to want to make so that we're ready to flash this into the ECU once we get the engine up and running.
00:13 Albeit we will still be performing some testing with the existing tune, this is important because it's a twofold process, first of all it'll allow us to see any discrepancies between the reported mass airflow and the actual mass airflow and we're going to correct that in the next step of our process and of course we also want to perform a base run on the dyno so that we've got something to compare when we start making our tuning changes.
00:40 Let's dive into OLS now and we'll have a look at some of the maps that we've got available and what we're going to change for our base setup.
00:48 So we really want to go through the logic flow of the controller in terms of how it converts the driver's pedal position into a relative cylinder fill or load in other words.
01:00 And this really starts with our driver requested torque tables which are here, we've got three of them.
01:07 Now we'll click on one of these so we can have a better look at it and double click and we'll open it up as an actual table.
01:13 So how does this work? So on the horizontal axis, pretty clear, we've got engine RPM, nothing particularly extraordinary there, pretty simple to understand and on the vertical axis here, we've got our driver's pedal position so this is just a torque request table, often in tuning Bosch MED controllers, you'll hear this referred to as driver's wish.
01:37 Basically just converts our pedal position into a requested torque.
01:41 Interestingly the numbers in the table, the Z axis values here, these do represent torque but this is relative torque so a number between 0-100 which is what you can see here.
01:52 Might not seem that intuitive, the reason that Bosch do this is that this way the same controller could be used on a naturally aspirated two litre four cylinder engine or a twin turbo V8 with dramatically different specific torque values in terms of newton metres but the relative torque values can remain the same so again this is just how Bosch do it.
02:15 Now I'm not actually going to adjust these tables but I will talk through what you can do.
02:21 The important thing to note here is the values at 100% driver's pedal position which is on our left axis, all represent a 100% torque request.
02:32 So if we weren't seeing this, obviously there would be some potential in increasing these values but we are at 100% here.
02:39 What we can potentially do is make some changes in the part throttle areas of this table and this will change the feel of the throttle pedal.
02:49 It's not going to necessarily make the engine actually produce any more power when we get to wide open throttle but it will change the relationship between the torque output and the driver's pedal position so this really just becomes a personal preference element.
03:02 I would caution you to make dramatic changes here, make very small changes, just a few percent and feel out the effect of those changes.
03:11 We also do want to make sure that at a zero pedal position, we do in fact have zeros in this table.
03:18 Now you will also note, and this is quite common with a lot of factory controllers that we do have three of these tables, we can see them here.
03:26 Now we don't necessarily know how the ECU is going to decide which of these tables to use.
03:32 In this case though, if we just close down the first of those tables, we'll click on the next one and we can close that down as well, we can click on the next one.
03:41 Then we can see that all of these have 100% torque request or relative torque I should say at 100% throttle so I'm not going to make any changes to these but if you were to make changes, what I would suggest is making the same percentage changes to each of the tables if there are differences between them.
04:00 That way as we switch, as the ECU switches between tables, you're still going to get a percentage based difference between them.
04:07 Alright let's close these tables down, we don't need to make any changes but what we do need to do is go through the next part of that logic flow.
04:15 So essentially once the ECU knows what our torque request is, it needs to convert this into a relative cylinder fill or a load value which is then going to be targeting for our boost pressure essentially.
04:29 So that's done, initially with his table here which is our desired relative air charge, this has the German acronym KFMIRL.
04:40 And while KFMIRL doesn't sound particularly intuitive it is one that you will hear, it's a term you will hear, an acronym you will hear a lot when it comes to Bosch MED controllers so worth understanding there.
04:56 Let's just open this table up and have a look at this.
04:58 And how this table works is again as we can see, we've got our RPM on the horizontal axis.
05:05 This time the vertical axis is our requested torque or relative torque value so that comes from those last set of tables that I just showed you.
05:17 So essentially, and interestingly the largest number here is 96% but basically once we're requesting 96% relative torque or above, this row here, the bottom one, this will be our requested relative cylinder fill.
05:33 So this isn't boost pressure but it can be essentially extrapolated to at least get us an idea of what the boost pressure is going to be.
05:43 So if we take this number for an example here, 170, if we multiply it by 10, obviously 1700, we add 300 to that, that takes us out to 2000, that will be the absolute pressure in millibars in the inlet manifold.
05:57 Now of course we're more interested in gauge pressure so we can take atmospheric pressure of 1000 millibars off that, that gives us 1000 millibars of positive boost pressure or 1 bar, 14.5 psi.
06:11 Now again this isn't absolute but it gives us a bit of a guide as to what we could expect for our boost pressure.
06:17 Now this is a table that we will make some changes to.
06:21 It's also important to understand that this works in conjunction with another table KFMIOP which is down here, our optimum engine torque output table.
06:32 This is an inverse table compared to what we've just looked at so let's just open that up and see how that works.
06:40 So now we've got the same axis of RPM on the X axis.
06:44 This time the vertical axis here is our relative cylinder fill or engine load and the Z axis or map values here are our relative torque values.
06:56 So the important thing with this is when we modify KFMIRL, we need to make the inverse changes to the KFMIOP table.
07:05 If we don't do this, then the chances are that the ECU will go into a limp home mode or bring up a diagnostic trouble code.
07:13 Now there is a reasonably amount of tolerance for this, it doesn't have to be perfect but it's not also something that is too intuitive to set up.
07:22 So what we have done is included a spreadsheet below this module that you can use to actually automatically populate the inverse values so it takes all the heavy lifting out of this for you.
07:34 So anyway, let's head back to our first table, our KFMIRL table and we'll have a look at what we're going to change here.
07:42 So basically I'm going to lift all of these values in this 96% relative torque request area and we're going to do this from let's say 2000 RPM and just to keep everything really nice and clean, I'm going to highlight everything across here out to 6500 RPM and we'll just enter a value here of 200 so we can do that by pressing the equals key and then enter a value of 200 and that change is made so let's understand what that is going to give us.
08:14 So 200, we want to multiply that by a factor of 10, 2000, add 300 so that we're now at 2300, take away our atmospheric pressure of 1000 so that's 1300 millibars, 1.3 bar, about 19 psi, 20 psi give or take so that's about what we're going to be requesting, again it's not too specific there but it gives you an idea of what we're going to be looking for.
08:37 OK we're going to just go through here and do a little bit of smoothing and basically extrapolate the change that I've just made down further into this table just so we don't have a massive step and you can always come down here and view this table in 3D and this will give you a better idea of the shape and just like any tuning, we want to really make sure that our tune remains smooth in terms of the shape so to manipulate this particular table so that we can actually get a better view of it, what we can do is come down into the corner of the table here and we can see that the little cursor changes shape and now if we hold down the left mouse button, and we can drag the table around and get a better view so give us an idea of what we're actually looking at.
09:23 Another element here is that we can see that below the changes we've just made we can see the base shape of this table so it's always showing us what the original values are so it's good because we can get a bit of a sense of what the new shape of the table is and what the old shape was beneath it.
09:41 Let's go back to our text view and we'll go ahead and make some more changes.
09:48 The next thing I'm going to do is just a little bit of interpolation to smooth out the numbers to the left of that area that I've just adjusted and in order to do this we're going to start by pressing the delete key and what that does is it removes the highlighted area that we just had for the change that we've made.
10:05 If we don't do that, basically, let's just have a quick look here, any time I highlight an area here, we can see that that area remains highlighted so any change we make will be applied to that area so we can actually highlight multiple areas like this.
10:19 This is quite useful to a degree because we can essentially trace the path through the likes of an ignition table and make changes to the entire operating area in one shot.
10:30 However if we don't understand how this works we can end up inadvertently making changes to an area we don't want to edit so let's press delete, that will eliminate that and what I want to do now is highlight the areas where I want to interpolate and this works a little different to a normal interpolate function in that we don't want to actually highlight the ends of the area we're interpolating so what I mean by this is this will be one end of our values we're interpolating between and this will be the other one.
11:01 So I've purposefully not highlighted those, we've highlighted everything in between and we can use the I shortcut key but not always going to remember these so if we right click here, this will come up with a little box that will allow us to see how we can make these changes.
11:17 So we can add or subtract to the values, we can make an absolute changes which is how I set all of those values to 200 just before, you can make a percentage change, we can edit the values, or in this case we can come down to interpolate values.
11:31 Now there is a little bit of control into how this works in terms of where the source values are.
11:38 In this case, obviously we're just in a line and it's a single line so left to right, we'll click OK and we can see that that has made the change right there.
11:49 Let's have another look at it in a 3D view and we can see the everything's starting to look a little bit smoother.
11:55 Head back to text and what I'm going to do now is just interpolate these values up a little bit as well and that'll give us a nice smooth shape to this curve so let's go ahead and do that now.
12:12 This time of course we want to make sure that we are selecting the top and bottom for our interpolate, that's giving us a view of what everything's going to look like, if we click OK, I'm happy with that so we will click OK.
12:24 Let's just go one step further as well, we're getting down to 60% requested torque or relative torque here so we're not really too worried about maximising the torque at this point but let's just do that again and I will delete the highlighted area, highlight this area here, we'll use the interpolate key and again we're looking at top and bottom, click OK, let's have a look at this in 3D and you can now start to see the sort of change that we've made there for that table, it's got a nice smooth shape so pretty happy with that.
12:59 What we'll do is we'll go back to our text view and now we're going to use the values that we've just changed here to help us fill in the KFMIOP table, the inverse table and we'll be using our spreadsheet to do that.
13:15 So what we'll do is delete the highlighted area and now what I want to do is highlight the entire table so we'll make sure we're over to the left hand corner, 500 RPM and we'll highlight the entire table using shift and our arrows.
13:30 Once we've got the entire able highlighted, control and C will copy those values to our clipboard.
13:36 Let's open up our Excel spreadsheet here and we've got our KFMIRL table, this is essentially exactly what we were just looking at, this currently is populated with standard values from our base map.
13:48 We can also manipulate the axes values as required.
13:53 So what I'm going to do is just click in the top left corner of that table, control V and that will populate the table with our values that we've just modified.
14:02 So we can see that our spreadsheet has generated our KFMIOP table but we are going to make a change to our break points for our load axis here, we can see that the stock table runs out to 150% relative cylinder fill and we know that we've now raised this to 200%.
14:21 It's not to say that we necessarily have to have these axes match, we don't have to extend that out to 200%, the ECU will still interpolate but we can see at the moment the values that we've got in this bottom row only run out to sort of about 82% maximum relative torque request so what we can do is we can bring this value of 150%, just bring this up to 180 and see how that works out and we can see now we're in the 90s, we've got a value here just a touch over 100 so that's probably a pretty good place to be and whether we want to split the difference a little bit here, really personal preference, we've gone from 120 up to 140 so obviously an increase of 20% and then we've gone from 140 to 180 so obviously a 40% increase so I'm just going to split the difference here and enter a value of 150 and we can see that that table repopulates to suit.
15:17 Now that we've got our recalculated inverse values for KFMIOP, we're going to essentially do the reverse procedure here.
15:24 We'll highlight the entire table here, control C will copy those values and we can head back to OLS and we want to come down to our KFMIOP table and again just make sure we're in the top left corner of that table, control V and that will paste those values into the table.
15:46 And we do need to make sure of course that we make the same change to our axes here so we'll press the equals key here to set this value and we can enter a value of 150.
15:58 We can now press the delete key to unhighlight that particular cell, come down to 150, again the equals key, enter a value of 180, press enter, delete and that's made those changes to our table.
16:12 Now the colour coding that we can see here is also just worth diving into.
16:17 So any time you see colour coding like this, this is just relative to the original file and that's why it's really important to have an original file that you're working from.
16:27 Value there are red have been increased above the values in the stock file, values that are blue have been decreased and we do have this one particular cell here which is green which means that no changes have been made.
16:42 And again we can view this in 3D and we will see the values represented relative to the original file.
16:51 Now looking at this in 3D actually highlights a error that has crept in here that's important to keep an eye on and this is why I really like using a 3D view because it makes a mistake like this really really stick out.
17:05 We've got this value that drops away to zero so now that we know that that's there, let's jump back to our text view and have a look at it and we can see the culprit right here so each side of it we've got values in the 90s and then we've got this value at 0.42.
17:20 That is a result of our Excel spreadsheet and note that we had this one value that just exceeded 100% so let's head back to OLS, this particular table, our relative torque request obviously cannot exceed 100%.
17:34 So that's why that's dropped it to zero, that's no problem though, let's just press the equals key and we will set this to a value of 100%.
17:43 And delete to unmark that particular cell.
17:47 So at this stage we've dealt with our KFMIRL table, requesting more relative cylinder fill, we've addressed our KFMIOP inverse table to keep those two tables in sync with each other and we also know approximately how the relative cylinder fill is going to convert into a boost pressure number.
18:08 Our job's not done here just yet though because there are also a set of tables that will clamp or limit the cylinder fill so let's have a look at those now.
18:19 The specific tables that I'm referencing here, we've referred to as maximum relative engine load and we do have six of these, there's actually five that are used for normal operation and one that will limit the maximum cylinder fill if the engine is knocking heavily and that is the first of these tables right here.
18:41 So we can see that this table is 2D relative to our engine RPM and maximum value in here, about 143%, remembering converting this, we can multiply it by 10 so 1400, we can add 300 to that so 1700 and that's 1.7 bar of absolute pressure or 0.7 bar, around about 10 psi of requested boost pressure.
19:07 So what we're going to do is basically up these numbers to suit.
19:12 Now we're not necessarily going to be able to achieve our target from our KFMIRL table of 200% relative cylinder fill, particularly in the higher RPM, the turbo on the car is simply too small and we're not going to be able to generate that boost necessarily so we can limit that within this table, we could limit in the KFMIRL table or even if we request more than the turbo can provide we're just going to end up at basically maximum wastegate duty cycle and the boost is going to drop away anyhow.
19:43 So let's go ahead and increase the values in this table and what I'm going to do is basically start around 2250 RPM and we'll go through to 5000 RPM and we'll use the equals key here and we'll set these to 200.
19:59 Now what we can do is view this in 2D and what I want to do is just add some shape to this to keep it nice and smooth so again we'll delete the area that is marked and we can just use our arrow keys to arrow across and then by using the shift and plus keys we're going to be able to make the changes that we want and once we've got a bit of a shape forming we can also adjust multiple sites at the same time just by using the shift key, arrowing across and modifying them to suit so let's just go ahead and add a bit of shape here to this table.
20:40 Alright so we've made those changes there, let's go back to our text view and have a look and see how those stack up so maximum values through there, obviously as we already know, 200.
20:49 I've just added and subtracted a little bit just to get a smooth curve.
20:53 What we do want to be a little bit mindful of is that the connecting rods in these engines are a known weak point so requesting too much cylinder fill too low in the RPM can potentially be dangerous so we want to keep a cap on that.
21:08 We can see that right in the higher RPM, we've let those numbers basically drift back to the stock values so what we can do now is copy those values and for simplicity what I'm going to do is just copy these and paste them across all of the tables here so highlight everything there, control and C, we'll delete that to unmark it, we'll press escape and what we can do now is come down to our next table here and if we open that up, click in the top left corner and we can see as well the difference between the first table that we modified, remember this is the table that's a little bit more conservative, it is when the engine is knocking essentially.
21:49 We can see the numbers in this table are a little bit higher, we've got maximum values, 150, 152% so how you want to deal with this again is personal preference.
21:57 For simplicity I'm just going to make all of these the same.
22:00 It would be sensible of course to make sure that first knocking table is potentially a little bit more conservative.
22:08 I'm less worried about this when we are actually specifically tuning the vehicle to suit the conditions and the fuel it's going to be running on because we're not really going to require so much of a safety backstop really, if our tune is on point, we shouldn't get into a condition where the engine is knocking heavily but again personal preference as to how you want to deal with this.
22:30 So control V and will paste the numbers from that first file and what I'm going to do now is just delete and escape to close that down and we'll repeat this process for the remaining tables, just a rinse and repeat of what you've seen here.
22:50 OK so at this point we've got our charge limitation tables modified and we'll be able to see how this plays out, these may still require further adjustments once we actually start running the vehicle on the dyno and see what we're getting but this should get us into a pretty good place to start.
23:06 Interesting situation actually with these vehicles, you will find that the charge limitation tables are actually lower than the requested cylinder fill from the stock KFMIRL tables.
23:20 What this means is that if you make no other changes than just to go through and lift the maximum cylinder fill tables to match or slightly exceed the values in the KFMIRL table, you'll actually see you'll get a nice increase in power and torque with almost no effort.
23:39 The last changes we're going to make to our base map here involve our lambda targets and the MED controller has two separate sets of tables, one is driver's requested lambda and the other is lambda for component protection, it's worth just discussing how this works.
23:58 So in the background the ECU is always calculating the modelled exhaust gas temperature and when it deems that that has exceeded a preset threshold it'll switch from the driver's requested lambda table to the component protection tables.
24:13 As the name implies, the component protection tables are there to help control combustion temperature and protect the engine components from potential damage so you will see that the component protection tables typically are quite rich.
24:29 Let's have a look and see how this works and we'll start by looking at the tables for our driver's requested lambda and we'll click on our first of those here, double click on that and we can see we've got a table that is RPM relative to, in this case driver's pedal position which isn't overly intuitive, it's not directly relative to load because obviously at 100% throttle that doesn't necessarily mean that we're going to be at maximum boost pressure and an interesting aside from this, we can actually set our exhaust gas temperature threshold to a point where essentially the ECU will always operate in the component protection tables.
25:11 Let's have a quick look at the component protection tables so we can see the difference here.
25:15 We've got six of these tables, we'll click on the first one here and we can see straight away two big differences, this time the load axis is relative cylinder fill and the other element with this is that the table is actually larger or in other words has more resolution.
25:33 Interestingly as well if we actually look at the requested lambda values from this, we're in the 0.6 lambda vicinity so very very rich there and definitely it's going to protect the engine but it's also going to cost us a huge amount of power so let's head back to our driver's requested lambda tables for a start and we can see at 100% throttle here, we're sort of starting at 0.95 lambda and we're running out to about 0.91.
26:02 So quite lean and I'm definitely going to want to richen this up a little it so let's just highlight our entire 100% RPM column here and what we can do is use the shift key and the minus key and that's going to bring our values down and I'd probably like to see let's say somewhere in the region of about 0.87, going through to about 0.82 as we get to full throttle and also high RPM.
26:32 Now again we can obviously come back and modify these values as we see fit at a later point.
26:37 I'm also going to go a little bit further down here in the throttle position and basically replicate this so what we can actually do here is copy the area that we've got highlighted at the moment, control and C, let's just paste that across, control V and we don't necessarily need to be quite so rich but it is also a relatively small amount of throttle change, we're only talking 98 to 100% so let's just highlight, well we've got that column highlighted, shift and plus and we'll just richen that one point and then control C again, bring that down to 90 and control V paste that in and again shift and the plus key and we can probably lean this out quite a little bit here.
27:25 So we'll use the plus key and we'll bring that up to 0.94, dropping to 0.89, I think that's probably a pretty good place to be.
27:36 Again, we will be able to readdress this at a late point so let's highlight that entire table and control C and again what we're going to do is just copy that into our remaining tables, control V will make that change, we can escape to close that down and control V again in our top left corner of our third and final table, escape and now we can see in our 2D view here the blue lines showing the changes that we have made to our lambda target.
28:05 So this should give us some safe rich lambda targets that will be appropriate for our new boost targets, should keep the engine nice and safe and allow us to also add some more ignition timing.
28:17 Let's go ahead and make some changes to our lambda for component protection table.
28:21 So we'll bring up our first one, what we can see, again we've got these very rich targets at high RPM and high load.
28:28 Actually quite lean down here at lower RPM, not that I'm likely to see 170% cylinder fill at 600 and 800 RPM but for the sake of completeness, let's start by highlighting our column here at 170%, in fact what we'll do is we'll come back to 155% as well and up to 2000 RPM, let's set our values there using the equals key at 0.90 should be a reasonably safe point for that level of RPM.
28:58 Now from, we'll press the delete key first of all to just unmark the section we've just edited.
29:05 We'll now highlight from 2240 RPM down to 4000 RPM, press the equals key again and this time let's set those values to 0.84 and then actually from 4000 RPM and above I'll make this change, we'll set the values to 0.78.
29:30 Think that's probably going to be a reasonably good compromise, what I might do is just a little bit of smoothing here with these values and we'll just highlight the 3000 and 3520 RPM rows and again shift and minus and we'll just pull a little bit of fuel out of there so basically some nice safe targets which aren't exactly ridiculously rich like what we've seen from the stock map.
29:57 What I'm going to do now is just clean up the rest of this table a little bit, just really around these excessive rich values so 140% cylinder fill we definitely shouldn't need to be at 0.72 so let's go ahead and address the rest of this table, I'll just be highlighting the areas I want to change and either directly entering or using the shift and plus or shift and minus keys that you've already seen.
30:31 Alright we've got a table now that's not so excessively rich but still safely so and again what we're going to do is just for simplicity here, we'll copy this particular table that I've just modified and I'm going to paste it into the other tables so highlighting the table there, control C, escape to close that table down and we can simply double click on our next table, control V and that will paste those values into the table, again escape and we'll go through and complete the remaining tables.
31:08 So at this point we've made the basic changes that we want to to set up our map for our new calibration.
31:15 We're not going to send this to the ECU at the moment, flash it into the ECU but what I will do before we move on is save it and to do this we can use the little save icon here and because we've made changes here, this will prompt us to enter a description for the new version.
31:30 Any time we're making changes, we're going to create a new version of the file.
31:34 So in this case I'll just call this stage one, I know it's not very imaginative but that's essentially what we're creating here, a basic stage one calibration to suit an otherwise mechanically stock vehicle.
31:47 We can click OK, that will save that file and we're ready to move onto the next step of our process.

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?