The brief
The 640i had developed a rough idle the owner could feel at the lights, plus misfires that came and went, and the check engine light was on with codes pointing at two cylinders. Past 120,000 km, the ignition coils were the obvious place to look, and not just the two that were flagging.
Each cylinder has its own coil sitting on top of the spark plug, firing it thousands of times a minute. They age together, and when a couple start to break down you get exactly this: a stumbling idle, intermittent misfires that move around, and a fault light. Chasing one coil at a time on a six-cylinder that old is a recipe for repeat visits.
The diagnosis
On the BMW handset the misfire counts on the two flagged cylinders were high enough to point straight at the coils, and a swap test confirmed it, when the suspect coils were moved to other cylinders, the misfires moved with them.
With all six coils the same age and mileage, doing the lot in one go was the sensible call rather than replacing two now and being back for the next pair soon. The spark plugs were in there too, so a fresh set of those at the same time made sense while everything was open.
The work
All six coils came out and new BMW-spec replacements went in, and a fresh set of OEM-spec spark plugs went in while the area was open. The stored fault codes were cleared on the handset.
The engine was run and checked for a clean idle and no misfires before the car went back to the owner.
The outcome
The idle smoothed out, no misfires across a road test, and the check engine light off and staying off.
The 640i went home with the ignition system reset, fresh coils and plugs all round. For the owner that is a car that idles smoothly and pulls cleanly again, and doing the whole set at once means the ignition side is good for a long stretch rather than a string of return visits as each old coil gives out.