Continuing the discussion over from the cam thread.
So I spent a lot of time researching this last night. Lots to unpack.
First, as best as I can tell, the Comptech IEM ("Internal Engine Modifications") package included the following items: (1)Comptech Camshafts; (2) 36mm "de-shrouded" intake valves; (3) "light" port and polish of the heads; (4) Comptech valve springs (Eibach); (5) milled heads to slightly increase compression; (6) intake seats re-ground to fit +1 mm valves. At some point early in the life of the product, Comptech also was milling the valve spring pockets deeper and using the factory Honda springs. This became cost prohibitive and they switched to using the Eibach springs, which are a stiffer rate and did not require head machining. Per docjohn and greenberet, the package was plug-and-play, e.g., it did not require any changes to the ECU to run properly.
Based on my research, and setting aside ignition timing for the moment, the NSX OBD-I ECU runs in three different fueling "phases": (I) Cold Start/Idle Open Loop; (II) Warm idle/Part-Throttle Closed Loop; (III) High load/VTEC Open Loop. In closed loop operation, the ECU receives signals from the two narrowband O2 sensors and continually adjusts the fuel amount (via pulsewidth adjustments to the fuel injectors and/or fuel pressure) to achieve a "perfect" mixture ratio of 14.7:1. 14.7:1 is ideal for emissions and delivers the best performance from the catalytic converters, it also ensures a complete burn of the fuel, clean engine oil and a clean combustion chamber. However, this ratio is not ideal for performance and results in a VE that is lower than what the engine is capable of. The ECU's fuel trim adjustments are expressed in two variables: BLM and INT. BLM (or, Block Learn Multiplier) is the long term fuel trim value. This is the value that is "learned" and stored in the ECU's volatile memory, and which is erased if you pull the clock fuse or otherwise disconnect power to the ECU. BLM can be anywhere from 0 to 255, with the ideal number being 128, which means that no fuel changes are needed and the AFR is at a perfect 14.7 for that load state. A BLM below 128 means that the mixture is too rich in that load state and the ECU will reduce fuel to lean it out. A BLM higher than 128 means the opposite- the mixture is too lean and the ECU will add fuel to enrich. "Long term" is really in the context of computer time- the BLM is updated every few seconds. INT (or, Integrator) is the short term fuel trim value, which is adjusted many times each second based on signal from the O2 sensors and is not stored in the ECU. INT also is between 0 and 255 with 128 also meaning that no fueling changes are required. On cold start, INT is locked at 128 to ensure that the ECU will not make any changes to fuel until the O2 sensors are warmed up. Once the engine goes into closed loop, INT will change as the O2 sensors report back on the AFR. If the mixture is lean, INT will go above 128 and the ECU will begin increasing the injector pulsewidth. If the lean condition persists for a few seconds, BLM also will go above 128. INT "drives" BLM back toward 128 from either direction. If the engine moves to another load state before INT can correct the mixture, BLM acts as a "reference book" for the ECU so that if the engine returns to that load state again, the ECU will already know roughly how much fuel to add or subtract. This is the "learned" fuel trim function of the OBD-I ECU. It works very well, but it also GREATLY complicates engine tuning.
In open loop operation, the ECU ignores the signal from the O2 sensors and references a simple lookup table to determine how much fuel to add to the mixture. This seems simple, but a complicating factor is that apparently, the ECU will reference the highest load state BLM value and apply it to all cells in the open loop table! I have to investigate the NSX tables, but generally speaking this means the following: lets' say that the high cell BLM value is 135. This means that right before the engine moved out of closed loop, the best information available to the ECU makes it think that the mixture is 5.5% (135/128) too lean at that load state and it should add fuel. Thus, when you stomp on the gas and go into VTEC, it will apply a 5.5% multiplier to all load states in the open loop table. Assuming you have already tuned the open loop table with a wideband O2 to have a "perfect VE" AFR (usually somewhere between 12.5 and 13), your mixture will be 5.5% too rich across the powerband. You won't be getting maximum power out of the tune. This is frustrating, but otherwise ok for lean BLM values, since the engine will be running on a safer, richer mixture. Where it gets sketchy is if the BLM is in the rich range (i.e., lower than 128) when you step on the gas. Here, the ECU will pull fuel and lean out your mixture! Not ideal at WOT, as it could potentially result in dangerous conditions inside the combustion chamber. So, the prevailing wisdom appears to be to set your open loop fuel maps slightly on the rich side as a safety margin in case the ECU pulls fuel due to the BLM values.
As for how to tune, there seem to be many options:
OPTION 1 - TUNE OPEN LOOP ONLY -- Option one is to leave the closed loop operation completely alone. Even with the IEM heads, header, exhaust and ported intake, the ECU will still be able to get the car to 14.7 during closed loop. Instead, you focus on tuning the open loop fuel map to hit that magic 12.5-13 sweet spot, using a secondary wideband O2 sensor installed on one of the manifolds, like Old Guy suggested. I think this is what most aftermarket tuners do. To me there are two issues with this method. First problem is if you change injectors. The entire closed loop feedback system assumes the ECU knows how big the fuel injectors are so it can know how much fuel to add or subtract. If you install larger injectors, you will alter fueling across the entire map because the ECU will still command a certain pulsewidth, say 4 ms, but a RDX 410cc injector will deliver more fuel over this time period than the OEM 240cc. Thus, while the ECU still my be able to deliver 14.7 AFR in closed loop, we likely would see bigger "swings" around that number as the ECU over-fuels, realizes it is too rich, then drastically pulls fuel to correct. Real datalogging would be needed to confirm this, of course. Second problem is that you're leaving a lot of performance on the table, since you would not tune the closed loop sections of the map at all (though the base fuel map may influence the closed loop trims- still to be figured out)
OPTION 2 - TUNE OPEN LOOP AND CLOSED LOOP -- Option two is harder, because you have to figure out a way to tune closed loop operation in a way that the ECU will "chase" a more favorable AFR for performance instead of 14.7, which is best for emissions and fuel economy. As discussed briefly above, my research has indicated that the base fuel map does have some influence on closed loop operation. We would have to figure out the mechanism for this in the NSX ECU, but it may be that the base fuel tables give the ECU a baseline to set BLM and INT and then adjust off of that based on the O2 data. It would be interesting to now if the base tables continue to influence BLM and INT as the O2 sensors are reporting back. Maybe as a multiplier? But, even if we figure all that out, the ECU is still going to adjust fuel to get to that 14.7 mark, thus negating your cams and headers and all of the other performance parts you spent money on- at least in closed loop. Forums like pgmfi.org and others have members who vaguely reference a "BLM tune" with the implication that you can alter the BLM data (e.g., BLM = BLM * 1.05) in the ECU so that the ECU will think that the mixture is leaner than it really is and add fuel. I have no idea if this is even possible, considering I cannot even find a BLM table in the NSX definition. This may be something that only appears in a datalog and there is no .adx file for this definition (another issue we will have to tackle). A more elegant solution may be to alter the voltage table for the O2 sensors. After all, the ECU does not see AFR, it sees voltage, which it converts to a data point. The ECU code tells it to chase the data point, not 14.7 AFR. If we change the table so the the voltage describes a mixture that is leaner than it actually is, the ECU would chase a richer mixture across the entire closed loop function. We would have to tune this with a secondary wideband. I also have to find the table or scalar for the O2 sensor voltage in the definition.
OPTION 3 - TUNE OPEN LOOP AND SHRINK CLOSED LOOP -- When you think of closed loop, it actually makes sense in a way. When you're tooting along on the highway at 70 mph, 3,000 rpm and 10% throttle, you don't need tons of power. You don't need that 12.5 AFR and, in fact, it's better to have 14.7 because it will keep your cats, oil and combustion chamber clean. It's only when you downshift and step on the gas to pass that you want to have that power bump that you spent thousands on in parts to achieve. Honda tuned the fuel and timing maps to accomplish this, but they also had emissions requirements, so they probably placed a lot more of the map in closed loop than you really need for clean highway cruising. So, maybe a better solution than #2 is to fully tune the base open loop maps, leave closed loop alone, and "shrink" the area of the maps that would fall under closed loop. I'm still looking for the scalars and/or tables that would control this for the NSX. I think this is a more elegant tuning solution and if it is possible, I think this is the direction in which I want to go.
I am going to install TunerPro on my desktop tonight and start poking around the NSX definition to get an idea of how the ECU maps correspond to the above conditions.
[MENTION=26435]Old Guy[/MENTION]
[MENTION=12356]Mac Attack[/MENTION]
[MENTION=20915]RYU[/MENTION]
[MENTION=16606]sr5guy[/MENTION]
[MENTION=12723]greenberet[/MENTION]
[MENTION=4282]docjohn[/MENTION]
I am not really familiar with the CT stuff. I had assumed that IEM refers to Intake, Exhaust, Muffler - bolt on stuff which usually has a minimal effect of volumetric efficiency. If CT limited their head modifications and camshaft such that it would operate acceptably with the OEM ECU, then you are probably OK to do the resistor snip on your auto ECU and run on the manual fuel maps. Peak horsepower at wide open throttle usually occurs when the fuel map is set to give an AFR around 13 (or a nudge less) at the RPM & MAP corresponding to peak power. At wide open throttle the OEM ECU is in open loop and probably runs the engine significantly below an AFR of 14. If the CT package raises the VE and you leave the fuel map as is, the resultant AFR must go up. However, perhaps CT limited the VE improvement in the cam / head / IEH package such that the AFR would not become risky (higher than 14.7). All they did was eat into some of the margin that Honda provided in the fuel map. It means that they likely left some horsepower on the table; but, were able to market the package to a larger range of customers (because aftermarket ECUs were not so common in the early '90s). The up-side for you is that simple tuning of the fuel map may yield additional horsepower.
Wideband O2 sensors- yes & no. I was thinking of adding WB sensors in the manifold in addition to the OEM NB sensors by welding in extra bungs. The WB would just be for monitoring AFRs. The ECU would continue to run off the OEM NB sensors. You cannot plug a WB sensor into the OEM ECU for a lot of reasons. The OEM ECU lacks the controller required to operate a WB sensor, the output slope is inverted and .... on and on. What some / most aftermarket wideband controllers allow you to do is emulate a NB sensor. The controller will have two outputs. A WB output to drive an AFR gauge and a simulated NB output that you can connect to your ECU. In theory this allows you to replace your existing OEM NB sensor with a WB sensor and get two outputs. Problem is the theory does not always seem to work so well. You may want to ask around to see if anybody has done this successfully. One of the obvious problems to me is that when you ditch your heated narrow band and just provide a voltage signal to the ECU, the heater monitoring circuit in the ECU is connected to nothing and will throw a code unless you can fake the heater circuit some how.
Check out Sparkfun and Adafruit. One of them had some good tutorials for replacing high pin count devices - usually SMDs.
Fuel trim is probably not a term you would find on TunerPro. It would probably be described as fuel correction or exhaust gas O2 sensor correction and may or may not be displayed. Trim, or fuel correction or EGO correction would typically be displayed as the % correction to the fuel map value required to bring the actual AFR to its target value - which on an OEM ECU will be 14.7. This begs the question, when you rewrite the fuel maps on the OEM ECU, are you only rewriting the fuel maps in the portion of the maps that correspond to open loop control? If you are in closed loop control with the narrow band sensors you only have one option and that is to run at an AFR of 14.7.
So I spent a lot of time researching this last night. Lots to unpack.
First, as best as I can tell, the Comptech IEM ("Internal Engine Modifications") package included the following items: (1)Comptech Camshafts; (2) 36mm "de-shrouded" intake valves; (3) "light" port and polish of the heads; (4) Comptech valve springs (Eibach); (5) milled heads to slightly increase compression; (6) intake seats re-ground to fit +1 mm valves. At some point early in the life of the product, Comptech also was milling the valve spring pockets deeper and using the factory Honda springs. This became cost prohibitive and they switched to using the Eibach springs, which are a stiffer rate and did not require head machining. Per docjohn and greenberet, the package was plug-and-play, e.g., it did not require any changes to the ECU to run properly.
Based on my research, and setting aside ignition timing for the moment, the NSX OBD-I ECU runs in three different fueling "phases": (I) Cold Start/Idle Open Loop; (II) Warm idle/Part-Throttle Closed Loop; (III) High load/VTEC Open Loop. In closed loop operation, the ECU receives signals from the two narrowband O2 sensors and continually adjusts the fuel amount (via pulsewidth adjustments to the fuel injectors and/or fuel pressure) to achieve a "perfect" mixture ratio of 14.7:1. 14.7:1 is ideal for emissions and delivers the best performance from the catalytic converters, it also ensures a complete burn of the fuel, clean engine oil and a clean combustion chamber. However, this ratio is not ideal for performance and results in a VE that is lower than what the engine is capable of. The ECU's fuel trim adjustments are expressed in two variables: BLM and INT. BLM (or, Block Learn Multiplier) is the long term fuel trim value. This is the value that is "learned" and stored in the ECU's volatile memory, and which is erased if you pull the clock fuse or otherwise disconnect power to the ECU. BLM can be anywhere from 0 to 255, with the ideal number being 128, which means that no fuel changes are needed and the AFR is at a perfect 14.7 for that load state. A BLM below 128 means that the mixture is too rich in that load state and the ECU will reduce fuel to lean it out. A BLM higher than 128 means the opposite- the mixture is too lean and the ECU will add fuel to enrich. "Long term" is really in the context of computer time- the BLM is updated every few seconds. INT (or, Integrator) is the short term fuel trim value, which is adjusted many times each second based on signal from the O2 sensors and is not stored in the ECU. INT also is between 0 and 255 with 128 also meaning that no fueling changes are required. On cold start, INT is locked at 128 to ensure that the ECU will not make any changes to fuel until the O2 sensors are warmed up. Once the engine goes into closed loop, INT will change as the O2 sensors report back on the AFR. If the mixture is lean, INT will go above 128 and the ECU will begin increasing the injector pulsewidth. If the lean condition persists for a few seconds, BLM also will go above 128. INT "drives" BLM back toward 128 from either direction. If the engine moves to another load state before INT can correct the mixture, BLM acts as a "reference book" for the ECU so that if the engine returns to that load state again, the ECU will already know roughly how much fuel to add or subtract. This is the "learned" fuel trim function of the OBD-I ECU. It works very well, but it also GREATLY complicates engine tuning.
In open loop operation, the ECU ignores the signal from the O2 sensors and references a simple lookup table to determine how much fuel to add to the mixture. This seems simple, but a complicating factor is that apparently, the ECU will reference the highest load state BLM value and apply it to all cells in the open loop table! I have to investigate the NSX tables, but generally speaking this means the following: lets' say that the high cell BLM value is 135. This means that right before the engine moved out of closed loop, the best information available to the ECU makes it think that the mixture is 5.5% (135/128) too lean at that load state and it should add fuel. Thus, when you stomp on the gas and go into VTEC, it will apply a 5.5% multiplier to all load states in the open loop table. Assuming you have already tuned the open loop table with a wideband O2 to have a "perfect VE" AFR (usually somewhere between 12.5 and 13), your mixture will be 5.5% too rich across the powerband. You won't be getting maximum power out of the tune. This is frustrating, but otherwise ok for lean BLM values, since the engine will be running on a safer, richer mixture. Where it gets sketchy is if the BLM is in the rich range (i.e., lower than 128) when you step on the gas. Here, the ECU will pull fuel and lean out your mixture! Not ideal at WOT, as it could potentially result in dangerous conditions inside the combustion chamber. So, the prevailing wisdom appears to be to set your open loop fuel maps slightly on the rich side as a safety margin in case the ECU pulls fuel due to the BLM values.
As for how to tune, there seem to be many options:
OPTION 1 - TUNE OPEN LOOP ONLY -- Option one is to leave the closed loop operation completely alone. Even with the IEM heads, header, exhaust and ported intake, the ECU will still be able to get the car to 14.7 during closed loop. Instead, you focus on tuning the open loop fuel map to hit that magic 12.5-13 sweet spot, using a secondary wideband O2 sensor installed on one of the manifolds, like Old Guy suggested. I think this is what most aftermarket tuners do. To me there are two issues with this method. First problem is if you change injectors. The entire closed loop feedback system assumes the ECU knows how big the fuel injectors are so it can know how much fuel to add or subtract. If you install larger injectors, you will alter fueling across the entire map because the ECU will still command a certain pulsewidth, say 4 ms, but a RDX 410cc injector will deliver more fuel over this time period than the OEM 240cc. Thus, while the ECU still my be able to deliver 14.7 AFR in closed loop, we likely would see bigger "swings" around that number as the ECU over-fuels, realizes it is too rich, then drastically pulls fuel to correct. Real datalogging would be needed to confirm this, of course. Second problem is that you're leaving a lot of performance on the table, since you would not tune the closed loop sections of the map at all (though the base fuel map may influence the closed loop trims- still to be figured out)
OPTION 2 - TUNE OPEN LOOP AND CLOSED LOOP -- Option two is harder, because you have to figure out a way to tune closed loop operation in a way that the ECU will "chase" a more favorable AFR for performance instead of 14.7, which is best for emissions and fuel economy. As discussed briefly above, my research has indicated that the base fuel map does have some influence on closed loop operation. We would have to figure out the mechanism for this in the NSX ECU, but it may be that the base fuel tables give the ECU a baseline to set BLM and INT and then adjust off of that based on the O2 data. It would be interesting to now if the base tables continue to influence BLM and INT as the O2 sensors are reporting back. Maybe as a multiplier? But, even if we figure all that out, the ECU is still going to adjust fuel to get to that 14.7 mark, thus negating your cams and headers and all of the other performance parts you spent money on- at least in closed loop. Forums like pgmfi.org and others have members who vaguely reference a "BLM tune" with the implication that you can alter the BLM data (e.g., BLM = BLM * 1.05) in the ECU so that the ECU will think that the mixture is leaner than it really is and add fuel. I have no idea if this is even possible, considering I cannot even find a BLM table in the NSX definition. This may be something that only appears in a datalog and there is no .adx file for this definition (another issue we will have to tackle). A more elegant solution may be to alter the voltage table for the O2 sensors. After all, the ECU does not see AFR, it sees voltage, which it converts to a data point. The ECU code tells it to chase the data point, not 14.7 AFR. If we change the table so the the voltage describes a mixture that is leaner than it actually is, the ECU would chase a richer mixture across the entire closed loop function. We would have to tune this with a secondary wideband. I also have to find the table or scalar for the O2 sensor voltage in the definition.
OPTION 3 - TUNE OPEN LOOP AND SHRINK CLOSED LOOP -- When you think of closed loop, it actually makes sense in a way. When you're tooting along on the highway at 70 mph, 3,000 rpm and 10% throttle, you don't need tons of power. You don't need that 12.5 AFR and, in fact, it's better to have 14.7 because it will keep your cats, oil and combustion chamber clean. It's only when you downshift and step on the gas to pass that you want to have that power bump that you spent thousands on in parts to achieve. Honda tuned the fuel and timing maps to accomplish this, but they also had emissions requirements, so they probably placed a lot more of the map in closed loop than you really need for clean highway cruising. So, maybe a better solution than #2 is to fully tune the base open loop maps, leave closed loop alone, and "shrink" the area of the maps that would fall under closed loop. I'm still looking for the scalars and/or tables that would control this for the NSX. I think this is a more elegant tuning solution and if it is possible, I think this is the direction in which I want to go.
I am going to install TunerPro on my desktop tonight and start poking around the NSX definition to get an idea of how the ECU maps correspond to the above conditions.
[MENTION=26435]Old Guy[/MENTION]
[MENTION=12356]Mac Attack[/MENTION]
[MENTION=20915]RYU[/MENTION]
[MENTION=16606]sr5guy[/MENTION]
[MENTION=12723]greenberet[/MENTION]
[MENTION=4282]docjohn[/MENTION]
Last edited: