AUTO-210 · Lesson 12 of 12 · 25 min
Capstone: diagnosing a pull and a vibration
On the second Monday in May, Erik Lindqvist drops off the family minivan with a short note for Simone: “Hit a big pothole on the ring road two weeks ago. Now it pulls right and the steering wheel shakes on the highway. Please fix before our trip to the mountains on Saturday.” The van is at 95,300 miles, on the summer tires Theo mounted in April. Marty hands Kiran the repair order. “Capstone,” he says. “You run it. I'll check your reasoning at each step, and you write up what you find for the customer.”
This lesson follows Kiran's diagnosis from the interview to the delivery of the vehicle, using every lesson in the course: the interview and road test, the inspection, separating a tire pull from an alignment pull, measuring the vibration, reading the alignment angles to find a bent part, estimating and repairing, and verifying the result. It ends with the report she writes for the Lindqvists.
Step 1: the interview
Kiran calls Mr. Lindqvist to fill in the details. The pull started right after the pothole, he says, and has not changed. The shake is in the steering wheel, not the seat, and it starts at about 55 mph, is worst around 65 mph and eases a little above that. There was a loud bang at the pothole and the tire pressure light came on for a day, then went out after he added air at a gas station. The van does not pull under braking, and nothing has been repaired since. Each answer narrows the search. A pull that began with an impact suggests a bent part or a damaged tire; a shake in the steering wheel that peaks in a speed band suggests a front wheel or tire; a tire pressure warning after the impact suggests the tire or wheel was hit hard.
She checks the van's history in the shop system too. In AUTO-110 the left front stabilizer bar link was replaced, and the front brakes and rotors were done at about 92,000 miles. The rotors are therefore fairly new, which makes a brake-related shake less likely.
Step 2: tires and the walk-around
Before driving the van, Kiran checks and sets all four tire pressures. The right front is 5 psi higher than the others, from the gas station top-up, and she corrects it. She looks at all four tires and wheels. The right front alloy wheel has a fresh scuff and a slight flat spot on its inner rim flange, visible only with a light behind it. The tire's sidewall has no bulge or cut, and its tread wear matches the left front. The rear tires are even. On the ground, the right front of the van sits within 0.2 in of the left at the ride height points, so no spring is broken.
Step 3: the road test
On the alignment route, the van drifts right on the flat straight stretch within a few seconds, with the steering wheel held straight; to drive straight she has to hold the steering wheel slightly left. The pull is the same on the slightly crowned side street and the flat road, and it does not change under light braking or acceleration. Between 60 and 70 mph on the highway, the steering wheel shakes visibly side to side. Kiran clips the vibration analyzer's sensor to the steering column and records the frequency: 12.6 hertz at 65 mph.
# Step 3: is the steering wheel shake the tire and wheel first order?
import math
UNITS = "US"
tire = (235, 60, 17) # summer tire size on the minivan
d = tire[2] * 25.4 + 2 * tire[0] * tire[1] / 100 # mm overall diameter
speed_kmh = 65 * 1.609
wheel_hz = speed_kmh / 3.6 / (math.pi * d / 1000)
measured = 12.6
size = f"{d:.0f} mm" if UNITS == "metric" else f"{d / 25.4:.1f} in"
print(f"overall diameter {size}, wheel turns {wheel_hz:4.1f} times a second at the test speed")
print(f"measured {measured} Hz: {'matches the tire and wheel first order' if abs(measured - wheel_hz) < 0.8 else 'look elsewhere'}")overall diameter 28.1 in, wheel turns 13.0 times a second at the test speed measured 12.6 Hz: matches the tire and wheel first order
The frequency matches the tire and wheel first order, and the shake is in the steering wheel: a front wheel or tire. That fits the scuffed right front wheel. The pull could be from the same wheel and tire, from the alignment, or from both, and the next step is to tell them apart.
Step 4: is it the tire?
A tire can pull on its own. A belt that has shifted, or a tire built with slight conicity, rolls like a very shallow cone and steers the vehicle toward one side, and an impact can damage a tire's belts without leaving a visible mark. The standard test is to swap the two front tires and wheels side to side and road test again. If the pull moves to the other side, the tire is the cause; if it stays, the cause is in the vehicle. If it disappears or lessens, the two tires were offsetting each other differently. Because these tires are not directional, the swap is allowed.
Theo swaps the front wheels, and Kiran drives the route again. The van still pulls right, just as strongly, and the shake has moved: it is now noticeably weaker but still present, with the damaged wheel on the left. A tire pull would have moved with the tire; this pull stays with the vehicle, so the cause is in the suspension or the alignment. The shake follows the wheel.
# Step 4: interpreting the front tire swap
def interpret(before, after):
if before == after:
return "pull stayed on the same side: the cause is in the vehicle (alignment, bent part or brake)"
if after == "none":
return "pull disappeared: the two tires were offsetting differently; road force check both"
return "pull moved with the tires: a tire is the cause; find it with a road force test"
print("pull before swap: right; after swap: right ->", interpret("right", "right"))
print("check: if it had changed to left ->", interpret("right", "left"))pull before swap: right; after swap: right -> pull stayed on the same side: the cause is in the vehicle (alignment, bent part or brake) check: if it had changed to left -> pull moved with the tires: a tire is the cause; find it with a road force test
Step 5: the wheel on the balancer
Theo mounts the damaged right front wheel and tire on the road force balancer. It needs only a little weight, but the road force reading is far over the machine's limit for the tire. With the tire removed, Kiran measures the bare wheel's radial runout at the bead seats with a dial indicator: the inner bead seat rises and falls by about 0.060 in, where the flat spot is, far beyond the limit. The wheel is bent. The tire itself, mounted on a spare wheel of the same type from the parts supplier's demonstration set, reads normal road force and runout.
# Step 5: wheel runout at the bead seats against the limit
UNITS = "US"
inner = [0.000, 0.002, 0.004, 0.024, 0.058, 0.028, 0.005, 0.002] # dial readings at 8 points, inner bead seat
outer = [0.000, 0.002, 0.005, 0.007, 0.008, 0.006, 0.003, 0.001] # outer bead seat
limit = 0.030
for name, r in [("inner bead seat", inner), ("outer bead seat", outer)]:
ro = max(r) - min(r)
print(f"{name:<16} radial runout {ro:.3f} in: {'within limit' if ro <= limit else 'over the limit, wheel bent'}")inner bead seat radial runout 0.058 in: over the limit, wheel bent outer bead seat radial runout 0.008 in: within limit
A bent alloy wheel cannot safely be straightened in the shop; Ridgeline replaces it. That explains the vibration. It does not explain the pull, which stayed with the vehicle.
Step 6: the inspection and the alignment readings
With the van on the rack in bay 3, Kiran inspects the front suspension and steering as in Lessons 3 and 6. The ball joints, tie rod ends and inner tie rods are tight, the strut mounts and bushings are sound, and the wheel bearings have no play. The right lower control arm, though, has a faint ripple in its paint near its front bushing, and when she sights along it, it is not quite straight. She sets up the alignment machine, compensates, and records the readings with a caster sweep.
| Angle | Left front | Right front | Specification |
|---|---|---|---|
| Camber | −0.2° | +0.5° | −0.3° ± 0.5°, cross-camber within 0.5° |
| Caster | 3.8° | 3.1° | 3.8° ± 0.7°, cross-caster within 0.6° |
| Steering axis inclination | 13.2° | 12.5° | 13.0° (reference) |
| Included angle | 13.0° | 13.0° | Equal side to side |
| Individual toe | +0.05° | −0.21° | +0.05° ± 0.05° each |
| Setback | − | right wheel back 0.12 in | Within 0.24 in |
Each reading points the same way. The right front camber is more positive than the left by 0.7 degrees, outside the cross-camber limit, so the van tends to pull right. Its caster is 0.7 degrees less than the left, also pulling right. The right steering axis inclination is 0.7 degrees low, but the included angle is the same on both sides. From Lesson 10, a wrong SAI with a correct included angle means the problem is not in the knuckle or the strut but in the parts that locate the bottom of the steering axis: the lower control arm or the subframe. The right lower arm, visibly not straight, is bent, pushing the bottom of the knuckle inward and slightly back. That moves the lower ball joint, which raises camber, reduces caster and reduces SAI all at once. The right toe has changed too, which is why the steering wheel sat off center.
# Step 6: what the readings say (left and right, degrees)
L = {"camber": -0.2, "caster": 3.8, "sai": 13.2}
R = {"camber": 0.5, "caster": 3.1, "sai": 12.5}
cross_camber = L["camber"] - R["camber"]
cross_caster = L["caster"] - R["caster"]
inc_l, inc_r = L["sai"] + L["camber"], R["sai"] + R["camber"]
print(f"cross-camber {cross_camber:+.1f}: {'pulls right' if cross_camber < -0.5 else 'within limit'}")
print(f"cross-caster {cross_caster:+.1f}: {'pulls right' if cross_caster > 0.6 else 'within limit'}")
print(f"included angle left {inc_l:.1f}, right {inc_r:.1f}; SAI difference {L['sai'] - R['sai']:.1f}")
if abs(inc_l - inc_r) < 0.3 and abs(L["sai"] - R["sai"]) >= 0.5:
print("knuckle and strut are fine; the right lower control arm or subframe has moved the ball joint")cross-camber -0.7: pulls right cross-caster +0.7: pulls right included angle left 13.0, right 13.0; SAI difference 0.7 knuckle and strut are fine; the right lower control arm or subframe has moved the ball joint
To rule out the subframe, Kiran checks the subframe's alignment marks and measures from its locating holes to reference points on the body given in the service information. They are where they should be. The diagnosis is a bent right lower control arm and a bent right front wheel, both from the pothole.
Step 7: the estimate
Simone builds the estimate from Kiran's findings, using the labor guide times and the shop's rates. The van has no adjustment for front camber or caster, so straightening the angles means replacing the arm; adjusting the toe alone would center the steering wheel but leave the pull and wear the right tire's outer edge. The arm comes with new bushings and a ball joint already fitted. The wheel is the original style from the dealer. Because the arm, the toe and the steering wheel position will all change, the job includes a four-wheel alignment, a steering angle sensor reset, and, according to the service information for this van, a check of the forward camera's calibration after an alignment.
# Step 7: the estimate (illustrative prices)
UNITS = "US"
rate = 155.0 # labor rate per hour
parts = [("right front lower control arm with bushings and ball joint", 245.00), ("alloy wheel, original style", 395.00),
("wheel weights and valve stem", 16.00)]
labor = [("replace right lower control arm", 1.3), ("replace wheel, transfer tire and sensor, road force balance", 0.6),
("four-wheel alignment", 1.2), ("steering angle sensor reset and camera calibration check", 0.5)]
supplies = 8.00
p = sum(c for _, c in parts)
l = sum(h for _, h in labor) * rate
for name, c in parts:
print(f"{name:<62} {c:8.2f}")
for name, h in labor:
print(f"{name:<62} {h * rate:8.2f} ({h} h)")
print(f"{'shop supplies':<62} {supplies:8.2f}")
tax = (p + supplies) * 0.0915
print(f"{'sales tax 9.15 % on parts and fees':<62} {tax:8.2f}")
print(f"{'total, USD':<62} {p + l + supplies + tax:8.2f}")right front lower control arm with bushings and ball joint 245.00 alloy wheel, original style 395.00 wheel weights and valve stem 16.00 replace right lower control arm 201.50 (1.3 h) replace wheel, transfer tire and sensor, road force balance 93.00 (0.6 h) four-wheel alignment 186.00 (1.2 h) steering angle sensor reset and camera calibration check 77.50 (0.5 h) shop supplies 8.00 sales tax 9.15 % on parts and fees 60.76 total, USD 1282.76
Simone calls Mr. Lindqvist, explains the two findings, and sends him the photographs Kiran took of the bent arm and the wheel's flat spot. She mentions that his insurance may cover pothole damage under a collision policy, depending on his coverage, and that some cities accept claims for pothole damage; the shop provides the documentation either way. He approves the work.
Step 8: the repair
Kiran follows the service information. With the van on the lift and the right front corner supported, she removes the wheel, disconnects the stabilizer bar link and the lower ball joint from the knuckle using the correct separator, and unbolts the arm's two bushings from the subframe. Laid beside the new arm on the bench, the old one is visibly bent: its ball joint end sits several millimeters farther inward and back. The new arm goes in with its bushing bolts snug, the ball joint is connected to the knuckle with a new nut, and the link is reattached. Then she raises the arm with a jack to ride height, measured at the points in the service information, before torquing the bushing bolts, so that the rubber is not pre-twisted. Theo mounts the tire on the new wheel, transfers the tire pressure sensor with a new valve core and seal, and road force balances it, matching the tire's high spot to the wheel's low spot. Kiran torques all the lug nuts in a star pattern with a torque wrench.
Step 9: the alignment and calibrations
Back on the alignment rack, the new readings show the right front camber, caster and SAI matching the left within a tenth of a degree. The rear twist beam has no adjustment and reads within specification, with a thrust angle of +0.02 degrees. Kiran centers and locks the steering wheel and sets each front wheel's individual toe to the specification against the thrust line. After jouncing the suspension and confirming nothing has moved, she resets the steering angle sensor with the scan tool and drives the van through the camera's dynamic calibration check on the highway, which reports complete.
# Step 9: before and after (degrees)
before = {"camber L": -0.2, "camber R": 0.5, "caster L": 3.8, "caster R": 3.1, "toe L": 0.05, "toe R": -0.21}
after = {"camber L": -0.2, "camber R": -0.3, "caster L": 3.8, "caster R": 3.7, "toe L": 0.05, "toe R": 0.05}
for k in before:
print(f"{k:<9} before {before[k]:+5.2f} after {after[k]:+5.2f}")
print(f"cross-camber before {before['camber L'] - before['camber R']:+.1f}, after {after['camber L'] - after['camber R']:+.1f}")
print(f"cross-caster before {before['caster L'] - before['caster R']:+.1f}, after {after['caster L'] - after['caster R']:+.1f}")camber L before -0.20 after -0.20 camber R before +0.50 after -0.30 caster L before +3.80 after +3.80 caster R before +3.10 after +3.70 toe L before +0.05 after +0.05 toe R before -0.21 after +0.05 cross-camber before -0.7, after +0.1 cross-caster before +0.7, after +0.1
Step 10: verification
The final road test uses the same route as the first. The van tracks straight on the flat road with the steering wheel centered and hands relaxed, and the steering returns normally from turns. On the highway at 60 to 70 mph the steering wheel is still, and the vibration analyzer shows no first-order peak above the shop's threshold. Kiran rechecks the lug nut torque after the road test, files the alignment printout and the calibration result with the repair order, and adds a note to recheck the lug nuts after 60 miles, as the service information recommends for new alloy wheels.
Marty reviews her work and asks one question: “If you hadn't swapped the tires, what might you have done?” Kiran answers that she might have aligned the van to hide the pull by adjusting toe, or replaced a tire that was not the problem. “Right. Test, then fix,” he says, and signs off the job.
The report
Simone asks Kiran to write the customer report herself, in plain language. It reads: “Your van pulled right and its steering wheel shook at highway speed after the pothole. We found two damaged parts. The right front wheel was bent at its inner edge, which caused the shake; we replaced it and balanced the tire on the new wheel. The right front lower control arm was bent, which tilted the wheel and caused the pull; we replaced it and did a full alignment. We also reset the steering angle sensor and checked the forward camera's calibration, as the manufacturer requires after an alignment. The van now drives straight and smooth. Please have the wheel nuts checked after about 60 miles. The photographs of the bent parts are attached for your insurance claim if you choose to make one.” Mr. Lindqvist picks up the van on Thursday, two days before the trip.
Worked problem
How much did the pull cost in tire wear?
Before the repair, the right front wheel's toe was −0.21° against a specification of +0.05°. If the van had been driven like that for 6,200 miles, how far would the tire have been dragged sideways?
Show solution
- The toe error is 0.26 degrees.
- Sideways drag per distance traveled is the tangent of the error: tan 0.26° ≈ 0.0045.
- 6,200 miles × 0.0045 ≈ 28 miles of sideways scrub.
- That is enough to feather and wear the tire's tread long before its normal life, on top of the outer-edge wear from the extra camber.
Answer: About 28 miles of sideways scrubbing; the bent arm would have worn the right front tire out quickly.
Common mistakes
MistakeCorrecting a pull by adjusting toe alone.
InsteadFind the bent or worn part; toe can center the steering wheel but cannot cure a camber or caster pull.
MistakeSkipping the tire swap test.
InsteadSwap the front tires side to side to tell a tire pull from a vehicle pull.
MistakeStraightening a bent alloy wheel in the shop.
InsteadReplace bent alloy wheels.
MistakeTorquing new control arm bushings with the arm hanging.
InsteadRaise the arm to ride height before torquing.
MistakeForgetting the calibrations and the lug nut recheck.
InsteadComplete the steering angle reset and camera check, and note the retorque.
Summary and key terms
- The interview, history and walk-around point the diagnosis toward the impact.
- A steering wheel shake matching the tire and wheel first order points to a front wheel or tire.
- Swapping the front tires side to side separates a tire pull from a vehicle pull.
- A bent wheel shows as excessive radial runout at the bead seats.
- Cross-camber and cross-caster predict the pull; SAI and the included angle locate the bent part.
- The repair includes the alignment, the steering angle sensor reset and the calibration check required by the service information.
- Verification and a plain-language report complete the job.
- Tire pull
- A pull caused by a tire's construction or damage rather than the vehicle.
- Conicity
- A tire's tendency to roll in a curve, like a shallow cone, because of its construction.
- Bead seat
- The part of a wheel rim on which the tire's bead sits.
- Cross-camber
- The difference in camber between the left and right wheels.
- Cross-caster
- The difference in caster between the left and right wheels.
- Verification
- Testing after a repair to confirm the original complaint has been fixed.
- Retorque
- Rechecking wheel nut torque after a set distance.
Practice problems
Work each problem on paper first, then reveal the answer to check.
After a front tire swap, a pull changes from right to left. What is the cause?
Show answer
A tire; find which one with a road force test.
SAI is low on one side but the included angle matches the other side. What is bent?
Show answer
A part locating the bottom of the steering axis, such as the lower control arm, or the subframe has shifted.
Why are bushing bolts torqued with the arm at ride height?
Show answer
So the rubber is not twisted when the vehicle is lowered, which would make it tear early.
Name the two calibration steps often needed after an alignment on a modern vehicle.
Show answer
A steering angle sensor reset and a driver assistance camera calibration or check.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.