×

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

Ends in --- --- ---

Practical Reflash Tuning: Step 4: MAF Scaling

Watch This Course

$229 USD $114.50 USD

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

Step 4: MAF Scaling

31.30

00:00 - The next step of our process is to go through and rescale our mass airflow sensor as required and also adjust our calibration if we have switched injectors.
00:10 In this case as we already know, we've got a completely stock engine so we are running the stock injectors and we do have the stock mass airflow sensor.
00:18 That being said, even in stock form, we do quite often see some discrepancies in the mass airflow sensor calibration and this shows up when we're starting to look at our short term and long term fuel trims.
00:30 Essentially those are making adjustments for any error that exists between the MAF calibration or the mass airflow sensor value that the ECU is receiving and the actual airflow that's going into the engine.
00:44 In the case of the Volkswagen Mk5 Golf and the MED 9.1 controller these actually run in continuous closed loop operation meaning that they have a proper LSU wideband sensor and regardless whether we're idle, cruise or wide open throttle, the ECU is always looking at feedback from the short term and long term fuel trims in order to make adjustments and get us onto our target.
01:08 The actual sort of combined trim total that I'm always looking for here is about +/- 5% as a bit of a guide.
01:17 That's going to be acceptable, we're never going to see everything sitting absolutely perfectly at zero and once we start getting out beyond about +/- 5%, that's where I'm really going to start looking at making some corrections and adjusting our calibration to suit.
01:33 Now let's dive into OLS to start with and we've got here our MAF correction map, we can see that down here and we can see the axes, in this case interestingly the load axis for this is not our mass airflow sensor, mass airflow in grams per second, it's actually our calculated load or relative cylinder fill and then we've got of course RPM on our horitontal axis, numbers in the table, the Z axis values are relatively self explanatory, value of one is making no correction, values below one are removing fuel and values above one of course are adding fuel to correct any potential error.
02:15 So we can see at the moment with this stock calibration, values are relatively close to one, +/- about 3-4% is about the most trim that we see or correction we see in this table.
02:28 Now let's talk about how we're going to gather the data that we need and we're going to do this in two separate ways with two separate log files, we're going to log some data under steady state conditions and because I'm on the dyno here, I've got a lot of control over how I'm going to do this, we'll start at around 1500 RPM light throttle, low load and we're going to log data and slowly and smoothly open our throttle until we're getting up to around 120, maybe 130% load.
02:57 Then what I'm going to do is increase our RPM so we come up to 2000 RPM, we'll do this in 500 RPM increments, then I'll slowly reduce my throttle opening and fill in the next column.
03:07 We'll do this out to 4500 RPM and that's going to cover the majority of the cruise, part throttle and transition areas of our mass airflow sensor scaling.
03:18 Beyond this, we're also going to do a wide open throttle ramp run and that's going to give us two features, first of all we're going to get our baseline tune because of course at this stage we haven't flashed our base map into the ECU so that'll give us a baseline calibration so that we can compare our tuning changes as we go further into this with how the car was in completely stock form.
03:41 And it'll also allow us to gather that same data under ramp run conditions, we're looking at our short term and our long term fuel trims.
03:47 We also need to talk about how I'm going to be gathering this data.
03:51 So as we go through the worked example, we're going to be using two separate devices for our logging, I'm going to be using bFlash for this particular section of our course and then we're going to be using VCDS as we move into optimising our tune.
04:06 The reason for this is that the PIDs or parameters that we've got available to log are different between the two devices and I don't have all of the parameters available within one device so unfortunately we're going to make this a little bit more complex as a result.
04:21 However I'm going to be doing all of the log analysis using MegaLogViewer HD and this means that irrespective of how you're actually gathering your logged data, you'll still be able to follow along and it'll all look exactly the same.
04:35 So let's consider how we need to drive the car, I've already mentioned the fact that we need to be nice and smooth with our throttle inputs and the reason for this is we want to avoid sharp throttle inputs that are going to result in tip in or acceleration enrichment or deceleration enleanment, these can influence the momentary short term and long term fuel trims and basically make everything look worse than it actually is.
04:59 The other element that's really important is to make sure that the engine is at a normal operating temperature and also make sure that it isn't suffering from heat soak before we start gathering data.
05:10 On the dyno here I've got a lot of control so this is relatively straightforward but particularly if you are tuning on the road or a racetrack, it's very common to come back to the pits or stop at the side of the road, check your data log, maybe make some tuning changes and flash that into the vehicle and during this time the bonnet's closed and we've got a lot of heat in the engine bay and everything becomes heat soaked and it's going to take maybe a minute or two of driving under normal conditions to get airflow through the engine bay, get rid of that heat soak and get us back to normal conditions.
05:39 We want to make sure that we're doing that so that we're actually gathering realistic accurate data not data that's being influenced by that heat soak so these are things that we do need to keep in mind.
05:51 While I will be demonstrating this on the dyno, the process is still absolutely achievable out on the road.
05:57 So let's head into bFlash and we'll have a look at our logger setup.
06:01 Alright so we've got our logger set up here and we can see that we are already connected to the vehicle and we've got the channels that I am logging here being displayed, we've got our intake air temp Not specifically too essentially but does give us an indication and right now you can see exactly what I'm talking about here, 59°C, we know we are heat soaked, we'll have to be mindful of this before we start logging.
06:24 Next two parameters we've got our measured lambda which is the one to the left that's moving around very slightly and then our commanded or target lambda.
06:32 We've got our absolute load value, so that corresponds to the value on that Y axis of our MAF correction table.
06:40 Then we've got our long term fuel trim, can see that's sitting at a fixed -0.78 at the moment and this is probably not going to change as we go through this particular module.
06:52 Reason being that this vehicle has been flashed recently so the long term fuel trims haven't had a chance to update.
06:57 If you're dealing with a vehicle that has been running for some time, then that's likely to be a different situation.
07:04 Having said that, we've got our short term fuel trim here on the right hand side, that's sitting at or very very close to 0% so obviously at our idle here you can see that our RPM's 750, everything's looking really good.
07:15 Got spark advance here and our throttle position which aren't typically too essentially for what we're doing here, interestingly with these older controllers we do need to be mindful of the number of parameters we are logging because we can see up here we've got nine channels being logged and the current logging frequency is only 11 Hz which is pretty marginal.
07:35 I definitely wouldn't want to see this drop down below about 10 Hz and that just simply means that at 10 Hz, we're getting only 10 samples per second and with some of our faster moving parameters, we can lose a lot of detail if our logging rate falls much below that, particularly if it's getting down to sort of 3-4 Hz, that's just simply not going to give us good quality data so it's always important to make sure that we're logging the minimum number of parameters so let's have a look at how we can get rid of, in this case we definitely don't need our spark advance and we don't need our intake air temperature so we'll click on the plus sign on the right hand side and we can see all of our parameters listed here.
08:12 If we come down to our low temperature and we can see that gives us access to our IAT, we'll untick that little box here and then we come up to our ignition, we've only got one channel here so we can just untick that box and we'll update that list here and straight away what we can see is that gives us a nice little boost in our logging frequency, we've gone from about 11 Hz up to about 14 to 15 Hz so it's still marginal but it's definitely much better.
08:41 Alright what we'll do now is get our fan up and running, we'll get our engine running on the dyno, we'll start it at 1500 RPM and I'll give the engine time for that heat soak to dissipate.
08:51 Alright we've got our temperatures under normal conditions now so what I'm going to do is come across here and click on the little start logger symbol or icon, we'll click OK.
09:01 That's going to start our logger so it's important to make sure we don't start the logger until we've got rid of that heat soak, just to avoid those problems I've mentioned.
09:08 We are sitting at 2000 RPM right now so what I'll do is I will just bring ourselves down a little bit here, down to about 1500.
09:20 And we can see while I'm doing this, the short term and long term fuel trim's still very much within our range that we're going to be happy with so what I'll do now is slowly increase my throttle opening and we'll bring our throttle up to a point where we've maybe got an absolute load value in the range of about 125%.
09:56 Because we are so low in the RPM here, that's about as far as we can get, about 116% so what I'll do now is just bring our RPM up to 2000, holding my throttle consistent here and now we're at 2000 RPM what we'll do is just slowly back out of the throttle and bring ourselves back down to maybe around about sort of the 15 to 20% throttle and that will get us down to the very light load area.
10:35 Alright so now what we can do is repeat this process, we're just going to be moving up in 500 RPM increments and gather as much data as we can here.
10:44 Tip to just keep in mind here is when we move into a new cell, if we see a big shift in our short term fuel trims then it's always a good idea to stay in that cell for enough time to allow the short term fuel trims to stabilise, otherwise we're not going to again be getting accurate data.
10:59 So we'll do this all the way through to 4500 RPM and we'll speed this little part of the process up now.
11:30 Alright we've gathered our data there, I'm still at 4500 RPM and part throttle and I'm going to click on the stop logger icon right now and bring ourselves back to idle.
11:41 So an important part about that, why I made sure that I clicked the stop logger button before I actually got out of the throttle is that if we back out of the throttle and let the engine come back to idle, we're going to get some overrun data where the engine may be in overrun fuel cut and it's unlikely that we're going to get good lean data in that overrun area, that can influence our results so it's always a good idea to make sure that we start and stop the logger when we're actually under conditions that we want to gather than data.
12:09 So what we'll do now is we will give this file a name and we're going to call it MAF calibration steady state and we'll save that particular file.
12:18 Now what we're going to do is repeat that process doing a ramp run, so we'll get our dyno set up, we're going to do a fourth gear ramp run here and again we want to start our logger just before the ramp run and we'll finish it at the end of the ramp run.
12:37 Alright we've again got our temperatures under control, we've got our engine sitting at the start point of our ramp run, we're going to go through to full throttle and I'm just going to click start our logger now and we can get our ramp run underway and again I'll be finishing this ramp run as the, I'll be finishing this log file I should say, as the ramp run concludes.
13:11 Alright so our base run out of the way there, we can see we've made 212 horsepower, 158 kW at the wheels and again I did press that stop logger just as the ramp run finished, it was starting to ramp back down and again that just avoids gathering that data where we back out of the throttle and into overrun.
13:26 Of course we are going to call this particular run our MAF calibration ramp run, we'll click save and OK, now we've got our data saved, let's see how we can analyse that and make some sense of it.
13:40 Let's start by heading into bFlash and in order to analyse the datalog we can use the little log analysis icon here in our toolbar.
13:50 Let's just load up our file, we can do that by using the open button here and we'll start with our first file which is our steady state file.
14:00 So we can see here the parameters that we are displaying, at the moment just our engine speed, we can add in our short term fuel trim there and see that moving around but again it's not a very easy way of analysing this log and again it's not that generic or generalised so we will now head into MegaLogViewer HD.
14:22 In order to do this we do need to export this file as a .CSV, we can do that using the little export icon so we'll click on that and we'll simply give it the same name and save it as a .CSV, click save and click OK.
14:39 That's saved that, we'll do exactly the same here with our ramp run file so first of all opening it in bFlash and we'll open ramp run.
14:49 Export that as a .CSV and again job done.
14:54 Now let's get those open in MegaLogViewer HD and see what we can actually work out about our MAF calibration.
15:02 Alright so in MegaLogViewer HD we've got our first file there, the steady state file loaded up and at the moment we can see at the top we've got our engine speed and our absolute load being logged, below that we've got our commanded air/fuel ratio in lambda, matched with our measured air/fuel ratio, let's just zoom out a little bit so we can actually start to see some detail of what's actually happening in this log file and once we actually get into the part where we're actually running the car on the dyno.
15:32 So we can see everything's starting to move around here, what's easy to see here is the yellow trace in our lambda which is our recorded lambda, measured lambda, this is moving around quite a bit, looks quite erratic but there's a lot of noise on that.
15:44 However when we're running with a target lambda of lambda one, under these conditions in order to make the catalytic converter operate correctly for emissions purposes the ECU will actually move the air/fuel ratio purposefully backwards and forwards across our stoich air/fuel ratio so that's why that's happening, however if we look a little bit further across here where we're actually moving into a bit of load, we see our commanded air/fuel ratio move richer and we see that cycling or noise disappear, everything's looking pretty good.
16:16 A little note with using MegaLogViewer HD, as we load these channels up or this file up initially, what it'll do by default is it will revert to scaling to the minimum and maximum values.
16:27 Not necessarily a problem, that makes sense but when we are trying to overlay two pieces of data and compare them like this, our measured lambda vs our commanded lambda, we want to make sure that that scaling is correct because if it isn't what that can do is artificially make it look like there is an error in that.
16:45 So in order to do this, if we look at the little symbol to the right of our commanded air/fuel ratio here, we click on that, we can see that if we come down to our commanded air/fuel ratio, this would typically have the little auto scale option ticked, I've already unticked that but if we come down to edit air/fuel ratio, we can see that we can set our minimum and maximums, so 0.7 to 1.1 lambda, click OK and what we can do is do that on both channels, I again have already done this.
17:14 Just to make sure we can see that's being displayed here, make sure that both of them are the same and that way we're getting a really good indication here and we can in fact see that everything looks like it is overlaying quite nicely.
17:26 Below we've got our short term and long term fuel trims and as already discussed, our red long term fuel trim's just a flat line there at -0.78 so for all intents and purposes we can just about ignore that.
17:38 If we look at our minimum and maximum values here for our short term in green, we can see we've hit a maximum of 10%, we can see that that's occurred in this position here, minimum of -4.6 so other than that spike up to 10% we're actually not too far out of the ballpark but it's really difficult to analyse a lot of data like this just using a time graph so I like to use a histogram for that and we'll look at how we can use that histogram but before we do that we need to set up a user channel or math channel to give us our total fuel trim because we really want to know what our combined short term and long term fuel trim is.
18:20 So coming up to our calculated fields here, we can see if we come down to custom fields, I already have this channel being generated, I've called it total fuel trim but let's just have a look at what that is, we can see the formula is shown here and it is simply our long term fuel trim for bank one, plus our short term fuel trim for bank one, we can click edit and make a change to that as we see fit but it's a very simple math channel, if you're starting from scratch, you'd come up to calculated fields, custom fields and then simply click on add and then make that channel for yourself.
18:51 So now that we've got that, we can come down here and choose that total fuel trim channel and that will load up in there as well.
18:59 We can see that that is essentially overlaying directly on top of our short term fuel trim because for all intents and purposes, it is the same given our long term trim is remaining constant.
19:10 OK let's move over to our histogram and table generator and we'll talk through what we've got going on here.
19:17 So this allows us to log a large amount of data and basically average the data and put it into bins so we can analyse it and make use of in a bit more detail.
19:28 So what I've done here is I've set the table up to replicate the break points, the number of break points and the actual break points for our math correction table from OLS, let's head back to OLS and just refresh our memory with that.
19:43 10.5 down to 171% and then 600 through to 6520 RPM, this is a 14 x 14 table so let's have a look in MegaLogViewer.
19:55 In order to adjust this we can see we can choose our rows and columns and resize the table, I've already of course gone ahead and done that.
20:02 And if we click in the little icon on the bottom left corner of the table, this will allow us then to go through and adjust these break points to match.
20:10 Now strictly speaking it's not essential to do this but what this does mean if we're going to the trouble of making our break points match our table, what this means is that we can then copy the data, the trims directly into the table and know that we're doing this into the correct spot.
20:26 Let's click close and let's have a look at the actual data that we're using.
20:31 So if we come up here we can see the X axis is engine speed, the Y axis of course is our absolute load and then for the Z axis I'm using that math channel that we've just looked at, our total fuel trim.
20:44 Now the colour coding of this table is also important because the colour shows us essentially how many hits we've got in a particular cell, basically how many data points we've got for that particular cell and this allows us to basically decide whether the data is trustworthy or whether it probably is better off ignored and in this case we can see here if we hover over any of the cells, we can see the hit counter's being displayed so in this case we've got 429 individual samples for that cell.
21:15 However if we come up here to one of these cells we've really only just glanced into there, 141, 117, not too bad but now we're getting 86, 99, so we can basically judge based on the hit count whether we're going to take any notice of the data or not.
21:34 Now straight away looking at the data, everything is pretty good, we're seeing maximum values of -5.47, 5.5% trim, that's pretty close to my sort of target of plus or minus 5%.
21:47 You can see down the bottom here we've got two pieces of data which I am absolutely going to discount, this will be as I backed out of the throttle quite a bit, we can see the hit count for these two cells, 27 so not a lot of data there, that's why they are shaded the colours they are and they don't match the trends that we're seeing around them so we can see directly above we've got -4, -3, -3, -1.5 and then a +5, that would be very unrealistic to see a jump like that.
22:15 Not completely impossible but it would definitely be a red flag for me.
22:19 That combined with the low hit count, I'm absolutely just going to ignore that data.
22:23 So what we can really see here is overall all of our data is slightly negative, maximum of 5.5% as I've mentioned but probably more realistically we're averaging around about 3-3.5% so it's not too bad, it's within the realms of what we'd expect.
22:40 Before we decide what we're going to do with our calibration, let's load up our other file, look and see what our trims under ramp run conditions are like.
22:48 OK we've got our second run open now and we can see again just looking in our time graph here at our short term and long term fuel trims or our total combined fuel trims, let's actually just turn our short term fuel trim channel off at the moment so it's not confusing.
23:05 And we can see across the ramp run data area here we've got a maximum positive trim of +0.8 and negative of -3.9 so let's again put this into our histogram so we can get a better sense of this data.
23:21 So looking at the data here, everything is again still within my +/-5% region so I'm not unhappy with this.
23:28 We do still have this sort of overall negative tendency here so we can take note of that but looking at this data, it is pretty good, we've got in the top end here, negative almost 4% so we're getting towards the limits of what I'd be comfortable with.
23:45 What we do need to be mindful of here with ramp run data is that understandably we're passing through these cells relatively quickly so the quality of the data can be a little bit marginal, particularly when our logging rate is questionable.
23:58 We're at around about 14 Hz so it's definitely not as fast as I would like but it is acceptable and if we look at some of this data here, if I hover over this particular cell we can see we're only getting hit counts of sort of 26, 29 here, 25 so definitely not a lot of data.
24:14 Little trick we can do here is to just reduce the ramp rate speed and that will give us just more time in each of the cells to gather data but we can see that general trend here, there's no real obvious outliers here and generally we're looking at probably an average of -2% so everything's pretty consistent here from the steady state data that we've gathered through to our wide open throttle area.
24:40 Now whether we want to make any changes here, it's really personal preference.
24:43 As I've mentioned, +/-5% is the region that I am going to be targeting, we're essentially within this, it is again a stock airflow meter, stock intake, stock air filter so there is no real reason why this should be out, it isn't and there's no real necessity to fix it but for the sake of completeness, just to show how we can address this, let's go and have a look at OLS.
25:08 Alright looking at our MAF correction table here in OLS and remembering that numbers less than one here are essentially reporting less airflow which will have the effect of reducing the fuel delivery.
25:18 Knowing that we're wanting to remove maybe 2% fuel here, let's have a look at how we can do that.
25:24 And we'll do this from the whole table, of course we can get a little bit more granular with this as well but just for our example here, let's hold down the shift key and we'll go right arrow across the entire table and then down arrow, now got the entire table highlighted in grey there.
25:39 So what we can do is right click on the table to bring up this little box which will show us again how we can make our changes.
25:47 We want to come down to change relative and you can see this does have the shortcut key which is the percent symbol, once you're familiar with this you won't need to right click, it'll become pretty much sort of muscle memory but if you are ever confused, that's how we can find the ways of making adjustments so we'll click on that now and that brings up the options for how we can change this and our data source for a start, we are changing our current data and then we've got the way we can make this change so in this case what we want to do is make a percentage change here and we've actually already got the value in here, -2%.
26:23 Take it back out and leave it at nothing, obviously the stock data there, -2, that will remove 2%.
26:32 So we can click OK and that will make that change.
26:35 Now at this stage we have also set this base file up with all of the other changes that we did in our previous step and we don't necessarily want to make our MAF change along with all of these other changes so what we can actually do is load up our original file and make the same change we've just made to our original file.
26:56 So let's do that, what we'll do for a start is save the file that we've just modified here, we'll leave this called stage one and what we're going to do is verify that the change that we've just made to our MAF scaling is in fact going to give us our desired result so what we want to do is hit the open file icon and we're going into the file we're already working on and this time we want to open our original file, remembering this is our file with no changes here.
27:21 This opens now so we've now got both files open at the same time.
27:24 All I really want to do to this is come down to our MAF correction table and we'll do exactly the change that we've just seen so highlight the entire table, our percent symbol here and -2%, job done.
27:39 And now what we're going to do is save that file and we'll give this a name MAF scaling, just so that we can easily reference it so remembering here, the only change we've now made is to our MAF scaling, all those other base map changes are still in our stage one file.
27:56 What I'm going to do now is jump ahead a little bit, essentially the process will be to export this out of OLS, use bFlash to flash this into our controller and then repeat the two runs on the dyno that we've seen, the steady state from 1500 through to 4500 and our ramp run and then get that data and load it into MegaLogViewer HD so this is a repeat of what we've already watched within this particular module so I won't repeat it here but let's jump into MegaLogViewer HD now and see the results, first of all with our steady state testing.
28:32 Straight away with our steady state file open here, we can see everything is looking much better.
28:37 We do still have some values down here in the sort of -4.7% vicinity.
28:45 This is one of the things when we are doing this MAF scaling, even with no changes, if I simply repeat the exact same test time and time again, we're always going to get a small variation from one data set to the other which is why we don't want to beat ourselves up too much trying to chase perfection and see this table filled with zeros, it's just not realistic but in this case, we can see that the general trend with this table, we were seeing a lot of 5% trims, 5.5% trims, we're now much much closer to the mark so essentially the change has done exactly what we'd expect, let's load up our ramp run file and see how that's looking.
29:24 So our ramp run file loaded here in our time graph, and let's switch to our histogram view.
29:28 Again everything's looking pretty good here, we've actually got a slight positive trim at lower RPM, something to keep in mind and maybe keep an eye on, again a little bit of variation from one data set to another but obviously everything here well within the bounds of my preferred +/- trim limit so at this stage everything is looking really good.
29:50 Now we did make that change to our stage one file as well so at this stage looking at the results from that datalog, I would absolutely keep this.
29:58 Remembering that this is also an iterative process.
30:02 We've just made an across the board change here, you may well find, particularly if you've got modifications that are a little bit more dramatic to the car, including the intake, that you're going to have to make more significant changes, maybe you're going to have to make specific changes to individual cells as well and get a little bit more granular than what we've done but the process is essentially the same and if you are making more wholesale changes, you will also find that this becomes an iterative process where you may not get it absolutely perfect on your very first attempt but again the process that we've just gone through, that's exactly what you're going to want to do.
30:38 Given that the change to our MAF scaling has worked, I will absolutely keep that change that we've already made to our stage one file.
30:46 The other element that is worth mentioning here is that with our stage one file, we are now going to be requesting more relative cylinder fill, more load in other words and that will come with more boost.
30:58 This will put us into another area of our MAF correction table and it's possible that in these areas that we haven't accessed so far, the short term and long term fuel trims may still be outside of our expected or target +/-5% so the job isn't necessarily done, in our next step it may prove that we still have to come back and readdress our MAF scaling but for now our job's done, and we can 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?