Summary

In the majority of factory cars a MAF sensor is used to tell the ECU what mass of air is entering the engine. In stock form the calibration of this sensor is likely to be close to perfect, however as soon as we make any changes to the intake system the MAF calibration can become inaccurate. In this webinar we’ll see how we can use a Wideband meter and the HP Tuners VCM Scanner software to optimise the MAF calibration in our 2006 GM LS2 engine.

Transcript

- Hey guys, Andre from High Performance Academy here and this time we're going to be looking at some techniques for calibrating a mass air flow sensor, particularly important if you are retuning or reflashing any late model factory engine. And while there are still a few ECU manufacturers or OE manufacturers I should say, that prefer the speed density system, Ford is one that pops to mind, by far and away the majority of OE manufacturers are using a mass air flow sensor. So it's a technique that is really really powerful and it's a technique that is worth understanding. And I think particularly a lot of tuners that come from an aftermarket ECU tuning background where almost always the speed density system is employed, the MAF sensor doesn't get a look in, it's chucked in the bin, these tuners aren't familiar with a mass air flow sensor and it can actually be a little bit daunting considering going and tuning a mass air flow sensor based ECU. It's, as you're going to hopefully see today, that's actually not a problem at all and retuning using a mass air flow sensor is incredibly easy.

And if you actually understand what you're trying to do, once you've got that mass air flow sensor calibrated correctly, you're going to find that your actual tuning process becomes very very simple, very very straightforward. So definitely worth understanding and putting in your little bag of tricks. Now it's also worth mentioning here that when it comes to rescaling the mass air flow sensor, there isn't one single way that you have to do it. There's a variety of techniques and then there's a variety of takes on those individual techniques. So what I'm going to show you is the technique that I personally use, I've found it to be incredibly effective but just understand that there are a few other ways of going about this.

Before we get into that we need to obviously start by understanding what the mass air flow sensor is. I'm hoping that unless you've been lying under a rock for the last few years, you probably do understand but let's just jump in and have a quick look. So we'll head across to my laptop screen, this is the engine bay on our SS Commodore. For those who don't get these in their local market, this is powered by the L98 GM engine, essentially for all intents and purposes, an LS2 six litre V8. So we've got our mass air flow sensor fitted here on this engine, not quite in the stock location because we are running a VCM suite OTR or over the radiator cold air intake.

So that relocates that mass air flow sensor straight onto the inlet of the throttle body. In a normal engine bay it's gonna be mounted somewhere over here, there's a little bit of tubing that runs to that and it mounts off the factory air box. Got a slightly closer look at that particulal mass air flow sensor. But in essence the important point to note here is that the mass air flow sensor is located in the air flow so that all of the air flow going into the engine passes through it. And what it does here is it basically converts that air flow into a output that it can send to the ECU.

In this case with this generation of LS engine, this is a frequency based air flow meter. So it outputs a frequency in proportion to the amount of air passing through it. We'll just have a quick look and see what that all looks like inside our VCM editor software. So we are on our air flow tab and under air flow we are on general. And the part that we're interested in right now is our mass air flow sensor calibration.

So let's have a quick look at that. So this is a two dimensional table of our mass air flow sensor frequency in hertz versus our air flow. And in this case we are looking in metric units, grams per second. So in essence what this means is that if the mass air flow sensor was outputting a value of 3300 hertz, this would tell the ECU that we have an air flow of 9.75 grams per second of air entering the engine. Now we'll just have a quick look at this graphically before we go on because it doesn't make a lot of sense when we are viewing it just numerically like this but when we look at it as a 2D graph we've got our air flow on a vertical axis in grams per second and we've got our mass air flow sensor frequency in hertz on the horizontal axis.

The important point to note, and particularly if you are looking at a calibration that someone else has done it's just looking at the general shape of this curve. And in a well calibrated mass air flow sensor, we should be seeing this nice smooth exponential shape to our mass air flow sensor curve. If we've got big peaks and troughs in this or it's bumpy, lumpy or otherwise horrible, this indicates there's problems here, you're almost certainly gonna have some drivability problems and the mass air flow sensor calibration is probably one of the first places you're going to have to look. Alright so now we've got a basic idea of what that mass air flow sensor is, I just wanna get down to why it's so important and why a lot of people misunderstand or overlook its importance. Basically we need to understand that the factory engine control module or ECM is scheduling all of its fuel as well as its ignition outputs based on the output from our mass air flow sensor or the input I should say, from the mass air flow sensor.

So for our ECM to correctly calculate what pulse width to supply to the injectors in order to achieve a specific air fuel ratio, we first of all need to know what mass of air is entering the engine. This is because when we're looking at an air fuel ratio, let's say for example our stoichiometric air fuel ratio of 14.7:1, that is simply a mass ratio. We're talking about 14.7 parts of air to one part of fuel, let's say we're talking in grams, 14.7 grams of air flow into the engine versus one gram of fuel being supplied from our injectors. So if the ECM knows accurately what mass of air is entering the engine, provided of course that our injector characterisation tables are also valid and correctly entered, then it's incredibly easy for the ECM to calculate the correct pulse width to achieve our target air fuel ratio and everything just falls into place, we're not chasing problems, under closed loop control the ECM's going to be able to accurately achieve our stoichiometric air fuel ratio when we're in power enrichment, when we're asking for more power from the engine and we're at wide open throttle then the ECM is going to be able to accurately track our power enrichment target air fuel ratio or EQ equivalence ratio target table. So if we get this right, everything else becomes easier, we're going to be talking mainly about fuel today, but of course this also corresponds to our ignition tables because the load axis for our spark tables is based on mass air flow in grams of air per cylinder.

So this is the basis for all of our tuning. Alright so with that out of the way I should also mention that we are going to be having questions and answers today as usual, so if there's anything I talk about today that you'd like me to address, anything you'd like me to talk about, please ask those in the comments and the guys will transfer those through to me. Alright so if we are going to be scaling or modifying our mass air flow sensor table, first of all we need to understand well why would we need to make changes? And the answer here is that while in factory form the mass air flow sensor is obviously calibrated by the factory GM technicians, and it should be very accurate, all of this goes out the window as soon as we start making modifications to the engine or in particular anything that modifies the intake track to the engine. So particularly in our case where you saw we've fitted now the mass air flow sensor directly on the front of the throttle body and we've got a much freer flowing intake that goes over the radiator picking up air flow from directly behind the front grill. This is a massive change over the factory system with the air box and of course this means that the calibration of our mass air flow sensor may no longer be correct.

I should point out here that when GM technicians calibrate the mass air flow sensor, this is done in terms of the entire inlet track so all of the plumbing that's associated with the mass air flow sensor as well as the air box, the air filter, and anything that leads into the air filter. So as soon as we start modifying these aspects, our MAF calibration is going to be inaccurate and while a lot of tuners will simply put a bandaid on this, it really can come back and bite you. In particular I've found with these VCM suite over the radiator cold air intakes that we're running today, if we don't correctly adjust our mass air flow sensor scaling, particularly at idle, we can end up with such a vast difference in air flow that we actually end up with our fuel trims tapping out against the maximum or minimum and this will end up over time bringing up a diagnostic trouble code. So the worst part about this is if you're a professional tuner, this is unlikely to happen while you've got the car on the dyno and you're going to get an awkward phone call from your customer in probably a day or two's time asking why they've got a check engine light up on their dash. So doing your job properly is going to avoid that and just simply get you a better result at the end of the day.

Now because this is a complex ECU, we do also need to address another aspect with the factory E38 GM engine control module which is that it doesn't just solely rely on the mass air flow sensor for its tuning. So the GM PCM runs what's referred to as a virtual volumetric efficiency sub system. So essentially it's got two ways of measuring or monitoring air flow. We've got the mass air flow sensor we've already discussed, and then we've got this speed density sub system which in GM lingo is their virtual VE sub system. And the way this works is that predominantly the fuel and ignition scheduling is done via the mass air flow sensor.

However under certain conditions, particularly transience, the speed density subsystem can actually do a better job of responding quickly. So the ECM basically swaps backwards and forwards between the two depending on the driving conditions. Of course the issue with this is that if we are going to rescale our mass air flow sensor, then we need to be pretty sure that our engine control module is solely running on the mass air flow sensor and not registering the virtual VE subsystem. So with that out of the way, I know it's complex, let's jump in and we're gonna actually see the process of doing this. Now the first thing we need to do is make sure that our closed loop system is deactivated.

If we don't do this, we're going to end up with essentially our closed loop control is going to override any errors that we've got so we need to make sure that our closed loop control is deactivated and I've actually gone ahead and I've done this already so at the moment we're on our fuel tab and we are on our oxygen sensors tab and what we want to do here is disable that. So we've got our engine coolant temperature versus start up temperature. And what we've gone through is maximised that table so we've set all of this to the maximum value of 152 degrees. You'll note here I am working in metric units as well. We can also disable our long term trims by maxing out our minimum engine coolant temp.

So essentially for our long term trims to be active, the engine coolant temp must be over 256 degrees. Obviously it's never going to be there, and it must be also below a maximum of minus 40. So basically we've just maxed all of those out to ensure that there is no chance that our closed loop system is going to operate there and undo some of our work. Now there are a few other tables that are worth modifying as well. If we move over to our open loop base, we'll have a quick look here and we've got some multipliers here that will affect the open loop target.

So most of the time we are going to be targeting in closed loop control, we're going to be targeting lambda 1.0 but these multipliers do affect that. So for example if we have a look at our gas table here for our open loop EQ ratio gas multiplier. We can see that a large body of this table, just try and actually highlight the areas that are set to 1.0. A large body of this table is set to 1.0 but certainly not all of it. So it's a good idea to make sure that these are all set to 1.0 So in this case we'll go for our gear as well as our park neutral table.

And then we've got a few other tables that we need to also look at here which are our open loop gains. If we go through these we'll see that some of these do have numbers in them, others will already be set to full 1.0 as we can see here. So basically what we wanna do is adjust any of these tables here that aren't currently set to 1.0, let's try doing this on the ones that aren't 1.0 We wanna make sure that they all are set to 1.0 And this way what it's going to do is ensure that while we are going through our tuning it's going to ensure that the entire time we are opearting the engine it is always targeting an air fuel ratio of 14.7:1 Alright so we've done that, this is the basis of basically making sure that our closed loop sub system is not going to operate and also ensuring that the target air fuel ratio is always gonna be the same. And this is really important, just to make our job much easier. If the target air fuel ratio is constantly changing, there's always gonna be a little bit of latency with our wideband picking that up so it's going to incur a little bit of error that may not be entirely realistic.

So we've dealt with this, we also need to deal with our virtual volumetric efficiency subsystem which I've already mentioned. So if we head back across to our air flow tab here and this time we want to head across to our dynamic tab. So this is basically the two parameters we're going to adjust here which is our high RPM disable and our high RPM reenable. So by setting these at the likes of 400 RPM and 300 RPM that's gonna essentially mean that any time the engine is running, the virtual VE subsystem is not going to work. Lastly another good idea here while we are going through this is to make sure that our power enrichment target is a fixed value.

Exactly the same reason that we are making sure that our open loop targets are all set to 14.7:1, we wanna make sure that we aren't chasing a moving air fuel ratio target when we do transition into power enrichment because again this can lead to some discrepancies. So easy enough to do, we'll head across to our fuel tab here. And this time we're going to go across to our power enrichment tab. And we are going to be looking here at our EQ ratio gas table. This particular ECM is not running flex fuel so we don't need to worry about our alcohol table, we're only running on our gas power enrichment equivalence ratio table.

So we can see there that our entire table is already set to one fixed value. This wouldn't be what we'd typically be tuning for when we've got our engine finished up on the dyno ready to roll but this is what we're going to be doing just for the purposes of our mass air flow sensor scaling. If you do want to understand what these numbers mean, if you are a little bit new to the GM tuning, bring up our calculator and I'll just really show you quickly how to do this. So first of all if we enter our EQ ratio, our equivalence ratio, 1.176, this is simply the inverse of lambda. So if you're already familiar with tuning in units of lambda, this is the only step you're going to need, use the little inverse function on our calculator so we see that this is the same as a lambda value target of 0.85, probably a little bit fat for our naturally aspirated engine but certainly gonna be a pretty safe place to get us up and running.

For those of you more familiar with working in units of air fuel ratio, if you wanna go one step further and present this as an air fuel ratio number, we can do that too. All we need to do is multiply this by the stoichiometric air fuel ratio of our pump gas 14.7:1 and this gives us an air fuel ratio target of 12.5 Just because I know that a lot of tuners, when they get into GM tuning they don't understand what the equivalence ratio actually is. Alright so at this point we basically have our ECU set up and ready to perform some mass air flow sensor calibration. So of course the next step is to use our little write vehicle icon here and we wanna write these changes into our engine control module. I've already taken the liberty of doing this so we're not gonna have to write those changes in but of course that would be your next step.

Alright so now we can actually go about doing some tuning. And here's where, I'll just talk about the three things we need to understand. First of all what we're going to be looking at today is tuning our mass air flow sensor using a wideband air fuel ratio meter that is measuring the actual air fuel ratio in our exhaust system. And it's inputting this straight to my laptop so we can see it on our scanner. Now a lot of tuners will use the short term and long term fuel trims instead of a wideband air fuel ratio meter.

If you want to learn more about that technique we do cover it in another one of our webinars, please search in the archive and you'lll find that. Today we are using the wideband, this is an advantage anyway, Using the narrowband O2 sensor outputs is only any use to us under closed loop conditions where we are targeting 14.7:1. Our narrow band sensors can't help us when we are in power enrichment and we're targeting in this case 12.5:1 So that's important to understand. The other aspect here is that we're going to be doing our mass air flow sensor calibration in two different ways. What we're going to be doing is running our car in steady state conditions on the dyno to gather some data that will basically give us information about the area from idle through to the transition up into power enrichment.

And then following that we're going to gather some more data using a ramp run. And this is basically going to give us data across the entire range of the mass air flow sensor values or frequency that we're going to see when our engine is running. Now some of you may be thinking well why can't we just do all of that in one shot. And the reason for this is that we have quite a big discrepancy between our air fuel ratio target under closed loop where we're targeting 14.7:1 and of course in this case power enrichment 12.5:1 When we get to that point where we step from closed loop to power enrichment, we're going to see a lag or a latency in our wideband sensor reading, I'm gonna show you that so you'll understand it. And that inevitably brings quite a large error to our scan or our log file that we're going to see and this ends up with something that's a little bit unrealistic.

So with that all out of the way, let's just have a quick look, we'll head across to our scanner and we'll see what we've got operating here at the moment. So there is the, probably the first place we wanna have a look is that our fuel trims are disabled here. So we can see that our long term and our short term fuel trims are all sitting at zero. So that's good, that means that our closed loop operation isn't going to be affecting us and again just to reiterate, if our closed loop system is still working, this is going to make all of our work basically pointless. Because of course the closed loop control system there will be driving the ECU towards its target.

So our wideband is going to show what the commanded air fuel ratio is, there'll be no error there. Now if we look down the bottom of our time graphs here we can see we've got two values here, in green we've got our commanded lambda values. So this is what the ECM is asking for. This is what the ECM is requesting and this is what is driving the decision on the injector pulse width being delivered. Directly below that in yellow we have our measured lambda value coming in from our wideband sensor.

Now regardless whether you want to work in lamdba or air fuel ratio, you can configure the scanner both ways. My personal preference is lambda, so that's what we're using for today. But even if you are more familiar with air fuel ratio units, the principles are going to be exactly the same here. So straight away we can see here, sitting here at about a 550 RPM idle, we can see that we are sitting a little bit richer than our target, not ridiculous, we're sitting at about 0.96 to 0.97 lambda so we're around about 3% to 4% richer than our target. And this is where the power of the VCM scanner software comes in.

What we're trying to do of course, is correct any error in our mass air flow sensor calibration. The question of course comes in, how do we know if our mass air flow sensor calibration isn't correct and alternatively how do we know when it is correct? Well if our mass air flow sensor calibration is correct, then the requested air fuel ratio or lambda value is exactly what our wideband is going to show us. So in other words we should be seeing exactly the same values there. Of course we already know here we're not, we're a little bit richer than our target so what this means is that our mass air flow sensor is over measuring, or over estimating the mass air flow into the engine. It's reporting too much air flow, more air flow than is actually going into the engine, so in turn the ECU is then injecting a little bit of additional fuel.

Because that extra air flow isn't really making its way into the engine, we end up with our rich air fuel ratio. So if we can understand that then, we can use the error between our measured air fuel ratio and our target air fuel ratio to help us optimise our mass air flow sensor calibration. Alright remember if any of this isn't 100% clear, please ask in the questions and we'll get into that really shortly. But for the moment let's have a look and see how we can go about getting some data here. So I've just pulled down our graphs or our histograms as they're also known, and what we're looking at here is a histogram which is referred as EQ error MAF, or that's what I've called it.

Let's have a look and see what makes this up and I'll also show you exactly how to set this up if you don't already know. So when we open our layer editor, we've got all of our histograms available here, the one that we're going to be looking at of course is our EQ error MAF. So you can give this a label, you can call it obviously anything you want. Generally when I'm doing this I'll also be tuning the virtual volumetric efficiency subsystem, we'll look at that on a future webinar, so I'll have two of these EQ ratio error MAF and EQ error ratio error speed density for example. Now what we wanna do is scan a particular parameter into this histogram.

In this case we're using the EQ ratio error and this is a math channel. So don't even need to do any heavy lifting here. All of the hard work's been done for you. If you are setting one of these up from scratch, all you need to do is click on this parameter and you'll get a full list and there's a few ways you can go about finding this. You can simply start typing and you're going to end up getting filtered based on what you're typing in.

But we're going to end up going down to the bottom here to our math channels, so these are all built in. And we want to go down to lambda and air fuel ratio and then we can see we've got our EQ ratio error. Now you'll notice here that we also have AFR error and this is a really important one, depending on whether you are scanning units of lambda or units of air fuel ratio, you need to choose one or the other. So if you're following along this after it's aired and you're not getting any data filling it in, it's probably because you are scanning in units of air fuel ratio in which case you would want to use the math channel AFR error. Anyway that's all filled in at the moment and what we're going to do is we'll just increase the accuracy here, the resolution I should say.

So what we're going to do is we're going to choose to scan this particular parameter to two decimal places. We can do some filtering as well. Because we're on the dyno here we've got a lot of control over this but we can filter for aspects such as our engine coolant temperature, inlet air temperature or transient throttle values, just to make our data a little bit cleaner, a little bit more valuable. In this case we don't need that so we'll move on. Now we've got some shading as well, so we can just give this a colouring so that we've got a bit of an idea at a glance whether we're richer or leaner than our target and to what extent.

So in this case you can see for a high value where our error means that we are leaner than target, obviously a dangerour situation, we're going red. Where our error is negative, which means that we're richer than target, we're going to colour that green. So that's just, not necessary, but just gives us a quick visual indication of what's going on there. Next two aspects that are really important here is the parameter that we are scanning as our column axis. So we can see here we have chosen our mass air flow sensor frequency.

What we're trying to do here is create a histogram that is directly relatable to the calibration that we want to adjust. Of course that is our mass air flow sensor calibration that we're looking at. So that's what we wanna fill in as our parameter. And the other important aspect here is you can see we can choose our values for this. So this is the brake points for the x axis on our histogram.

And what we wanna do to make our life really easy is just make sure that these brake points are exactly the same as our mass air flow sensor calibration. Let's head back across to our VCM editor, I'll get back out of there and we'll head across to our air flow calibration. And what we can do here is that we can copy with our column axis here, we can copy our labels. So that's gonna copy all of the brake points here on our axis. Once we've done that, of course we don't need to do this because it's already filled in, we can come over here to our values, we can right click and we can select paste, and that's gonna fill in all of those values.

Now why that's important is particularly if you want to use the special paste function to make changes to the MAF calibration, which we're gonna have a look at, this basically automates that process because the numbers that we're scanning into our histogram directly relate to a specific point in our table. So for example right now while I've been talking, let's just move this across a little bit, we can see that we are sitting at the moment at about 2700 hertz. And we can see that our error at that point is about minus 3.6%, almost minus 4%, exactly what we talked about before. And we can then go across to our table here, you'll remember we were at 2700 hertz, so we can see we have a breakpoint at exactly 2700 hertz, this means we know exactly where we can make our change. Alright enough talking, let's head back across to our scanner and we'll see how we can actually gather some data here.

So as I've already said, we're gonna do this in two separate ways. We're going to gather some data under steady state conditions, and essentially here we want to really start from idle or very light load, we wanna get our engine running and we want to move up to the point where we transition into power enrichment. I know for this particular setup here, that's around about the 5700 hertz vicinity so we can go down from about 2700 idle up to about that 5700, 5900 hertz vicinity. Now a few tips for driving and gathering this data. First of all it's important that we are very smooth when we are doing this.

We don't wanna be losing large stabs at the throttle because this is going to bring in transient enrichment, we want to be very very smooth and that's very easy to do of course when we are on the dyno. On the dyno as well it's also beneficial if we can try and stay in one gear, we really don't want the car changing gears as well as this can affect our fuelling, and we're gonna move very quickly through the mass air flow sensor frequency table. The other aspect that's worth mentioning here is you want to make sure that before you start scanning any data, that your engine is not suffering from any heat soak. And this is particularly an issue if you are road tuning. This can be done really well on a nice wide piece of road where you can concentrate on driving the car and gathering this data smoothly.

But often when we are road tuning, you're going to be gathering data, then pulling over to the side of the road to make tuning changes, flash those into the vehicle, and what this does is while you're sitting there on the side of the road, particularly if you've got the bonnet, your hood closed, the engine bay's gonna heat soak. It can take several minutes of running after you start the engine again to get back to normal ambient conditions. So if you're gathering data while the engine is heavily heat soaked, you're gonna end up chasing your tail because you're gonna have some nonsense numbers. Alright so what I'm going to do here is we'll just get our car into gear and we're going to get up and running here. So again I'm just gonna stop the scanner just while I am doing this and we'll start scanning again.

Once we're up and running. Let's try that again. So what I'm going to do here is I'm going to get into fourth gear. So we're going to use a combination here of our throttle position as well as our RPM or road speed set point on our dyno to get us access to as much of our mass air flow sensor calibration as we can. So alright we've got ourselves up and scanning at the moment.

What we'll do as well is just make sure that our closed loop trims are off. Right and we are sitting at the moment at about 3750 hertz, we're actually pretty close here, you can see our error's about minus 1%. We'll just bring in a little bit more throttle here and what we're going to do now is just gradually increase our throttle opening and what we wanna do is essentially just drive through each of the zones in our mass air flow sensor calibration table. And we wanna sit in each of those zones long enough for our error to stabilise. So you can see that's happened now.

So now I'll just apply a little bit more throttle and I'll just move over so we can actually see this happening. We'll apply a little bit more throttle and we'll move up to our 4050 hertz. Again just allow enough time for that to stabilise. And we'll move up again to 4200 hertz. So you can see as I move into a new zone, quite often there is going to be a bit of work to be done as that number stabilises but then it quickly does exactly that and then we can simply move through our table.

So we're gathering data in each of these zones until the values are relatively stable. I'll just get a little bit more data here and then we can have a look at what we can do with this data. So again I'm just using a combination here of increasing our road speed on our dyno as well as our throttle position and as we do both of those we can see we move nicely through our table. Remember we need to get up to around about 5700 hertz in this table. This is sort of the point where we're starting to basically run in power enrichment when we're doing a ramp run.

So there's no point trying to go too far through this table, I already know that that's about our crossover point there. Alright so we'll just come back down to idle here and we'll have a look at our data, we'll also have a look at a couple of other aspects that are important to understand here with our scanner. I'll just get some more data here. Alright so let's have a look here at idle. Alright I'll stop our scanner and what we first of all wanna do is have a look at how many hits we've had in each of these cells.

And we can do this by looking at the average, and you can see at the moment we've got a little A box ticked or highlighted which averages the values that have been scanned into each of these cells. So that's important because it is showing us the average instead of an instantaneous value. However it's also valuable to just click on see and this will show us how many counts or how many hits we've had in each of these cells. So you can see that for a lot of these values, particularly where we started while I was talking a bit. We've got 1081 hits at 3750 hertz.

So this means that we can be pretty confident that that's gonna give us an accurate value. However some of these sites here that I've just glanced through here, 3150 hertz, you can see we've only got about 12 hits in that particular cell. So particularly if that gave us an outlier value, I would probably not be taking too much notice of that particular value. Let's go back to our average here. The other thing we're looking for is any outliers here.

So what we can see is most of our data's pretty consistent but here as I've backed off the throttle, we can see that we've ended up with some quite large negatives that don't really sit with the rest of the data we view. So this is important to use a little bit of common sense when we are using our histograms. If we see data, particularly if we've got one individual cell which is maybe minus 8% or 10% and the cells either side of that are plus 3% then chances are that the data in that particular cell is not going to be reliable. We'd probably wanna go back and have a look at that particular cell again and gather some more data. So in this case I'm definitely not gonna be too trusting of that data below 3450 hertz.

But for the purposes of our demo today we'll continue. The other aspect here is we do need to understand that we can only get down to our idle frequency. We know that that was about 2700 hertz, and we do have values in our table below this. Now despite that yes we may not always be able to get down to let's say maybe 1050 hertz, it is possible, particularly under certain circumstances where we are driving at light throttle, and we're coming up to a stop perhaps, to drop down into at least maybe a couple of cells below our normal idle frequency. So what we wanna do is extrapolate any trends that we're seeing out to these untuned areas.

So basically what I'm saying here is if we're seeing a consistent trend, from the idle and above that we were maybe about 3%, 4% rich, what I would be doing is also taking 4% out of our mass air flow sensor calibration below this. Alright so how do we make some adjustments? Well there's a couple of ways we can do this. First of all we can manually look at our data and apply this to our mass air flow sensor calibration. Particularly if you've got data that's not very clean and you've got some of these outliers, that's probably a really smart approach. So what we're looking at is, what's our data look like, let's just say we do trust this data, well in general from about 3450 hertz and below, looks like we're between about 6% and 7% too rich.

So what I'm probably do is highlight from 3450 hertz and below. Let's find that in our table. We're going to highlight that area of the table and what we can do is we can multiply by 0.9, let's say 0.94, that's gonna take 6% out to start with. If we multiply that, that's made that change. So this removes about 6% fuelling or 6% air flow which has the net effect of also making the same change to our fuelling.

OK so that's a good way if we've got some really rough data. However if we've got good solid data that's reliable through our histogram, like the sort of data you can expect to gather on a dyno when you're driving the car properly, we can also use the paste special function. So using the paste special function, what we can do here is we can copy all of our data, so we can right click and press copy. We can go back across to our editor software and what we can do now is right click and if we come down in our menus here we've got paste special. So what we can do here is multiply by percent.

What that's going to do is apply the percentage error that we've just logged into our histogram directly into our mass air flow sensor calibration. So let's just do that now. And we can see that of course only the data in the area that we actually gathered data has been changed. Now couple of caveats here if you are gonna use that paste special function. The first one, I'm just gonna labour on a little bit because it really is important.

Garbage in, garbage out. So if your data is not good, you're not gonna expect to get great results out of this. The other point of course is that it is only gonna make those changes in the area that data was gathered. So there's still going to be a little bit of manual smoothing to be done. In this case we've got no data from 3000 hertz and below so we'd want to extrapolate the trends that we were seeing there.

Likewise if we were doing this at the end of a ramp run, we may find that from maybe 9000, 10000 hertz and above we've got no data so we'd also want to extrapolate this for the sake of completeness, making sure that the shape of our mass air flow sensor calibration retains that smoothness that is really important to get good drivability. Alright so we don't wanna make that change just yet. Let's go back and we'll have a look at our second technique which is where we can perform a ramp run. So what we're going to do here is get ourselves up and running on our dyno and we're going to perform a full throttle ramp run. Now when we are doing this, I'll just see if we can get the dyno to actually work instead of bringing up an internet connection.

There we go. When we are doing this we only really want to start scanning once we are ready to perform our ramp run and we are in power enrichment. So the reason I'll show you this as well, let's just bring our histogram up and we'll have a look at my laptop screen here. Again we'll just, no that's OK. So as we move into power enrichment, I'll just stop our logger and have a quick look at that result.

What we can see here, and this is what I was talking about, why I prefer to do our mass air flow sensor calibration in two goes. We can see here, this is the point where we step from our closed loop target of lambda 1.0 into our power enrichment target here. And we can see that, particularly in this area, instantly as our air fuel ratio target drops, there's gonna be some latency with our wideband picking that up. So right at this point that I've highlighted at the moment, we've got a lambda target of 0.85 but our measured lambda's still lambda 1.0 So this means we've got around about a 15% error momentarily at that point. So I'll show you that in our histogram.

Where are we there? Probably actually haven't got any good data for that, for that particular point because it has been averaged out. But what we're going to see, particularly if we transition through that point, we're gonna see an instant error that's not very realistic. Alright so with that out of the way, what we're going to do is get our dyno ready to perform our ramp run. We're going to go into power enrichment here and once we're comfortable, everything, all of our heat soak is removed, we're going to start our scanner, and I just wanna make sure before I start our ramp run that our data is consistent. And we can see that is, we're around about minus 3% so let's get our run underway.

Now during the run I'm also ready to hit the stop scanner button so that I can finish that scan as soon as the run's complete. Alright so we've got some data scanned there. We're not really that interested in what's happening over on our dyno really, it's not about the power at the moment, it's about getting our mass airflow sensor calibration correct. So let's first of all have a quick look at our chart graphs, our time graphs here. And down the bottom here we're looking at our equvalence ratio commanded versus, or our lambda target versus our measured lambda.

And we can see that our measured lambda, our yellow is always a little bit richer so 0.82 versus 0.85, 0.82, 0.85, 0.84, 0.85. So straight away we know that we're a little bit rich so this is always a good idea, for a bit of a sanity check, we're already expecting that our data is going to be a little bit negative. All of our values should be green there. Likewise we can also see the area where we've got our actual ramp run. And as you can see I've shut that off straight after the ramp run.

So this just again protects the integrity of our data. Obviously after the ramp run we're gonna back off the throttle and this is going to affect our data. So we want to turn off the scanner and lock that down right at the end of our ramp run so all of our data is really only for that ramp run. Let's have a quick look at our histrogram. And so straight away yep we can see that our data there is essentially backing up what I just said.

We're around about minus 3% to minus 4% through the majority of that scan data. So that's a good thing. Everything makes sense to what we saw from our wideband. You can also see that this data is pretty clean. It's all relatively consistent, probably with the exception of one outlier here that we've got at 10350 hertz.

You can see on either side we've got a negative two value and at 10350 hertz we've got 0.4 positive. So probably not data that I'm going to be wanting to apply there. I'm going to want to do a little bit of hand smoothing in that particular instance. So that's a good place to also have a look at our count number. And of course you can see right up at the top of the run, half the reason, or the majority of the reason why we've got that outlier there is we're starting to get really small count values, only one hit in those particular cells.

We can basically disregard those. As a general rule of thumb, I like to have at least 20 or 30 hits in each cell, if not more and a good way of getting that if you are on a dyno and you're trying to do this, make sure your data's nice and consistent, there's no problem with just slowing the ramp rate down so it's going to allow the engine ro physically accelerate a little bit slower. Same process now, we've got this data, we've got the option of basically copying that across by hand or alternatively using our special paste function. So looking at that data, probably what I'd be inclined to do here is actually do this by hand. For the most part we're around about negative 3% from 5850 hertz through to around about 8850 hertz.

We've got a couple of minus fours in there, a couple of minus twos in there, but you don't need to be super super fussy here so probably what I'd do is start by highlighting that area of my mass air flow sensor calibration and I'd pull out minus 3%. What we see from 9150 hertz and above though, we actually start to see that that gets a little bit closer and we're probably closer to about minus 2%. So those are the changes that I would make there. Let's just show you doing that by hand. So we are 5850 to 9000 hertz, let's got to our scanner.

Find the spot that we're interested in. 5850 so we'll start there, and we're going up to 9000 hertz. So we were around about 3% rich there so we wanna multiply that by 0.97. And then we head back across to our scanner, and from 9150 hertz and above we're gonna pull 2% out. Now also again I'm just going to extrapolate that out to the higher regions.

Even though we may not end up reaching them. So we'll do that now, 9150 hertz and above, we'll highlight the entire table, and to remove 2% we want to multiply by 0.98. OK so that's the process we go through, of course the next step is to flash those changes into the engine control module and rinse and repeat. You're probably not gonna get this absolutely perfect in one iteration of modifications but using the correct driving techniques and a quality wideband, having everything set up like we've just gone through, you should be able to get a good result in no more than about two or three iterations. Now if you are using that paste special function as well, I will point out that there's two ways of using that paste special function.

So again if we have a quick look, if we right click here on our table, we go down to paste special, we have the option of using the mutliply by percent. So that's going to apply the full error percentage. So if we're 4% rich that's going to remove 4% from our mass air flow sensor calibration. Once you get a little bit closer, just to help reduce the effect of the inevitable outliers and noise you'll see in that histogram, you can choose to use the multiply by percent half. No rocket science here, does exactly what you're thinking.

Instead of applying a 4% in our previous example, it would apply 2%. So it just lets you creep up on the values without ending up chasing your tail. Whether you choose to use that or whether you choose to use the manual and smoothing method, that is totally up to you. Once you're done and you're happy that you're tracking really well, it's also worth having one last look at your mass air flow sensor calibration graphically, again just to make sure that you haven't introduced any ugliness, any bumps or dips. If you have, it's a good idea to take note of the frequencies where those are occurring, just go back and have a look at those areas again because a well tuned mass air flow sensor calibration should not be giving you any bumps or dips so that could introduce a problem later on.

Alright the last step of course once you're comfortable with everything is to then go and re enable your closed loop control. You want to also copy back the original values out of those gain tables that we set to 1.0 This is another area why it's so important to save a stock calibration for your particular ECM before you start tuning it. You can then use the compare function in the VCM editor software to copy and paste the original tables back into those ones. Also while you're doing that, while you're reverting to normal operation, you will want to re enable your dynamic air values, the ones that we set really low to ensure that the virtual volumetric efficiency system didn't have any effect. Alright so, does sound a little complicated but hopefully you've seen that, it actually isn't that difficult to achieve and in no time you've got your mass air flow sensor calibration dialled in.

The upshot of this is everything else for your tuning is gonna be so much easier. Now I'll just mention here before we get into our Q&A, that a question I quite often get asked is are we going to end up getting absolutely perfect values with no error at all? The answer is no, that's pretty unrealistic. I'd like to have my error maybe no more than about plus or minus 1% or 2%. Plus or minus 1% would be really nice, particularly when we're doing our wide open throttle ramp runs. But of course you've got your closed loop control there, your narrow band feedback particularly at idle and closed loop operation there to pick up any small errors and this is also a good indication to you straight away, if you want a car that comes into you for a tune, this is a really good indication of how well the mass air flow sensor calibration is tuned.

If you're looking at the scanner at idle and your closed loop trims are between maybe zero and plus or minus 3%-5%, generally pretty indicative of a tune that's not too bad. If you're sitting at 10% error or more, there's definitely some work to go on there and you don't want to be seeing anything like that. Alright we'll head into our questions. if you've got anything more, please feel free to ask them. Jeremy has asked, at what point does the diameter of the current mass air flow sensor become obsolete? Can I measure that with my laptop? OK probably I'm gonna go about this at a slightly different angle which I think is maybe what you're getting at.

So mass air flow sensors, particularly some of the ones we see in Subaru applications for example, there is a measurement range that they will work for and it doesn't take much in some of the Subaru instances, which is why I mention it, to modify the engine to a point where you're actually flowing more air than the mass air flow sensor can measure. So what this means is that the output from the mass air flow sensor, and in Subaru terms it's a voltage not a frequency, it will tap out at five volts or thereabouts and beyond that, doesn't matter if you're flowing 300 grams per second or air or 3000, the ECU doesn't know anything about it so you're going to not be able to tune that engine properly. And it normally shows up, if you're not picking it up, normally shows up as you increase the boost pressure and the air flow. A point where the air fuel ratio will start to just move lean and no amount of changing it in the calibration software will actually fix that. So it's really important to check that out.

Not so much of an issue in GM speak but particularly with Subaru, it's not uncommon to take the mass air flow sensor measurement part and then fit it into a larger diameter tube and this will basically give you a larger measurement range. Important to understand there. Imperial One has asked, the sequential gearbox comes with a G sensor, how will the affect MAF tuning versus throttle blip for a sequential gearbox? OK probably a little bit of an advanced aspect here. Particularly because when you say G sensor, I'm going to guess that what you're talking about there is a gear shift cut knob with a strain gauge in it. So this is pretty common with the sequential gearbox allowing clutchless shifting.

It would be difficult, almost impossible to interface that with the majority of OE ECUs. This is something we're more commonly going to be seeing with an aftermarket ECU that has these sort of motorsport functions. So sort of a bit of an odd angle with that question because it's something that's not gonna relate to too many people. What you do need to understand though is that if you were able to do this, you're going to end up with a very large change in your engine RPM very quickly on a gearshift. This is gonna put you in a different area of the mass air flow sensor calibration.

It really doesn't make too much difference, as long as the mass air flow sensor calibration is accurate, your fuelling is still going to follow suit. Imperial has also asked, how does this change versus turbocharger size, stock MAF versus turbocharger? OK so basically the same as my answer to Jeremy previously there, we do need to keep in mind that in some applications the mass air flow sensor will not be able to support the sort of air flow we want to see. If you've got a popular vehicle, you're going to be able to find out pretty easily if the mass air flow sensor is a restriction for your application, and if it is a restriction, at what sort of horsepower levels that becomes a problem. You can then figure out for yourself obviously how you need to proceed. And in some instances, where it's problematic or impossible to find larger mass air flow sensors, this is the point where we may choose to ditch the mass air flow sensor and go to a speed density tuning system instead.

Edge Mini has asked, can we deactivate the short term and long term fuel trims from the scanner. It's not necessary to do it by reflashing in the editor. Yeah you absolutely can, hopefully you saw I actually did that, there is our VCM editor controls in the scanner or scanner controls I should say, and you can perform a lot of functionality there including enabling or disabling our short term and long term fuel trims. Imperial One has also asked, how can we offset for turbo size? I'm honestly not too sure exactly what you're referring to there. I think it sounds like you've got a few questions there that are borderline outside of this particular topic so to keep this one on topic for those viewing it in the archive afterwards, let's get you to post those up in the forum and I'll be happy to answer them there.

You can post those in the general area, I'll jump and I'll be happy to answer those questions and see if we can get to the end of that. Turbo Tuned has asked, what was modified for your example car or wasn't discrepancy simply engine age that would ultimately be a long term fuel trim global error if not adjusted? OK so no in our particular instance, the main error that's come from that is the fact that we have got a completely different intake system. So as I mentioned during the lesson, the calibration should be pretty accurate. If you're still running the complete stock intake system. And this is an area where I've actually had quite a few people debate the merits.

But in my own experience it's certainly been that as soon as you change any of the intake componentry this can have an influence, sometimes quite a dramatic one on the mass air flow sensor calibration. So in our case, we've moved the mass air flow sensor calibration for the factory air box to directly in front of the throttle body and we've also got a free flowing air intake that's going straight over the top of the radiator pulling air from behind the grill. Alright guys hopefully that is going to be some use to those of you out there who are learning how to reflash factory ECUs. Don't be scared of the mass air flow sensor, they really aren't as bad as a lot of tuners think. And really once you've got them dialled in, it simply makes all of your tuning so much easier.

Certainly a lot quicker than correctly calibrating a full speed density sub system from scratch. As usual for our HPA members, if you do have any questions, please ask those in the forum after this webinar has aired and I'll be happy to answer them there. Thanks for joining us and I hope to see you all online again next week. Cheers guys.