Posted on

Oxygen sensors and lambda control

“Closed loop” refers to to the function of the system, meaning fueling is driven off of feedback from the oxygen sensor. Whether it is mathematically driven or table driven as the initial calculation for the amount of fuel needed, once we are closed loop, we are completely reliant on the data provided by the oxygen sensor for the final fueling value in the cylinder.

In many cases, idle and part throttle are where we learn the fuel trim that is applied globally.

The way we learn fuel trims is with our oxygen sensor. Commonly this is with a narrow band oxygen sensor. It does not directly measure lambda, but instead can report lean of lambda of 1, or rich of lambda of 1. Based on this, the ECU will jump back and forth across that line using feedback from the oxygen sensor. Starting from one side of that line, it adjusts an offset to base injection time to move in the opposite direction. It does so until it crosses the line, then it adjusts in the opposite direction in an effort to move across the line again. If we start rich of lambda of 1, it will trim lean until it crosses the line, at which point it will trim rich until it crosses the line again.
Clearly this is subject to the response rate of the O2 sensor. If we start out at lambda of 14.0 and start subtracting fuel, we cross the line at lambda of 14.7, but the ECU does not know this until the O2 sensor reports that it has crossed over that threshold. This can be anywhere from 15:1 to 18:1 AFR. Once it detects that it is over this line, it does the same in the “adding fuel” direction. Depending on rate of response, it can overshoot by quite a bit in that direction as well. The median of the swing range it is using it assumes is lambda of 1. This is still correct with both a narrow swing range and a wide swing range, even if the resulting drivability is poor when the system is extremely lean or extremely rich. We shoot for as narrow a range as possible as deviation from that mid point is inefficient. At cruise, we generally have a very tight/fast swing, and this is assisted by the rate of mass flow and the temperature.

If we have slow O2 response, such as added volume in the exhaust, cool exhaust temperature, inadequate O2 heater, etc we have a slower response, and thus a wider swing range.

With this hopefully how the system builds the fuel trim is more clear. Now if we look at this versus where we are in a fuel map, we can end up with sections of the map that are lean or rich from an ideal target, and how fast we go into or out of those regions will set how well the fuel trims do at correcting for this incorrect bit of the table.
If we have areas that are too far off, we can quickly get in trouble. For example, if we add fuel, say 20% to just the idle range, we can now learn a fuel trim that is -20%. We will end up exactly the same at idle within a few seconds, but now when we leave idle, we are now applying that -20% fuel correction, and if we go from idle at the staging line of a drag strip, we can now have a wide open throttle pass (which is open loop) that is 20% lean. This will also be the case in just driving around on the street, especially if we go to high throttle. Part throttle will be rich and will need to relearn the correct correction, and then when we get to idle the cycle repeats.

If you need more O2 heater control, or are using cheap sensors with weak heaters, or have excessive volume and heat loss between the cylinder head and the O2 sensor location, then you can end up with problems. If the wideband is picking this up cleanly, which is often the case as most wideband controllers have very good heater control, you may consider using a wideband with a simulated narrowband output to help keep the swing range smaller at idle and light part throttle where the stock narrowband may be outside of its ideal operating range in some applications.

Posted on

MS41 tuning done remotely with the TRM flasher/logger

We do a lot of our custom tuning remotely, often working with teams or shops as well as individuals. For tuning, we can fly to the car or the car can be sent to us, but we only need the car in person if we are needing to make physical changes that the end user cannot or doesn’t want to. Typically this is things like adjusting cam timing. We use our datalogger/flasher to make this process possible. The TRM flasher/logger can stay plugged in to the car and gathers engine data. With a wideband plugged in as well, we can see everything going on with the motor, make mechanical adjustment suggestions (noting intake or exhaust restrictions, resonance issues, or cam timing issues) and also make updates to the calibration (tune) and email that for the flasher/logger to flash into the ECU. This process allows for a higher level of involvement without the expense of physically bringing the car and tuner together. The level of data gathering is also higher than is typically available even with a tuner, car, and dyno in the same room.

Posted on

Cam Timing on the M50 based motors

Dialing in cams can be tricky and take quite a bit of dyno time. Espeically on single vanos motors where we cannot play with cam timing independently in software like on the newer DVANOS cars. Cam movement/position must be adjusted manually, which means pulling the valve cover each time.
Usually, on the dyno, when doing this with an M50 based motor, I will *loosely* install the valve cover. (not all of the grommets, and none of the ones in the middle.) I also have the etorx socket for the 4 bolts on the exhaust cam shortened and welded to a bar to use as a wrench so that I can loosen/tighten the 4 bolts on the exhaust cam without removing the caps or moving the expansion tank or radiator. This allows me to quickly remove the valve cover, move the cam, and reinstall the valve cover quickly. Usually I am primarily concerned with the intake cam position, so I can forego using the TDC pin in the flywheel (just reference the front timing mark to make sure nothing moved) and use the cam block on the exhaust cam to find “home” each time.
Its usually about 10-15 minutes between dyno pulls when I am adjusting the cams this way. I have printed cam blocks that are degreed and will run once at each extreme (up to +/-10 deg depending on the cams, motor, if I had clayed on assembly to verify limits, etc) and narrow down from there. without the degreed cam blocks, you can use standard blocks and feeler gauges at the flat surface on the back of the head to calculate degree. To sanity check that, you can use an angle finder / digital level.
The valve cover will probably leak a little on each removal, but will also leak with not all of the grommets installed. Removing and reinstalling the valve cover gasket so many times will also mean that the last install of it will probably be short lived. When the tuning of the cams is done, I’d put a fresh valve cover gasket on it then.
If you are looking for more peak power, and it looks like things will respond well to retarding the cam more, that does a few things. Retarding the intake cam will move the power to the right, and if sufficiently retarded, will allow for more vanos travel as well. Keep in mind that the more you retard it, and just letting vanos advance more as a result, just helps not lose as much in the RPM’s where vanos is advanced. It won’t gain anything there. If you reach a point where retarding the intake cam more will  either a) lose more down low than it will ever make up for up top or b) move the target peak to an RPM that isn’t feasible. at that point, advancing it again is better.

Tune wise, we can set one with vanos advanced to redline (though be careful with this and any possible valve float, as if it was close, this can result in valve contact. might be worth lifting before redline on the first run.) we can then set one to not advance the vanos at all. We can do this with timing flat in both cases, so we see purely mechanical results of the change.
Another approach is to tune with vanos retarded for all of the cam timing and base tuning/adjustments. From there, when power in the target range is optimized, add vanos back into the mix. You have options there too. See if you can get full vanos advance and let it help with the low RPM, but knowing it might have to be turned off early for safety, and result in a dip in the midrange. Option 2 is to pick that second peak, and probably put it as close as possible to the most used RPM range. (i.e. it’ll do less in the midrange, but you can leave it on longer.)
If we know the target RPM range used (RPM histogram from the usual tracks in normal conditions) we can help make the most total power in the most used RPM range. That is what makes the car the fastest, even if the peak number isn’t the highest.

VANOS is a tool. It is used to advance the intake cam. When it advances is controlled by the ECU. How far it advances is mechanically defined by either a shim in the VANOS unit, or by other mechanical means. Each cam position (retarded and advanced) will have its own torque peak RPM. The distance between those RPM’s will be a function of the total cam advance angle possible. Thus, it is possible to have two peaks only a few hundred RPM apart, or a couple thousand RPM apart.

Posted on

Connecting a wideband to your TRM Datalogger

The TRM datalogger can accept a wideband input via the “headphone jack”.

The mono headphone cable necessary to interface with a wideband is included with the TRM Logger. It should be wired such that the tip is signal and the ring is ground.

The output from the wideband controller should be configured as 0-5v. Standard linear output is the most common to use, but LC1 or any other proprietary output is OK as well. The output type should be noted when the log file is sent to TRM.