AUTO-120 · Lesson 10 of 12 · 23 min

Engine mechanical diagnosis: compression, leak-down and vacuum

Gord Haney has agreed to pay for an hour and a half of diagnosis on his ticking pickup before he decides anything. “Find out what it is,” he told Simone. “Then tell me what it costs.” Lesson 6 left Marty and Kiran with a light tick at the driver's side valve cover, a misfire on cylinder 1 that appears only when all eight cylinders are running, and a strong suspicion of the valve train. A suspicion is not a diagnosis. Today Kiran will prove what is wrong, or prove the suspicion wrong, with the three basic mechanical tests every technician must master.

This lesson explains how to approach an engine mechanical complaint, how to listen to an engine, and how to perform and interpret cranking and running compression tests, the cylinder leakage test and vacuum gauge tests. These tests answer the question that scan data alone cannot answer: is each cylinder able to seal and to breathe?

A strategy for mechanical diagnosis

Marty's diagnostic routine is the same for every engine complaint. First, verify the concern: hear the noise, feel the misfire, see the smoke, under the conditions the customer described. Second, gather information: trouble codes, freeze-frame data, misfire counters, the vehicle's service history and any service bulletins for the symptom. Third, do the quick checks: oil level and condition, coolant level, spark plugs and coils if a misfire points to one cylinder. Fourth, test, starting with tests that are quick and that divide the possibilities into large groups, and only then move to tests that take longer or require disassembly. Last, confirm the cause before recommending a repair, and after the repair, confirm that the concern is gone.

For a misfire on one cylinder, the quick checks divide the problem into ignition, fuel and mechanical causes. Swapping the cylinder 1 coil with cylinder 3's, and the spark plug as well, shows whether the misfire follows the part. On Gord's truck it does not: after the swap, the misfire stays on cylinder 1. An injector balance test with the scan tool shows cylinder 1's injector working like the others. That leaves the mechanical side: compression and breathing.

Listening to an engine

An engine stethoscope, a probe connected to earphones, picks up sounds from individual parts. Touching the probe to each valve cover, the front cover, the block near each cylinder and the oil pan helps find where a noise is loudest. The speed of the noise is a strong clue. Noises at half crankshaft speed come from the valve train and camshaft, because those parts move once per cycle. Noises at crankshaft speed come from the bottom end: bearings, pistons and the crankshaft. Many scan tools and electronic stethoscopes can show the frequency of a noise and its relation to engine speed.

Common engine noises. The speed, location and conditions of a noise point to its source.
NoiseUsual characterCommon causes
Tick or tapLight, fast, at half engine speed; loudest at the valve coverExcess valve clearance, collapsed or worn lifter, worn rocker
Rattle at start-upLasts a second or two after a cold startTiming chain tensioner, chain wear, cam phaser lock pin
Rod knockHeavy knock at engine speed, louder under load and when the throttle is releasedWorn rod bearing
Main bearing knockDeep thud, loudest under loadWorn main bearings
Piston slapHollow knock when cold that fades as the engine warmsExcess piston-to-bore clearance
Spark knockMetallic ping under load, accelerating uphillDetonation: low octane, carbon, overheating, faulty knock control

A rod knock that goes away when that cylinder's injector or coil is disabled confirms which rod it is, because the load on the bearing falls when the cylinder stops firing. A tick from the valve train usually does not change when a cylinder is disabled, because the valve train still moves. On Gord's truck the tick is loudest near the front of the driver's side valve cover, over cylinder 1, at half engine speed, and does not change when cylinder 1's injector is disabled. That supports the valve-train suspicion.

The cranking compression test

The cranking compression test measures the pressure each cylinder can build when the engine is cranked by the starter. The engine is warmed to operating temperature if it runs, then stopped. The fuel pump relay or fuse and the ignition are disabled, as the service information directs, so no fuel is injected and no coil fires. All the spark plugs are removed, so the engine cranks at an even speed, and the throttle is held wide open. A battery charger or jump pack keeps the cranking speed up. The compression gauge is screwed into one spark plug hole, the engine is cranked through four to six compression strokes, counting the puffs on the gauge, and the highest reading is recorded. Then the gauge is released and moved to the next cylinder.

The readings are compared in two ways. First, with each other: a common rule is that the lowest cylinder should be at least 70 to 75 percent of the highest, although manufacturers may give their own limit. Second, with the specification or with what is normal for the engine. Because the cylinders fill with air at the pressure around the engine, readings at altitude are lower than at sea level, roughly in proportion to the air pressure, and a figure written for sea level must be scaled before comparing.

# Gord's pickup: cranking compression test, warm engine, throttle open, all plugs out
sea_level_typical = 180                    # psi, a typical healthy reading at sea level (illustrative)
altitude_ratio = 0.82                       # air pressure here / sea level
expected = sea_level_typical * altitude_ratio
readings = {1: 30, 2: 148, 3: 150, 4: 146, 5: 151, 6: 145, 7: 149, 8: 150}
highest = max(readings.values())
print(f"expected here: about {expected:.0f} psi")
for cyl, p in readings.items():
    pct = p / highest * 100
    flag = "" if pct >= 75 else "  <-- low"
    print(f"cylinder {cyl}: {p:5.0f} psi  {pct:3.0f} % of highest{flag}")
others = [p for c, p in readings.items() if c != 1]
print(f"spread without cylinder 1: {(max(others) - min(others)) / max(others) * 100:.0f} %")
Output
expected here: about 148 psi
cylinder 1:    30 psi   20 % of highest  <-- low
cylinder 2:   148 psi   98 % of highest
cylinder 3:   150 psi   99 % of highest
cylinder 4:   146 psi   97 % of highest
cylinder 5:   151 psi  100 % of highest
cylinder 6:   145 psi   96 % of highest
cylinder 7:   149 psi   99 % of highest
cylinder 8:   150 psi   99 % of highest
spread without cylinder 1: 4 %

Seven cylinders are healthy, within a few percent of each other and close to the expected reading at this altitude. Cylinder 1 is very low. A low cylinder can have lost its seal, through a burned or bent valve, broken or stuck rings, a hole in the piston or a failed head gasket, or it can have failed to fill with air in the first place because its intake valve is not opening. The cranking test alone cannot tell these apart, but the next two tests can.

The wet test

A wet compression test repeats the reading on a low cylinder after squirting a teaspoon or so of clean engine oil through the spark plug hole. The oil temporarily seals the gap between the rings and the cylinder wall. If the reading rises substantially, the rings or the cylinder wall are leaking. If it barely changes, the leak is elsewhere, in a valve or the head gasket, or the cylinder is not filling. On Gord's cylinder 1, the wet reading is almost the same as the dry one. The rings are not the problem.

Two adjacent cylinders that are both low, with readings that do not rise with oil, often point to a head gasket that has failed between them. A cylinder that reads zero usually has a valve held open or broken, a hole in a piston or a timing problem.

The cylinder leakage test

The cylinder leakage test, or leak-down test, pressurizes a cylinder from shop air and measures how much of that air escapes. It is done with the piston at TDC on the compression stroke, so both valves are closed, and the crankshaft held so the air pressure cannot push the piston down. The tester has a regulator, a calibrated orifice and two gauges. Air passes through the orifice into the cylinder; if the cylinder is sealed, the pressure on the cylinder side equals the supply pressure, and the tester reads zero percent leakage. The more air leaks out, the lower the cylinder pressure, and the higher the percentage. A healthy engine usually shows less than about 10 percent leakage; above about 20 percent indicates a problem, though limits vary by tester and engine.

The great advantage of the leakage test is that it shows where the air goes. With the cylinder pressurized, the technician listens and looks. Air hissing from the throttle body or intake means a leaking intake valve. Air from the tailpipe means a leaking exhaust valve. Air from the oil filler or dipstick tube means leakage past the rings. Bubbles in the coolant reservoir, with the cap off and the engine cold, mean a head gasket leak or a crack into a water jacket. Air from an adjacent cylinder's spark plug hole means a head gasket leak between cylinders.

# Leak-down results on Gord's pickup (each cylinder at TDC compression)
supply = 100                                   # regulated test pressure, psi
cylinder_side = {1: 94, 2: 93, 3: 95}      # gauge on the cylinder side, psi
for cyl, p in cylinder_side.items():
    leakage = (supply - p) / supply * 100
    verdict = "good" if leakage < 10 else ("borderline" if leakage < 20 else "leaking: find where")
    print(f"cylinder {cyl}: {leakage:4.1f} % leakage ({verdict})")
print("air heard: none at intake, none at exhaust, slight hiss at oil filler (normal ring leakage)")
Output
cylinder 1:  6.0 % leakage (good)
cylinder 2:  7.0 % leakage (good)
cylinder 3:  5.0 % leakage (good)
air heard: none at intake, none at exhaust, slight hiss at oil filler (normal ring leakage)

Cylinder 1 seals as well as its neighbors. Its valves close, its rings seal and its head gasket is intact. Yet when the engine is cranked it builds almost no pressure. The only explanation that fits both results is that air is not getting into the cylinder: the intake valve is not opening, or is opening only a tiny amount.

Kiran also learns the safety rules for this test. The crankshaft must be held at TDC, with a breaker bar on the crankshaft bolt that someone keeps hold of, or by the transmission in gear on a manual car, because if the piston is even slightly past TDC the air will push it down and spin the crankshaft hard enough to injure a hand. The radiator cap is removed only when the engine is cold.

The running compression test and breathing

A running compression test is done with the gauge in one cylinder, its valve removed so it reads the pressure on each stroke, and the engine idling on the other cylinders. It shows how well a cylinder breathes at running speed. A normal cylinder reads well below its cranking figure at idle, because the throttle is nearly closed, and jumps when the throttle is snapped open. A cylinder whose intake valve does not open reads very low and does not respond to the throttle; one whose exhaust valve does not open reads very high, because the burned gas cannot escape. Because Gord's cylinder 1 already showed the answer on the cranking and leakage tests, Marty skips this test and moves to confirm the valve train directly.

The vacuum gauge

Intake manifold vacuum is a quick check of an engine's overall health, and a vacuum gauge connected to a manifold port gives readings in a few seconds. A healthy engine at warm idle shows a steady reading, and the pattern of the needle tells a great deal. A steady low reading suggests retarded valve or ignition timing, perhaps from a stretched chain, or a vacuum leak. A needle that drops regularly by a few units, once every cycle, suggests a valve that is not sealing or not opening on one cylinder. A rapid flutter suggests worn valve guides; a slow wander suggests a mixture problem. And a reading that sinks slowly when the engine is held at about 2,500 rpm suggests a restricted exhaust, such as a plugged catalytic converter.

Like compression, vacuum depends on the air pressure around the engine. Vacuum is the difference between atmospheric pressure and the pressure in the manifold, so at altitude, where there is less atmospheric pressure to begin with, the reading is lower. A common rule is about 1 inch of mercury less per 1,000 feet of elevation.

# Is Gord's idle vacuum normal for our altitude?
sea_level_range = (17, 21)               # healthy warm idle at sea level, inHg
elevation = 5280                          # ft
loss = elevation / 1000 * 1.0                               # rule of thumb
low, high = (v - loss for v in sea_level_range)
reading_avg, reading_drop = 15.5, 2   # needle steady at the average, dropping regularly by this much
print(f"expected at {elevation:,} ft: about {low:.0f} to {high:.0f} inHg")
print(f"measured: {reading_avg} inHg with a regular drop of {reading_drop} inHg")
if reading_avg < low:
    print("steady low reading: suspect late timing or a vacuum leak")
if reading_drop > 0:
    print("regular drop once per cycle: one cylinder is not sealing or not breathing")
Output
expected at 5,280 ft: about 12 to 16 inHg
measured: 15.5 inHg with a regular drop of 2 inHg
regular drop once per cycle: one cylinder is not sealing or not breathing
Four small sketches of a vacuum gauge face, each with a needle and a shaded band showing how it moves. The first shows a steady needle in the normal range. The second shows a steady needle in a lower position. The third shows a needle that drops regularly by a small amount. The fourth shows a needle that falls slowly while the engine is held at a higher speed.
Vacuum gauge patterns at warm idle: normal, steady low, regular drop, and slowly falling at a raised speed. Normal readings are lower at altitude.

Gord's reading is normal for the altitude but drops regularly, once per cycle, which fits a single cylinder that is not breathing. Every test now points the same way.

Confirming the cause

To finish, Kiran removes the driver's side valve cover. With the engine turned slowly by hand, she watches the rocker arms for cylinder 1. The exhaust rocker moves normally. The intake rocker moves only a little, and there is visible play between the rocker and the valve tip. A dial indicator on the intake pushrod shows how far it rises as the engine is turned through a full cycle, compared with the intake pushrod on cylinder 3.

# Pushrod lift on the driver's side, measured with a dial indicator while turning the engine by hand
expected = 0.276        # in, roughly the camshaft lobe lift for this engine (illustrative)
lift = {"cyl 1 intake": 0.055, "cyl 1 exhaust": 0.274, "cyl 3 intake": 0.276, "cyl 3 exhaust": 0.275}
for valve, l in lift.items():
    pct = l / expected * 100
    print(f"{valve:<14} {l:.3f} in ({pct:3.0f} % of expected)", "" if pct > 90 else " <-- not lifting")
Output
cyl 1 intake   0.055 in ( 20 % of expected)  <-- not lifting
cyl 1 exhaust  0.274 in ( 99 % of expected) 
cyl 3 intake   0.276 in (100 % of expected) 
cyl 3 exhaust  0.275 in (100 % of expected)

Cylinder 1's intake pushrod rises only a fifth as far as it should. Either the lifter has collapsed, as a deactivation lifter can when its locking pin sticks in the unlocked position, or the camshaft lobe under it is worn away. Only removing the cylinder head and the lifter will tell which, and on this engine the lifters cannot be reached without removing the head. The diagnosis is complete: cylinder 1 is not breathing because its intake valve is barely opening, caused by a failed lifter or a worn lobe.

Worked problem

Explaining the results to Gord

Simone asks Kiran to write the cause on the repair order in plain language before she calls Gord. What should it say?

Show solution
  1. Concern: tick from the engine and a flashing check engine light on the highway.
  2. Cause: cylinder 1's intake valve is barely opening. Compression on cylinder 1 is very low, but the cylinder holds air normally on a leak-down test, so the valves, rings and gasket are sealing; the intake pushrod rises only a fifth of the normal amount. This is a failed lifter or a worn camshaft lobe, a known problem on this engine family.
  3. Correction required: remove the driver's side cylinder head, replace the lifters and lifter guides on that bank (or both banks, recommended at this mileage), inspect the camshaft and replace it if the lobe is worn, and replace the head gasket and head bolts.
  4. Simone will price both options, and the camshaft inspection result will be phoned to Gord before any camshaft is ordered.

Answer: The written cause explains what was tested, what was found and why, in words the customer can follow.

Common mistakes

  • MistakeCondemning an engine on one compression reading.

    InsteadUse the wet test, leak-down test and valve-train checks to find out why.

  • MistakeTesting compression with some plugs in or the throttle closed.

    InsteadRemove all plugs, hold the throttle open and keep cranking speed up.

  • MistakeLeak-down testing with the piston off TDC.

    InsteadSet TDC compression and hold the crankshaft firmly.

  • MistakeComparing readings with sea-level figures.

    InsteadAllow for altitude, or compare cylinders with each other.

  • MistakeWriting 'needs head work' as the cause.

    InsteadState what was tested and what was found, in plain language.

Summary and key terms

  • Verify the concern, gather information, do quick checks, test from broad to narrow, and confirm the cause.
  • Listen with a stethoscope; noise speed and location point to the valve train or the bottom end.
  • Cranking compression compares cylinders; the lowest should be at least about 70 to 75 percent of the highest.
  • A wet test separates ring leakage from valve and gasket leakage.
  • Leak-down shows how much air escapes and where: intake, exhaust, crankcase or cooling system.
  • Vacuum patterns reveal timing, valve and exhaust problems; compression and vacuum readings are lower at altitude.
Cranking compression test
Measuring the pressure each cylinder builds while the engine is cranked.
Wet test
Repeating a compression test after adding oil to the cylinder.
Cylinder leakage test
Pressurizing a cylinder at TDC and measuring the percentage of air that escapes.
Running compression test
Measuring a cylinder’s pressure with the engine idling to check its breathing.
Manifold vacuum
The difference between atmospheric pressure and intake manifold pressure.
Engine stethoscope
A listening tool used to find the source of a noise.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Compression readings are 160, 157, 110 and 158 psi. Is the low cylinder acceptable?

    Show answer

    No; 110 is 69 percent of 160, below the usual limit.

  2. A low cylinder's reading rises a lot with oil. What is the likely cause?

    Show answer

    Worn or stuck rings or a worn cylinder wall.

  3. Air escapes from the tailpipe during a leak-down test. What is leaking?

    Show answer

    An exhaust valve.

  4. What would a slowly falling vacuum at 2,500 rpm suggest?

    Show answer

    A restricted exhaust, such as a plugged catalytic converter.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz