I want to help as many people as possible, and I cannot do this by helping people privately one at a time. So I ask that people do not send me PM's. Rather than seem rude when I ignore you, I ask you post in this thread if you have questions. You may or may not get an answer. I have limited time with my day job, tuning my car, tuning cars on the weekends, and other hobbies. I'd like to make the most of the time I can set aside sharing with the community. Q. What is the scope of this FAQ?A.
This FAQ aims to answer common questions that new users of the SD system may present. Tuning AFR, timing, and boost will NOT be covered. Furthermore, it is assumed the reader already has a VERY solid grasp of tuning Subarus and tuning in general. There are many other FAQs and information sources for that. This FAQ will cover how the SD system may affect other aspects of tuning, but it is important the reader already understands these systems independently. This is not a system to be used by people new to tuning! Q. Who is the intended audiene of this modification?A.
Tuners with at least a year of tuning experience Subarus from scratch (stock maps). Those who already solidly have the concept of air to fuel ratio, timing, knock correction, and boost control understood. Tuners should also have experience successfully tuning injector latency, injector flow, and MAF scaling on several cars. These aspects of tuning need to be well understood going in to avoid misinterepretation of what part of the tune is working incorrectly. Since this is a new feature, the most important thing to tuning it correctly will be understanding when the SD part needs to be tuned and when it is another part of the tune that is in need of attention.
This is not a modification for a new tuner to learn. Perhaps as more community is built around, a better information bridge and community support will grow. Perhaps using the MAF will become complete passe for Openecu users. But, for now and at the time of writing this, I will only state this is a modification for those who have MAF calibration problems, big turbos, and those who know well going in how tuning works.
I also strongly suggest that potential readers have read the following books at least twice
through:How to Tune and Modify Engine Management Systems
by Jeff HartmanMaximum Boost
by Corky BellForced Induction Performance
by A. Graham Bellhttp://dl.dropbox.com/u/27624835/car/ecu%20and%20tuning/books.html
The more experience the user has in tuning MAF scaling tables the better as well, as tuning your VE is a very similar process.
If you meet all of the above requirements, you will probably have success with the Speed Density conversion. If you do not, this is throwing another wrench into learning tuning and may lead to incorrect attribution of symptoms. I suggest you stop reading NOW if you do not meet the above experience and research level. Q. What's the purpose of this modification to the ECU? Why do this? What not use the hotwire MAF? A.
The purpose is to side step some the limitations of a MAF setup. The primary
1. Stock and near-stock-diameter intakes will hit high voltage with moderate to large turbochargers. A stock or stock-diameter intake with a large turbo is not adequate for this reason.
2. Large diameter MAF setups are difficult to tune, and may never offer equal or acceptable idle stability (i.e. stalling issues, hesitation, long tune times, extra troubleshooting)
3. Minor changes to the intake may cause unacceptable changes to the tune. This can require retuning or at least ECU and wideband logging to confirm the changes are within acceptable limits.
4. Even minor leaks can really screw up fueling on a MAF car. While SD doesn't eliminate all problems with leaks, they're less of an issue. This is covered further later in this FAQ.
There is also the benefit of being able to run both recirculating and vent-to-atmosphere blow off valves with SD. There is no richness when the valve opens, no matter if the air is being recirculated or dumped out of the intake system. Changes in the blow off valve may still affect the tune, but they can be adequately handled. Q. What is the gist of how this SD system actually works? A.
Simply, the MAF scaling table is replaced with a VE map. That's the bulk of it. There are certainly finer details to it, but it is important to note is everything else is exactly the same. Granted, the airflow g/s trickles down into much of the rest of the ECU, but really the *changes* are only in how the airflow g/s number is produced.
Maps are still organized by "engine load" and not manifold pressure. All the open/closed loop stuff is the same. Boost control is the same. Basically, any other question about how the ECU operates is going to be answered with, "it works exactly the same." I could spend all day answering questions with, "no, it works the same," so take special effort to realize the only thing changed is the MAF scaling table has been effectively removed and replaced by a VE map and a simple equation. Q. How does this differ from other SD systems? A.
Some other systems would use a 3D table of RPM vs. manifold pressure that is filled in directly with injector pulse width. I am *not* using that kind of system, as it would require a more radical redesign of the ECU. Having a straight-up pulse width map would require a *major* retooling of the ECU. Things like fuel trim would be difficult to redesign in such a system.
Other more similar systems would use a VE table, but typically changes to VE would not affect timing because the load reference on timing would be MAP, not engine load. Again, since the mass airflow number is still used to calculate engine load in this system, changes to VE trickle down and affect airflow, load, and thus where on the timing tables the ECU pulls its values. Q. Can you explain how the more scientific/technical/math stuff behind this works?
To recap, all I'm changing is how the MAF g/s value is determined.
The calculation needs to solve for "Grams per Second" unit so the MAF scaling table can be functionally replaced. This is a targetted decision on how to design the system. The calculation is based on the Ideal Gas Law which states the following:
PV = nRT
P = Pressure (absolute pressure, manifold, i.e. MAP)
V = Volume (swept volume of the engine, displacement)
n = moles of air, what we're trying to find (literally a count of molecules)
R = the universal gas constant
T = temperature (absolute, i.e. kelvin)
It can be transformed algebraically to
n = PV/RT
so we can solve for moles of air that the engine "holds" statically. Moles of air times its molar density (constant, ~28.9g/mol) gives us grams of air sucked in per engine revolution. Then, since we're solving for a dynamic rate of flow for a system we need to add speed (how many times the moles are gobbled up in a unit time) and volumetric efficiency (how well the engine displacement is filled). This is just basically multiplying by engine speed and VE.
The rest is just working out all the units of measure. Remember all your factor label conversions from high school chemistry? Things that need to be sorted are getting minutes (from RPM) to seconds, moles of air to grams (atmospheric air has a pretty constant mass per mole), pressure from mmHG to Pascal (ECU uses mmHG, Ideal Gas Law is typically quoted for Pascal), and soforth.
Luckily, since much of the above involves no dynamic values, a single constant can wrap all of this unit conversion, gas constant, and mole airmass nonsense into a single value. The actual code has a programmed constant for this. This, along with careful instruction ordering to keep all the CPU pipelines filled, keeps extra CPU time used to a minimum. The actual SD code is very compact. If the old MAF code was removed it would in fact take less total code to calculate in most circumstances.
The biggest fudge made is that we need a good VE map. It's impractical to calculate a VE map the tools available to the average tuner, so it needs to be found experimentally.
There are a few other assumptions that I will not spend time defending because they are also assumptions with a mass airflow sensor. Such assumptions involve how net airflow relates to actual air flow in the cylinder with regards to things like blow-through, dynamic compression, etc. I do not see how such aspects are any worse with this system than they are with a hotwire MAF.
The VE map is a 3D map of RPM vs. Manifold Pressure. I found through my own testing that VE varies not only by RPM, but also manifold pressure, so a 3D map was created. A 2D map with RPM alone was not sufficient. I've found no other significant factors in calculating a fast, accurate mass airflow number with the above model.
Once a mass airflow number is calculated, it is used in *exactly* the same manner as the number that used to come from the MAF scaling table. I cannot make this point strongly enough! There will inevitably be many questions that will effectively be answered by understanding this point. Q. How did you come up with the VE map in the base ROMs? A.
The first map I used was created by taking previous MAF logs and back calculating for VE. This got me close, but it is hard to transform that perfectly to a 3D RPM vs. MAP array. The remainder of tweaking was found experimentally. The technique is the same as adjusting the MAF scaling table using fuel trims, stock wideband, and aftermarket wideband readings. Q. Is the stock MAP sensor sufficiently accurate and fast? What is the failsafe? A.
I haven't found any reason to believe it is not. The ECU reads the MAP sensor voltage and converts it to manifold pressure just as often as it does for the MAF sensor. The value from MAP is used immediately after analog to digital conversion and is NOT filtered, averaged, or checked for failsafe before used in the SD system.
If your MAP sensor fails, the car will not run at all, or run very poorly. The existing check engine codes and failsafes for MAP remain untouched, but since MAP is the failsafe in the event of MAF failure a very basic SD code (with no VE, very crude) with MAP is used for fueling. With this new SD system, the opposite is NOT true. There is no backup method of fueling if the MAP sensor fails. MAP sensor failures don't seem to be a problem with Subarus, so I have not built in a failsafe for this. It is technically possible to revert back to MAF in the event of MAP failure for fueling, so this may work its way in at a later date. Q. How do I tune the VE map? A. Part 1
Essentially the same as you tuned your MAF scaling table, except it is a 3D table instead of 2D. The rest of this document will supply additional hints, but essentially you need to look at your fuel trims for low load/rpm and compare your WB02 to your fuel map for high load and high rpm. This should be a familiar process more or less.
The supplied VE map will get you started as well. The lower airflow areas and idle should be very close if you are on stock intake and exhaust manifolds regardless of what turbo, intercooler, and exhaust you have. If you have big problems with idle and cruise, start by tweaking injector scaling and latency. A. Part 2
Increasing VE adds fuel. Decreasing it lowers fueling. Instead of looking at your MAF voltage and changing that spot on the MAF scale, you need to look at your RPM and manifold pressure and adjust that spot on the 3D VE table.
Essentially the metrics and reasons you use to justify changes to MAF scaling will be the same as you use to change the VE map. Use fuel trims and your front O2 readings for low to medium load and RPM, and use a wideband for high RPM. I will not cover this extensively for now, as these should be familiar ideas by now. Q. How do I tweak idle? How does injector latency factor in?A.
First, injector latency needs to be "correct." If you have previously set it higher or lower than actual reported latency to adjust for an aftermarket intake, you need to set it back to what it really "should" be. You will not need or want to adjust injector latency to fix idle or stall issues due to weird intake MAF response, as this is now irrelevent.
You also should not need to tweak the idle airflow and idle load maps. The core issues that would cause you to want to change these maps are negated by removing the MAF and replacing it with a speed density fuel calculation. I suggest reverting back to stock idle load and idle airflow maps.
From there, you will be modifying the VE table at the RPM and vacuum level your car idles at. RPM will certainly just be 800, and vacuum will be about -10 to -7 psiG depending. The important part to get right here is the ramp across load columns. VE should jump up pretty fast from idle vacuum to zero psi at 800 rpm, then hold steady above that. You never really will hit boost at 800 rpm, so don't worry about that. If the car wavers, again, watch the vacuum and try to identify if it is going rich or lean as vacuum goes up and down. Also keep in mind even the front O2 has a slight delay at idle.
If you do leave injector latency too high, you'll notice you have to greatly lower VE at idle to keep fuel trims in line. If you notice a massive drop in VE near idle, you probably set your injector latency too high. Q. What if I change my AVCS settings? How does AVCS factor? A.
AVCS changes will usually change the engine's actual VE, meaning you will need to adjust your VE table. If you start by having fuel trims right and open loop fueling matching your fueling table, you can see where to tweak your VE map by looking at how your fuel trims and WB02 change readings at a given boost and RPM.
For example, if you have a car tuned well but with a stock AVCS map, and it spools at about 14.0:1 at 3200rpm at 0 to 5 psi, then change AVCS, you might see your spool suddenly go to 15.5:1 at 3200rpm at 0 to 5 psi. This means you need to increase the VE at that RPM and boost level.
This also means your AVCS changes just worked, and you're flowing more air. VE changes are pretty obvious with a VE map as you'll run leaner than before. Be careful, as you don't want to suddenly find you are running lean and running the same timing when your AVCS changes just let you flow 2-3% more air. It is best to run slightly conservative fueling and timing while tuning AVCS and make minor changes each test.
AVCS tuning itself is outside the scope of this document. But, I will briefly suggest that you test by try several maps with stock-like shape, but at 3-5 degree increments apart. As long as your Fuel Trim D doesn't move and you don't change anything else in the map, the AVCS setting that processes the leanest wideband readings is flowing the most air. I will not digress any further into AVCS tuning here, or in discussions of speed density. Q. Where should the MAF be located for the IAT reading? A.
There are two good spots and several bad spots. Air temperature certainly does come into play given the Ideal Gas Law takes into account air temperature. Lower temperature in the manifold definitely increases airflow.
* Overall the best place would be between the intercooler and intake manifold in a blow-through location. Remember, pipe diameter doesn't matter since we are not using the actual MAF signal. There are plenty of blow-through boost tube options out there. Just get the IAT into the charge stream after the intercooler.
* The second best place is before the turbo, but with a cold air intake. While it will not measure the air temperature that is going into the manifold, the air temperature you do measure should be correlated to how well the intercooler is working. A roughly equivalent location would be to place the IAT adjacent to the intercooler in the bumper so
it gets the same airflow as your front mount intercooler. The key point to realize here is the IAT should be close to ambient temperature flowing over the intercooler. That's how the correlation is maintained. The slightly temperature gain from IAT to manifold air temp can be "absorbed" or "accounted for" by adjustments in the high load areas of the VE map.
* The two different locations (blow through and cold air) above will result in a different VE map while in boost, with the biggest differences at the highest boost and practicaly no difference under low boost, zero boost, or vacuum. The blow through will read a higher temperature under the same conditions (same actual airflow) so the VE map will need to be
set slightly higher for the SD system to end up calculating the same total airflow as the cold air intake located IAT sensor. Technically the blow-through VE map would be end up being more accurate.
* A bad spot would be in a hot air intake. The intake temperature will not really match the air temperature after it has been cooled by the intercooler, thus you lose the correlation. That is, the VE map cannot be adjusted to fix this. Adjusting the Airflow vs. IAT airflow compensation map may help, but this is an extra map to have to fix, and then the map cannot be used to adjust for other things. Idle will be difficult to handle and fuel trims will vary based on intake temperature. (As an aside, this is the same core reason I do not like hot air intakes in general, not just for speed density. The difference here is it not only affects compensation tables but also directly affects fueling calculation.)
* Another bad spot would be after the turbo, but before the intercooler. There is going to be a massive change in temperature from the IAT to the manifold. There is little way to correctly compensate your tune in general based on IAT. What happens when it is 20F outside vs when it is 50F out? Who knows... The ECU certainly won't!
* Another possibility would be to measure temperature in the intake manifold itself. You cannot actually mount the MAF in the intake manifold. You would need to buy a manifold air temperature sensor, tap a hole, mount the sensor, splice the wiring in (not necessarily straight forward), and then calibrate this new sensor by modifying the IAT sensor scaling
table (this could be difficult). I have not attempted this yet myself, so I will not pass judgement either way as to how well this would work. Technically it is optimal to measure temperature at the same location as pressure (i.e. the manifold), so it should work best. The ideal gas law assumes pressure and temperature are measured at the same location.
* As odd as it may seem, if you have a hot air intake it is best to remove the MAF and place it in a location where it will have the same air temeperature as the intercooler gets. If it were practical I would say tape the MAF onto the front of your intercooler (TMIC or FMIC). However, you will no longer be able to log "Old MAF" and get a remotely valid value since the MAF element is not in the intake path. Q. What about the airflow vs. IAT airflow compensation map? IAT timing compensation? Other misc. IAT compensations? A.
How you tune these maps will depend greatly on where you are locating the IAT sensor. On a blow through or manifold temperature location you should not need to use this compensation to maintain consistent AFR (instead, fix your VE map). On a hot air IAT sensor location you may have to add fuel at higher IAT. It may be difficult to determine
if you should adjust your VE map or this airflow vs. IAT map. You will need more than one data point to determine this. Q. What happens if I have a leak between the air filter and the turbo? A.
Mostly nothing. You might get some unfiltered dirty air. There are really no drawbacks or big problems with even major leaks in the intake before the turbo. Afterall, you could pull the intake complete from the turbo and leave it open, or just put chicken wire or mesh screen over it. You don't even need an intake. If you had a car that was severely limited by a poor flowing air filter, a sudden leak here may affect actual VE.
In a MAF car, a leak between the MAF and turbo can cause you to go lean, which can be dangerous depending on how bad the leak is and how it reacts at different airflow levels. A leak that only leaks a lot at high flow could cause you to go dangerously lean at high load levels AND run higher timing, causing knock. Almost a moot issue with SD!Q. What happens if I have a leak between the turbo and intake manifold? A.
This situation in a MAF car will cause you to go rich. The bigger the leak, the richer you go. In SD, you won't. This is both a good and a bad thing. It is harder to look at a log file and see a leak. If you suddenly hit 10.2:1 AFR on your wideband when your fuel map says 11.0:1 and you have been hitting 10.9-11.1:1 previously, you just sprung a leak and it is fairly obvious. With SD, you may not notice. The air that leaks out still counts against you on the turbo's compressor map, though! You'll be further to the right, closer to the choke line by exactly the amount of air you are leaking.
I suggest using the same intake system leak test as people typically use for MAF cars, with an adapter and pumping the intake system with pressurized air. I will not cover this in detail here as it has been covered elsewhere countless times. Q. What happens if I have a minor intake manifold vacuum leak? A.
If the leak is not bad enough to actually cause idle vacuum (manifold pressure) to change, you just potentially get some unfiltered air into the engine. Not a big deal. You will get some compressed air leaking out under boost, but as above with a post-turbo leak, if it is minor it will be a negligable problem.
If the leak is only near one cylinder, it could cause a loppy idle and would lead to the same troubleshooting steps as with a MAF. In this circumstance there isn't any distinct advantage to using SD. Q. How is "engine load" affected? A.
It is not directly affected. Again, mass airflow g/s is now calculated via speed (rpm), density (manifold pressure) rather than looking it up on the MAF scaling table. Either way, this number is later used by the ECU to come up with the engine load parameter. Understanding this is key to successfully grasping the concept of this SD system. Q. How does logging work? A.
The standard SSM airflow g/s values are what is calculated by SD. There are new direct-log parameters available in the modified logger XML to log "Current VE" and the old MAF scaling table. There is also a new direct-log parameter called "raw airflow" which is always how much airflow the engine would flow at the current moment IF VE was 100%. It is an intermediate value needed for SD, so I put it in for those who are curious. Q. So, really, how well does it work? A.
I've found it works extremely well. It completely negates any problems you may have had, do have, or will have with getting any number of aftermarket intakes calibrated right, or their funky behaviors due to temperature, turbulence, tidal effects of the moon, and soforth.
Still, I do not yet recommend it for small or stock turbo cars. I feel it is not really required. Stick with a stock intake and a clean filter and keep leaks out and you shouldn't have problems. Adding tuning time for an aftermarket intake or SD VE map is not worth the time and effort. Q. Do you plan on making new versions? A.
Some things I would like to do include:
* I would like to create a Type B system that simply changes the load reference on most important maps (like base timing, timing advance/KC, AVCS, etc.) to manifold pressure rather than "load." This would limit the trickle down effect of changing the VE map having an effect on timing (rather than just fueling). For now, keeping load based on VE forces people to pay attention to their VE maps by making small changes and carefully adjusting their injector parameters rather than covering up for bad latency or scaling values in the VE map. There are good arguments for and against making this change.
* Failsafe. When MAP check engine light is active, fall back to MAF for fueling. Kinda like the reverse of what a MAF cars does when the the MAF goes into failsafe mode and uses a very half-assed speed density hack to keep the car running. Q. How much does it cost? A.
It is free to use and distribute, but keep in mind the source code must be included in all distributions of derivative work. If you find the speed density patch useful and would like to donate I would certainly appreciate at it, but I cannot offer anything in return for your donation. http://dl.dropbox.com/u/27624835/car/ecu%20and%20tuning/openecu/speed-density/donate.html