Cam Timing

Cam timing diagram

The cam timing tool (Tools → Cam timing) has two tabs that answer the same question from opposite ends. Timing diagram is specification: what a camshaft is supposed to do, drawn from its published events. Measured VE is measurement: what the engine actually swallowed, taken out of a log. Neither predicts the other, and that is the point — the diagram tells you what you fitted, the VE curve tells you what it did.


Timing diagram

Intake and exhaust are picked independently, because half the cam swaps people run are mixed — a T5 intake with a T7 exhaust, B234i with B202. Each side has its own template list containing only the cams for that side of the head.

Everything the template fills in is editable. A cam that is in no list at all — a regrind, something reground to a spec sheet a shop handed you — is typed straight into the four fields and the whole diagram follows.

FieldMeaning
TemplateFills the fields below from a published cam. Editing them afterwards does not clear it
Compare withOverlays another cam from the same side in grey, to compare shape against
LiftPeak valve lift in mm
IVO / EVOOpening event: intake ° BTDC, exhaust ° BBDC
IVC / EVCClosing event: intake ° ABDC, exhaust ° ATDC
AdvanceTurns the cam earlier in the cycle, as an adjustable cam gear does. Negative retards it

The advance field exists because that is the one operation you cannot type in directly: advancing a cam 4° means the valve opens 4° earlier and closes 4° earlier, so IVO goes up while IVC goes down. Duration is unchanged. Get the sign wrong by hand and the diagram lies to you, so the tool does it.

Reading the graph

Crank angle 0° is TDC overlap — the top of the stroke between exhaust and intake, the only point both cams are referenced to. Intake events are to the right of it, exhaust events to the left. The shaded band is the valve overlap, the vertical lines are the two centerlines, and hovering anywhere reads out the lift of every drawn cam at that crank angle ( means that valve is shut).

What is derived, and how

ValueFrom
Durationopen + 180 + close
Intake centerline (ICL)duration / 2 − IVO, degrees ATDC
Exhaust centerline (ECL)duration / 2 − EVC, degrees BTDC
Lobe separation (LSA)(ICL + ECL) / 2, cam degrees
OverlapIVO + EVC, crank degrees

Two things to keep in mind before quoting a number off this page anywhere else:

  • The events are the manufacturer’s advertised figures, taken at whatever reference lift they chose. They are not duration at 0.050", so they compare fairly against each other and unfairly against an American cam catalogue.
  • The lobe shape is modelled, not measured. Nobody publishes lift curves for these cams, so the drawn lobe is a sin² hump spanning the advertised duration: symmetric about the centerline, zero lift and zero velocity at the quoted events. The events, duration, overlap and centerlines are real; the curve between them is a plausible shape, not that cam’s profile.

The cams

Specifications collected by 900aero.com. All figures in crank degrees and mm of valve lift.

SAAB partFitted toSideLiftOpenCloseDuration
7509201B202 turbo 1984-85Intake8.651056246
7509219B202 turbo 1984-85Exhaust8.655616252
7560808B202 T16 1986-93Intake8.651656252
7560964B202/B212 1986-93Exhaust8.656113254
7561467B202i/B212 1986-93Intake8.651644240
9116690B234 1990-92Intake8.651353246
9116708B234 1990-92Exhaust8.655016246
9145632B204/B206 1994-2000Intake8.651446240
9145640B204/B206 1994-2000Exhaust8.654416240
9145657B234i 1994-2000Intake8.651353246
9145665B234i 1994-2000Exhaust8.654818246
9170887B205/B235R 1999-2001Intake8.311239231
9188855B205 1999-2001Exhaust8.073414228
9170895B235R 1999-2001Exhaust8.313714231
AftermarketSideLiftOpenCloseDuration
Swedish Dynamics Red-seriesIntake9.372261263
Swedish Dynamics Red-seriesExhaust8.655616252
Catcams Sport-1 (hydraulic)Intake / Exhaust9.5512 / 5656 / 12248
Catcams Sport-2 (hydraulic)Intake / Exhaust9.7523 / 6767 / 23270
Catcams Rally (hydraulic)Intake10.952864272
Catcams Rally (hydraulic)Exhaust10.95822260
Catcams Turbo (mechanical)Intake / Exhaust11.318 / 5858 / 18256
Catcams Race (mechanical)Intake12.53969288
Catcams Race (mechanical)Exhaust11.956535280

The Swedish Dynamics row is the one place the source disagrees with itself: it prints 254° duration and 35° overlap where its own events give 252° and 38°. txlogger draws the events.

Three part numbers on that page (7518913, 9148305, 9148313) are listed without any timing figures at all and are therefore not in the tool — a name with no events draws nothing.

B207 (Trionic 8) has no templates on purpose. It runs intake CVVT, so its timing is a value that moves while the engine runs rather than a fixed spec.


Measured VE

Measured volumetric efficiency

Volumetric efficiency is what a camshaft actually does to an engine: fill the cylinder better or worse at a given rpm. The ECU already logs everything needed to see it, so this tab needs no binary and no model — load a log and it computes, per sample:

        airmass per combustion (mg)
VE % = ────────────────────────────── × 100
        ρ × cylinder volume

ρ = manifold pressure / (287.05 × inlet air temperature)

Samples are filtered to at or above the pedal position you set, binned per 250 rpm, and the median of each bin with at least three samples is plotted. The curve therefore only spans the rpm your log actually pulled through at that pedal position — the screenshot above is a single WOT pull, which is why it starts at 3250 rpm.

InputNotes
DisplacementWhole engine in cc; the tool divides by four cylinders. 1985 for B202/B204/B205/B206, 2119 for B212, 2290 for B234/B235
Min pedalPedal percentage a sample must reach to count. 80 % keeps it to full-throttle running; drop it to look at part load

The channels it reads:

ECUrpmAirmassPressureTemperaturePedal
T7ActualIn.n_EngineMAF.m_AirInletActualIn.p_AirInletActualIn.T_AirInletOut.X_AccPedal
T8ActualIn.n_EngineMAF.m_AirInletIn.p_AirInletActualIn.T_AirInletOut.X_AccPos

Trionic 5 is not supported here: it logs no airmass, so there is nothing to divide by the reference mass.

The airmass channel is deliberately MAF.m_AirInlet, the mass the ECU measured per combustion — not m_Request, which is the airmass the torque demand asked for and says nothing about what the engine swallowed.

Reading the curve

  • Over 100 % is normal on these engines. The reference is the manifold, not the atmosphere, so a turbo motor with overlap that scavenges well fills past the manifold density it was handed. The 118 % peak in the screenshot is a healthy 2.0 on boost, not a broken measurement.
  • The shape is the useful part, not the absolute number. Compared before and after a cam change, on similar air temperatures, the difference is what the cam did.
  • Heat-soaked inlet air reads VE high. The temperature sensor lags the real charge temperature after a hard pull, and a temperature that reads too high computes a density that is too low, which inflates VE. Back-to-back pulls at similar temperatures are worth more than one pull in isolation.
  • On a T7 with the MAF disabled, MAF.m_AirInlet falls back to the ECU’s pressure model. VE then measures that model rather than the engine.

The source lives in pkg/widgets/camtiming.



© 2026 Joakim Karlsson. All rights reserved. | Privacy Policy