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

Heat, Energy, and Temperature

Defining terminology:
The total of all energy in an object is its internal energy.
Heat is not the energy the body contains but the energy transferred from one body to another.

We can make clear distinctions between temperature, heat, and internal energy.
Temperature is a measure of the average kinetic energy of the individual molecules.
Internal energy is the total energy of all of the molecules in the object.
Heat refers to the transfer of energy from one object to another due to a difference in temperature.

The heat required to change the temperature of a material is proportional to the mass of the material and the temperature change. (Commonly seen as Q = m*c*deltaT)

Posted on

Launch Control, antilag, and rev limiters

rev limiters, launch control, and antilag, are all different things.
Antilag is typically accomplished via combustion continuing into the exhaust manifold to spin the turbocharger, but without accelerating the engine. This can be at light part throttle or zero throttle by the driver, but the system will hang the throttle open slightly (or slightly more than standard target) and allow more mass flow through the turbo. it will also add more fuel and greatly delay ignition. The result is a lot of really hot exhaust gasses to spin the turbocharger. You usually do as little of this as possible, as this will melt almost any turbo charger and manifold. Usual best implementation is closed loop on turbine speed (and on a car with lots of cam control and DBW). Just enough energy to hold turbine speed target is the goal, as more will be excess heat/energy dumped into the components.
Launch control is a system to aid the driver in getting off the line more efficiently. This generally means minimizing wheelspin. This can be used in cases where traction control is illegal or otherwise unavailable, as most sanctioning bodies will let you ride preset torque or speed/acceleration targets as long as the system is not closed loop.
Rev limiters are a method of preventing overspeeding of the engine under its own power. This can be accomplished by cutting air, cutting fuel, or cutting ignition.

Posted on


The purpose of the differential is to allow two wheels to turn at different speeds while coupled to one shaft.

With the two sides coupled and no speed differential possible, as in a “locked” or “spool” or “welded” differential, the drive power when turning is substantially higher as slip is required on one side or the other. Likewise, steering is compromised as the vehicle will want to continue straight, and in worse case scenario, steer wheel slip occurring before drive wheel slip will make that so.

The open differential allows the outside and inside wheels to turn at different speeds, and any speed so long as the sum of the two speeds is a constant. The open differential also equally divides the torque between the two wheels, but if one wheel slips, twice the torque will be available to the slipping wheel. That the wheel that gets more torque is always the slower wheel, the slower wheel is always the inside wheel, and the inside wheel is always the least loaded wheel,  is one of the reasons the open differential is not an ideal solution for a performance application.

Most differentials of the “limited slip” variety fall somewhere between an open differential and a locked differential.

The various methods include Viscous, Torsen, and Salisbury, with a few that are variations on those themes.


Viscous differentials use a high viscosity fluid in a special “clutch” that has tight tolerances but without actual contact. Unlike most oils which reduce viscosity with temperature, the oil used in a viscous LSD general increases viscosity with temperature. The higher viscosity fluid creates more drag (which increases further with additional drag and temperature) between the plates. That drag between plates is drag between the two sides of the outputs. The advantage to this design is that the “wear” component is the fluid. In conventional cornering, the differential will act as an open unit. With wheel spin events, the slip creates heat which creates the lockup, but that is a relatively slow process. This time lag, and variability in lockup with unit temperature as well, makes tuning a differential like this for track use difficult.


Torsen differentials use helical gears with spur gears instead of the spider gears found in an open differential. This differential also can act like an open differential at zero load or light load. The gear meshes are loaded by input torque, and with sufficient torque, the two sides are essentially locked. How “locked” and at what input torque, is a function of the design itself, and cannot be varied easily. Lockup follows input torque, thus more torque is more lockup, which may or may not fit the speed/gear/turn radius of your particular track. Lower gears / lower speeds means more input torque available, but often when at lower speeds, it is because of a tighter turn. More lockup in a tighter turn can be a disadvantage, and not enough lockup in high speed turns can also be a disadvantage. Finding the right balance is critical.


Salisbury differentials use clutch packs, spider gears, and ramps. The spider gears sit on shafts in “ramps”. As input torque is applied, the spider gears on those shafts are turned, and the shaft spreads the ramps. The ramps load clutches, which can progressively lock the output shafts together. The variables in this type of differential are many. Preload can be varied, and controls “unloaded” lockup. Bias ratio can be changed by changing the ramp angles. Load sensitivity can be changed by changing the number of clutch plates.

With the ramp angles variable, you can greatly vary the effect. Near 90 degrees, and no lockup will occur with input torque. Near 0 degrees and full lockup will occur with little input torque. Those ramp angles can be varied by direction as well, so different acceleration ramps and deceleration ramps are possible. Preload is adjustable, and as the name indicates, is the “lock” between the shafts at zero input torque load. The level of adjustability in this differential is why it is a standard for use in race applications.

Posted on

Throttle Mapping on DBW cars

In modern cars, there is no longer a “throttle cable” linking the throttle pedal to the throttle bodies. Now we have a throttle pedal that is a sensor/input to the ECU, and the ECU controls the throttle bodies. This is known as “drive by wire”. This has a number of advantages. One of the biggest is that the ECU is no longer reacting to throttle changes and trying to respond to this with changes in fueling, it now knows this is happening and can make changes to fueling in sync with the throttle changes. Another major benefit is that we can easily alter the “sensitivity” of the throttle pedal, and the mapping of throttle pedal to throttle body, or throttle pedal to target torque, depending on the ECU’s control structure.

With the ability to alter the “effect” of throttle position and throttle change on the drivability of the car, we open up a new world of parameter tuning. A system that is more responsive with smaller throttle changes will “feel” more “sporty” or “more powerful”. Often, this is accomplished by a non-linear throttle mapping, where 10% at the throttle pedal could be interpreted as 20% by the maps in the ECU, 20% as 40%, etc. This will make the engine feel more powerful to the driver, but 100% will still need to be 100%, so the actual power of the engine has not changed. The downside to this (especially as we search for the “what is too much” point) is the decreased fine throttle control.

If we look at fine throttle control, it may be of an advantage to make certain areas of the throttle less responsive. This is especially true in conditions were available torque may exceed available grip, and thus the driver will need to modulate the throttle in order to not spin the tires. On cars with traction control, they may or may not do this well enough to be “better” than driver control. In either case, traction control can be rough on the drivetrain in many applications, as the torque cut can be drastic and hammer the components. (Much like ABS can be helpful, but still not as good as a good driver.) On cars that do not have these features (traction control specifically for this discussion), the throttle mapping allowing for better control and thus less wheel spin will help with vehicle balance via tire temperature, and thus also tire wear.

This mapping will of course be very driver specific, and within the constraints of most of the ECU’s, adding resolution/linearity in some areas might mean giving up some of that in others. That compromise is what is needed to be adjusted to fit the car, driver, and track.

The driver being a large part, but the chassis being a key player too. A good example of that interaction between driver/car/throttle is corner exit. How (and how quickly) that torque change is requested might provide wheel spin in some cases, but might also provide the initial torque bump to help lock the differential more in other cases. The interaction between the driver and the differential, especially in a more conventional limited slip differential like a Salisbury, is controlled by the throttle pedal.

Posted on

Vehicle Road Testing – Part 2

In part 1 of this article, we discussed the principles for gathering coast down data. There are a number of things that can be determined from that data.

We can calculate the aerodynamic drag and rolling resistance components of the total drag. The large component at high speed will be aero drag. It will vary with the square of velocity.

Total Drag = ( (Coefficient of Drag)  x (Air Density) x (1/2) x (Velocity ^ 2) * (Frontal Area) ) + (Rolling Resistance)

If we plot Total Drag vs Speed, we can identify a “floor” at very low speed. In the last few MPH, that floor is rolling resistance. Subtract that from Total Drag, and we have a plot of Aerodynamic Drag versus Speed, and can then use our estimate of Frontal Area from Part 1 to calculate the drag coefficient.

In making changes to the vehicle for evaluation, the aerodynamic results are often easier to spot. We can verify our drag coefficient by doing simple tests, like removing side view mirrors, and subtracting that frontal area from our calculated frontal area, and re-run the tests to see if we end up with the same drag coefficient.

We also need to be careful in making changes to other bits and the “measured” effect on rolling resistance. For example, changing to lighter or heavier wheels or brakes should not impact the rolling resistance or the aerodynamic drag in a large or measurable way. It will, however, add to the inertia of the vehicle, and more specifically on those two, to the rotational inertia.

We can use that information to calculate the driveline inertia influence. We can also measure the inertia of the wheels, tires, brake rotors, and hubs, and use the radius of the wheel to calculate/verify the above.

Posted on

Roll sensitivity basic calculations setup

Roll sensitivity describes how far the car will roll given a certain cornering force applied. Depending on the direction of the calculation, any number of the variables in this can be solved with a combination of knowns and assumptions. This can help not only calculate load on a given tire or suspension point, but allow for measuring (and correcting) suspension geometry change.

If we assume that we are working with “known” spring rates and sway bar rates, we can skip those calculations. Those can also be directly measured off of the car.

So we are going to make a bunch of assumptions here. First of which is that the front and rear roll center heights are the same. This will make things easier in that the neutral roll axis is level with the ground. Effects of suspension geometry are also being neglected here. Tire deflection rates are assumed to be included in the roll rate values. CG and roll centers are in the center of the car, etc.

Thus, we have a moment, M, that is equal to the negative of the center of sprung weight (W) times the distance that sprung weight is above the neutral roll axis (h) times ( lateral acceleration (A) minus the roll angle of the chassis R)
I should probably note that if the neutral roll axis is inclined, we have to find the line perpendicular to the neutral roll axis that intersects the center of the sprun weight and find the length for that line and thats h.
Might be easier to read that in true equation form:
M = -W*h*(A-R)
The negative sign is there so that if A is positive (right hand turn), then the moment on the sprung mass is negative. This means that the roll angle is negative, and the car rolls to the outside of the turn. I’ve seen it written with the negative sign on the other side of the eqn before, but this way makes more sense to me.

Then we have a force F at height h is the same as force F at the origin on the neutral roll axis and a moment M (from above). You can also take that force F and split it amongst the front and rear axle according to the weight on each axle. For our example with a 50/50 weight distribution, the force would be split evenly, which keeps things simple. but far from real world. This force will produce load transfers separate from roll rates.
Back to finding roll angle though. The moment M will produce a roll angle R measured in a plane perpendicular to the neutral roll axis. (This, also, is why we are keeping the height of the front and rear roll centers even.) The magnitude of the roll angle will depend on the sum of the front and rear roll rates. We generally assume the roll to be about the neutral roll axis.
If we equate the Moment M to the roll stiffness moment we get:
Roll rate ( R) / lateral acceleration (A) = (negative of the center of sprung weight (W) times the distance that sprung weight is above the neutral roll axis (h) ) / (front roll stiffness (Kf) + rear roll stiffness (Kr) – center of sprung weight (W) times the distance that sprung weight is above the neutral roll axis (h)) = roll sensitivity (Kroll) Roll sensitivity here is expressed in radians per g of lateral acceleration.
Written as a more easily readable equation that is:
R/A = (-W*h)/(Kf+Kr – W*h) = Kroll

We then can split the moment M to front and rear components. The F gets combined with this too to give load transfer at each axle.
What we are looking for though is a way to express lateral load transfers for the front and rear as related to lateral acceleration.
The equation for the front will be:

Change in weight on axle / A = (W/t) * ( ( (h*Kf’) / (Kf + Kr -W*h) ) + ((l
– a) / (l)) * roll center height of axle) + (unsprung weight of axle / track of axle) * height of roll center of axle
This is for where Kf’ = Kf – (l – a) W*h/l

The equation for the rear will be:
Change in weight on axle / A = (W/t) * ( ( (h*Kr’) / (Kf + Kr -W*h) ) + ((a) / (l)) * roll center height of axle) + (unsprung weight of axle / track of
axle) * height of roll center of axle
This is for where Kr’ = Kr – a W*h/l

l is the distance between the unsprung weight centers.
a is the distance between the center of unsprung weight at that axle and the center of sprung weight for the vehicle.

Notice they are very similar equations. The difference to note is the l-a term for the front and the a term for the rear. L is the distance between the front and rear roll centers. a is the distance from the front roll center to the center of the sprung weight. All on the x axis with plane orientation between those centers not taken into account.

If we make the assumption that this is a single mass system and assume a bunch of other stuff for the sake of making the math not a huge pain, we can get the equations down to:

R/A = (-Wh)/(Kf + Kr) = Kroll


Front roll rate / A = (vehicle weight / front track width) *((h*Kf)/(Kf+Kr)+(distance from roll center of axis to center of mass / distance between front and rear roll center)*front roll center height)

Posted on

Vehicle Road Testing – Part 1

Enhancing the performance of a vehicle isn’t always limited to making more power. Often more speed can be found by using less power to push the car through the air or along the ground.

The best way to evaluate the effect of a change on a car is via controlled testing.

We will need to know a few things about the car. The weight, and the frontal area.

Weight should be measured in “as tested” trim, and as precisely as possible. Truck stops, recycling centers, and city dumps have scales that may only be accurate to 100 lb increments whereas race scales may give tenth of a pound resolution.

Frontal area can be measured or approximated with a photograph taken head on of the vehicle, or via careful tape measure of “bounding boxes” on the car. More precision is better, but “close enough” is likely good enough. The frontal area number used affects the value of coefficient of drag when calculated. Much of this depends on what sort of testing you wish to perform, and what information you would like from the results.

Low speed coast down testing will allow the calculation of rolling resistance.

High speed coast down testing will allow the calculation of aerodynamic drag.

Ideally, the tests are done on flat ground, run in both directions, and repeated numerous times to validate the data. Running in both directions does remove some of the issues imposed by non-flat ground, but the test area should be as flat as possible. Notes should be taken on track temperature, air temperature, and atmospheric pressure as these can have an effect on the results. Having that data will let you compare results from different days/sessions more cleanly.

Data from coast down testing will allow you to determine aerodynamic drag and rolling resistance, but will then let you compare and re-test with different components. This additional testing will then let you calculate driveline inertia (including inertia from wheels, brake rotors, and tires).

We generally start by calculating the total drag force, using F= M x A. Acceleration data can be used from accelerometers or GPS data. The more precise, the better.

With total drag force, we can split aerodynamic drag from rolling resistance. (aerodynamic drag = total drag force – rolling resistance)

Rolling resistance is largely linear, and can be treated as constant for the sake of simplicity in calculations, whereas aerodynamic drag varies with the square of velocity. Treating rolling resistance as constant simplifies the calculations, but if sufficient data is collected, a curve can be fit to rolling resistance if desired.


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.