Short answer: Gen 1 B58s (2016 to 2019 F-chassis cars) take BMW plug 12120040551, and NGK's version of that plug is the 94201 (SILZKGR8B8S). Gen 2 B58TU cars, including the GR Supra, take BMW 12122455258 (also listed as 12125A4EF60), which is NGK 96206 (SILZKGR8E8S). BMW's interval is 60,000 miles. On a tuned car, plan on roughly half that. NGK says boosted engines need a smaller gap, about 0.004" less for every 50 hp you add, and never more than 0.008" from the factory gap. On a 0.030" plug, that puts the floor at 0.022", which is where most B58 plug sellers land for tuned cars. The swap itself is a one-hour driveway job with a 14 mm thin-wall plug socket and a torque wrench.
Parts and tunes in this guide are for off-road / competition use only. Not legal for use on public roads in the United States, including California.
I'm Gleb Blekher. I run B58 Racing out of Dallas, TX. Plugs and coils are the cheapest maintenance on a tuned B58, and they're behind a lot of the "misfire under boost" messages we get. This guide pulls together what NGK, BMW parts listings, plug makers and B58 vendors publish. Every number has a name next to it. Where the sources don't agree, I show the range and who says what.
Who this guide is for
| Family | Cars | Engine | Factory plug |
|---|---|---|---|
| Gen 1 F-chassis | M140i (F20), M240i (F22/F23), 340i (F30), 440i (F32/F33/F36), 540i (G30, 2017–2019), 740i (G11/G12, 2016–2019), X3 M40i (G01, 2018–2019) | B58B30M0 | BMW 12120040551 / NGK 94201 |
| Gen 2 G-chassis | M340i (G20), M440i (G22/G23/G26), M240i (G42), Z4 M40i (G29), 2020+ 540i, X3/X4 M40i, X5/X6/X7 40i, 840i | B58TU | BMW 12122455258 or 12125A4EF60 / NGK 96206 |
| GR Supra 3.0 | A90/A91 | B58TU | Toyota 90118-WA461 (see notes below) |
| S58 (brief) | M2 (G87), M3 (G80), M4 (G82), X3 M, X4 M | S58 | BMW 12122455258 / NGK 96206 |
Not sure which engine you have? Read our B58 Gen 1 vs Gen 2 guide first. The plugs are not the same part across generations.
Gen 3 (B58B30M2) owners: newer cars like the G70 740i and the 2024+ 540i use a different plug again. Dinan lists BMW 12125A523E0 as the OEM reference for its "Gen 3 B58" plug. Check your VIN before you order anything.
OEM spark plug part numbers, by generation
Gen 1 (B58B30M0). BimmerWorld lists BMW 12120040551 for the B46A, B48A and B58A engines, which covers the F22, F30, F32, G30, G12 and G01/G02 cars. BMW sources that number from more than one maker. FCP Euro sells it as a Beru plug, and bmwtuning.co lists Champion RERX4ZWYPB and Bosch 8169 as alternatives. The NGK is the 94201 (SILZKGR8B8S). NGK lists it with a 0.030" (0.75 mm) gap, heat range 8, a 12 mm thread and a 26.5 mm reach.
Gen 2 (B58TU). BimmerWorld lists BMW 12122455258 and 12125A4EF60 as NGK SILZKGR8E8S (NGK stock number 96206). It says this plug replaces the older SILZKGR8C8S (95248). Its fitment list covers the G20 M340i, G22/G26 M440i, G42 M240i, G29 Z4 M40i, 2020–2023 G30 540i, G01/G02 X3 and X4 M40i, G05/G06/G07 40i and G14/G15/G16 840i. NGK's product page gives the 96206 a 0.031" (0.8 mm) gap and heat range 8. Some retailers list it at 0.030". Measure yours.
GR Supra. Toyota's own part is 90118-WA461, listed by Toyota dealer parts sites as "Spark Plug, High Power" for the A90. We could not find a Toyota cross-reference to an NGK number. Retailers list the NGK 96206 for the 2020+ Supra, and BimmerWorld lists the same 96206 for the G29 Z4 M40i, which shares the Supra's engine. One maintenance-schedule site lists the 94201 instead. Our advice: match the plug in your car, or confirm by VIN.
S58. BimmerWorld lists the same BMW 12122455258 / NGK 96206 for the G80 M3, G82 M4, G87 M2 and F97/F98 X3 M and X4 M. The steps below are close, but this guide doesn't cover S58-specific details.
How often to change B58 spark plugs
| Source | Stock car | Tuned car |
|---|---|---|
| BMW, as quoted by BimmerWorld (Gen 1 and Gen 2 kits) | 60,000 miles | "Ahead of the factory interval" |
| Turner Motorsport (genuine BMW B58 plugs) | 60,000 miles | 30,000 miles |
| bmwtuning.co | 45,000 miles | 20,000 miles above stock boost |
The GR Supra is less clear. We didn't read Toyota's Warranty and Maintenance Guide. Secondary sources disagree. One says Toyota lists plugs at 40,000 miles. A Toyota dealer's schedule page puts them around 60,000. Check the guide for your model year.
What we tell customers: on a stock car, follow your service indicator. On a tuned car, plan on 20,000 to 30,000 miles, and sooner if you run ethanol, more boost or a bigger turbo. Pull one plug at every oil change on a hard-driven car and look at it. Plugs are cheap. Chasing a misfire isn't.
Spark plug gap for tuned B58s
The factory gap on both the 94201 and the 96206 is about 0.030". More boost means more cylinder pressure, and more pressure makes it harder for the spark to jump a wide gap. That's when you get misfires under boost.
What NGK says:
- Forced induction or higher compression "will typically require a smaller gap setting" (NGK, Gapping and Indexing).
- Reduce the gap about 0.004" for every 50 hp you add (NGK, "Do I need to set the gap").
- Don't move the gap more than 0.008" either way from the factory preset (NGK, "5 Things You Should Know About Spark Plugs").
- Measure with a round wire or pin gauge. Adjust only the ground electrode. Never pry against the fine-wire center electrode.
So with NGK's own rules, a 0.030" plug can go no lower than 0.022". That works out to about 100 hp over stock using NGK's 0.004"-per-50-hp rule.
What B58 vendors recommend:
| Source | Stock or mild tune | Tuned | Bigger turbo |
|---|---|---|---|
| WCT Performance (NGK 94201 listing) | 0.028" | Not stated | 0.022" |
| Turner Motorsport (B58 performance plug set) | — | 0.022" | — |
| Wayside Performance (Gen 1 NGK set) | 0.024" for Stage 1 | — | — |
| Dinan D640-0001, as shipped (per retailers) | — | 0.020" (0.5 mm) | — |
The vendors cluster at 0.022" to 0.024" for a tuned car. Dinan's plug is the outlier at 0.5 mm, but Dinan sets that gap at the factory. It isn't a 0.030" plug bent down. If you have a 0.030" NGK, stop at 0.022". If you need less, buy a plug made with a smaller gap. Don't bend an NGK further.
In short: the vendors above land on about 0.024" for a lightly modified car on pump gas and 0.022" for bigger power or ethanol blends. Your tuner's number beats any table. Ask them.
Heat range: do you need a colder plug?
Both factory NGK plugs are heat range 8. On NGK's scale a higher number is a colder plug. A colder plug sheds heat faster, which helps resist pre-ignition at high boost. It can also foul in traffic if your car doesn't need it.
- Dinan sells a heat range 9 iridium plug (D640-0001). Dinan's compatibility table, as quoted by retailers, rates it one step colder than OEM on the Gen 1 B48, Gen 1 and Gen 2 B58, and S58. Retailers list NGK 9 as its equivalent.
- Hack Engineering sells the NGK 94201 "for highly tuned B58 and B58TU engines" and says it's "required with enlarged turbos". A SpoolStreet poster argues the 94201 runs colder than other heat range 8 plugs because of its design. That's a forum opinion. NGK rates it heat range 8.
- bmwtuning.co recommends the NGK 94201 for B58s making "450-700+whp," Champion for up to about 450 whp and the Bosch for up to about 400 whp.
- The "one step colder per 75 to 100 hp" rule gets quoted as NGK guidance on forums. We couldn't find it on NGK's own site, so treat it as a rule of thumb.
Our take: On the stock turbo with a mild tune, a fresh heat range 8 plug at the right gap is enough. For a big turbo, steady high boost, ethanol or track days, step one colder and ask your tuner.
Ignition coil symptoms
Each cylinder has its own coil sitting on top of the plug. BimmerWorld's B58 service kits use OEM Eldor coils. Retailers list BMW 12138643360 as an Eldor B58 coil, but confirm the number for your car by VIN.
Signs of a bad coil or a worn plug:
- Misfire codes. P0300 is a random misfire. P0301 to P0306 name the cylinder (BMWInsights).
- Misfire under boost that's fine at idle. BMWInsights says a weak coil "may work at idle but fail when the engine is under load, at higher rpm, or during cold starts." Worn plugs and too wide a gap cause the same thing.
- Stumble or shudder at full throttle, often in higher gears where the load is highest.
- Rough idle or a flashing check engine light. A flashing light means stop driving hard. Unburned fuel can overheat the catalytic converter.
Coil or plug? Do the swap test. Note the cylinder in the code. Swap that coil with one from another cylinder. Clear the codes and drive the car the same way. If the misfire moves with the coil, it's the coil. If it stays, swap that cylinder's plug next, and check for injector or boost-leak trouble. BMWInsights also lists fuel delivery and charge-air leaks as causes of misfire under boost.
Replace coils with plugs? BimmerWorld recommends replacing coils as preventive maintenance. Our view: if your plugs have done two changes on the same coils, or you're adding a lot of boost, do all six at once.
Difficulty, time and whether you need a lift
- Difficulty: 1 out of 5. Everything is on top of the engine.
- Time: about an hour for a first-timer. Less once you've done it.
- Lift: no. Do it on a cold engine, parked on level ground.
Tools
- 14 mm thin-wall spark plug socket. The 94201, 96206 and Dinan plugs all have a 14 mm bi-hex. The plug wells are narrow. A normal 5/8" plug socket won't fit. Get one with a magnet or rubber insert to hold the plug.
- Extensions. A 6" and a 10" extension, 3/8" drive.
- Torque wrench that reads accurately in the 10 to 15 lb-ft (15 to 20 Nm) range. A big 1/2" drive wrench is not accurate down there.
- Wire-type or pin gap gauge. NGK recommends a round wire or pin gauge for its plugs.
- Small flat screwdriver or pick for the coil connector locks.
- Compressed air or a vacuum with a thin nozzle to clean the plug wells.
- Gloves. The coils are tight in their wells.
- Engine cover fasteners. On most cars the cover pulls off rubber grommets. Some cars use screws. Have a Torx set and a small socket set ready.
Parts list
Order six plugs. You'll need six coils too if you're replacing them.
Gen 1 (M240i, 340i, 440i, 540i, 740i, X3 M40i, M140i):
- NGK 94201 spark plugs, Gen 1 B58 (box of four, so buy two boxes)
- NGK coil-on-plug ignition coil (NGK 49061) (M240i, 340i, 440i, 540i, 740i, X3 M40i)
Gen 2 (M340i, M440i, G42 M240i, Z4 M40i) and GR Supra:
- NGK 96206 (SILZKGR8E8S), the factory plug. We don't stock it yet. Ask us.
One step colder, Gen 1, Gen 2, Supra and S58:
- Dinan iridium spark plug, heat range 9 (single) (M240i, 340i, 440i, 540i, 740i, X3 M40i, M340i, M440i, G42 M240i, Z4 M40i, Supra, and S58 cars)
Coils for Gen 1, Gen 2, Supra and S58:
- CTS Turbo high-performance ignition coil. CTS rates it about 10% more spark energy than stock, with no tune changes needed. Sold one at a time.
- Dinan B-Series ignition coil, black, also in red and blue. Sold one at a time. Not listed for the M140i.
Browse everything in B58 engine parts.
Step-by-step: B58 spark plug and coil swap
We couldn't find a published BMW or Toyota DIY procedure for the B58 that we could read in full. The steps below are the standard coil-on-plug procedure. Gap, anti-seize and torque come from NGK.
Stage 1: prep
- Let the engine cool completely. Aluminum heads and hot plugs make it easy to strip threads.
- Gap the new plugs on the bench. Measure each one with a wire or pin gauge. If you're closing the gap, press the ground electrode gently toward the center. Never pry between the electrodes. Don't go more than 0.008" from the factory gap (NGK).
- Open the hood and take off the engine cover. Lift it straight up off its mounts, or remove the screws if yours has them. Set it somewhere clean.
Stage 2: coils off
- Clean around the coils first. Blow or vacuum out dirt and leaves so nothing falls into the plug wells.
- Unlock and unplug each coil connector. Lift the locking tab with a small screwdriver or pick, then pull the connector off. Don't pull on the wires.
- Pull each coil straight up. Twist slightly while you pull. Keep them in order (1 to 6, front to back) if you're reusing them.
- Look at each coil boot. Cracks, burn marks or white tracking lines down the boot mean replace that coil.
Stage 3: plugs out
- Blow out each plug well again before you loosen the plug.
- Loosen and remove each plug with the 14 mm thin-wall socket and an extension. If one feels hard to turn, stop. Work it back and forth a little rather than forcing it.
- Read the old plugs. Lay them out in cylinder order. One plug that looks very different from the rest points at that cylinder. Wet, black, white or melted tips are worth a question to your tuner.
Stage 4: plugs in
- No anti-seize. NGK says: "Do not use anti-seize or lubricant on NGK spark plugs." Its plugs have plated threads that already resist seizing. NGK also says anti-seize can change torque values by up to 20%, which leads to over-tightening. Follow the instructions on the box if you use another brand.
- Start every plug by hand. Use the socket and extension with no ratchet, or a short length of hose on the plug. If it doesn't spin in freely for several turns, it's cross-threaded. Back it out and start again.
- Torque the plugs. NGK's chart gives 10.8 to 14.5 lb-ft (about 15 to 20 Nm) for a 12 mm gasket-seat plug in an aluminum head. Dinan's plug is listed by retailers at 17 Nm (about 12.5 lb-ft), inside that range. We didn't read BMW's or Toyota's own torque figure. If you have it from BMW repair info for your car, use that. Don't copy torque numbers from N54 or N55 guides. Those are a different plug.
Stage 5: coils on and checks
- Fit each coil straight down until it seats. You'll feel it click over the plug.
- Plug in each connector and push the lock down. Tug gently to make sure it's latched. A loose connector is the most common reason for a misfire right after a plug change.
- Refit the engine cover.
- Start the car and let it idle. It should be smooth within a few seconds. Then scan for codes with an OBD-II reader.
- Test under load. Drive normally first, then do a few pulls at full throttle. If you get a misfire code, check that cylinder's connector and coil first.
Common mistakes and how to avoid them
- Wrong plug for the generation. The Gen 1 and Gen 2 plugs are not the same part. Check the table above, or your VIN.
- Gapping too small. Closing an NGK 0.030" plug past 0.022" goes outside NGK's 0.008" limit and can damage the electrode alignment. Buy a plug with a smaller factory gap instead.
- Trusting the box gap. NGK itself says the factory gap may not suit your engine. Measure every plug.
- Using a coin-style gap tool. It can pry against the fine iridium tip. NGK recommends a wire or pin gauge and moving only the ground electrode.
- Anti-seize on NGK plugs. It changes the torque reading and leads to over-tightening.
- Over-tightening. NGK warns that too much torque causes thread damage, seal leaks and a stretched plug shell. Stay in NGK's range.
- Dirt in the plug wells. Blow them out before the plugs come out.
- A connector that isn't locked. It runs fine at idle, then misfires under boost.
- Running too cold a plug on a near-stock car. It can foul in traffic. Go colder only when the power level calls for it.
- Replacing coils blindly. Do the swap test first. A boost leak or bad plug can look exactly like a coil.
FAQ
What spark plugs does the B58 use?
Gen 1 B58s (2016–2019 F-chassis cars) use BMW 12120040551. NGK's version is the 94201 (SILZKGR8B8S). Gen 2 B58TU cars use BMW 12122455258 or 12125A4EF60, which is NGK 96206 (SILZKGR8E8S). The GR Supra's Toyota part is 90118-WA461.
What is the B58 spark plug gap?
NGK lists about 0.030" for both the 94201 and the 96206 (0.031" for the 96206 on NGK's product page). For tuned cars, vendors recommend 0.022" to 0.024". NGK says to close the gap about 0.004" per 50 hp added and never more than 0.008" from the factory gap, so 0.022" is the limit for a 0.030" plug.
How often should I change spark plugs on a B58?
BMW's interval, as quoted by BimmerWorld, is 60,000 miles. On a tuned car, Turner Motorsport says 30,000 miles and bmwtuning.co says 20,000 miles above stock boost. Check Toyota's maintenance guide for your Supra.
Do I need colder spark plugs for a tuned B58?
Not always. A fresh heat range 8 plug at the right gap is fine for a mild tune on the stock turbo. Go one step colder, like Dinan's heat range 9 plug, for big turbos, high boost, ethanol or track use. Ask your tuner.
Should I use anti-seize on B58 spark plugs?
Not on NGK plugs. NGK says not to use anti-seize or lubricant, because its plated threads don't need it and anti-seize can change the torque by up to 20%.
What is the torque spec for B58 spark plugs?
NGK's chart gives 10.8 to 14.5 lb-ft (about 15 to 20 Nm) for a 12 mm gasket-seat plug in an aluminum head. If you have BMW's own figure for your car, use that.
How do I know if a B58 coil is bad?
A misfire code on one cylinder (P0301 to P0306), often only under boost, is the usual sign. Swap that coil to another cylinder. If the misfire follows the coil, replace it.
Should I replace coils when I change spark plugs?
BimmerWorld recommends replacing coils as preventive maintenance. At minimum, look at each coil boot while you're in there. On a tuned car, it's sensible to do all six every second plug change.
Plugs and coils come up again in our B58 common problems guide. For the full build order, see the best B58 mods, in order. Running ethanol? Read our B58 fueling guide. M340i owners should also read our M340i and M440i mods guide, and Supra owners our A90 Supra mods guide.
Sources
- Gap adjustment limit (±0.008"), wire or pin gauge, move only the ground electrode, no anti-seize, anti-seize changes torque by up to 20%, over-torque risks: NGK, 5 Things You Should Know About Spark Plugs
- Reduce gap about 0.004" per 50 hp, factory gap may not suit your engine, don't pry the fine-wire center electrode: NGK, Do I need to set the gap when installing new plugs?
- Forced induction needs a smaller gap: NGK, Gapping and Indexing
- Torque, 12 mm gasket-seat plug in an aluminum head, 10.8–14.5 lb-ft: NGK, Spark Plug Installation
- NGK 94201 gap 0.030", heat range 8, 12 mm thread, 26.5 mm reach (via search summary): NGK 94201 product page
- NGK 96206 gap 0.031", heat range 8, 14 mm bi-hex (via search summary): NGK 96206 product page
- Gen 2 BMW numbers 12122455258 / 12125A4EF60, NGK SILZKGR8E8S / 96206, supersedes SILZKGR8C8S, fitment incl. S58: BimmerWorld OEM spark plug listing (bimmerworld.com)
- Gen 1 BMW 12120040551, fitment: BimmerWorld and BMW dealer parts listings (bimmerworld.com, bmwpartsdeal.com); Beru version: FCP Euro (fcpeuro.com)
- BMW 60,000-mile interval, Eldor coils, coil replacement as preventive maintenance: BimmerWorld B58 ignition service packages (bimmerworld.com)
- 60,000 / 30,000-mile intervals and 0.022" tuned gap (via search summary): Turner Motorsport B58 plug listings (turnermotorsport.com)
- 45,000 / 20,000-mile intervals, Champion and Bosch alternatives, NGK 94201 for 450–700+ whp: bmwtuning.co B58 spark plug listing (bmwtuning.co)
- 0.030" preset, 0.028" factory turbo, 0.022" aftermarket turbo: WCT Performance NGK 94201 listing (wctperformance.ca)
- 0.024" for Stage 1 (via search summary): Wayside Performance Gen 1 NGK listing (wayside-performance.co.uk)
- 94201 "for highly tuned B58 and B58TU engines": Hack Engineering NGK 94201 listing (hackengineering.co.uk)
- Dinan D640-0001 heat range 9, one step colder than OEM, 0.5 mm supplied gap, 17 Nm (via search summary of retailer listings): Dinan product information (dinancars.com) and retailers
- Dinan "Gen 3 B58" plug, OEM reference 12125A523E0: Dinan D640-0003 retailer listing (urotuning.com)
- GR Supra Toyota part 90118-WA461: Toyota dealer parts listings (parts.olathetoyota.com, toyotapartsdeal.com); NGK 96206 for 2020+ Supra: retailer listings; Supra interval disagreement (40,000 vs about 60,000 miles): secondary sites and a Toyota dealer schedule page (via search summary)
- Misfire codes, weak coil fails under load, causes of misfire under boost, coil and plug swap test: BMWInsights, BMW B58 misfire causes
- 94201 design discussion: SpoolStreet, B58 coils and NGK 94201 plugs (via search summary)
- Coil 12138643360 listed as Eldor B58 coil: retailer listings (via search summary)
- CTS coil 10% stronger spark, no tune needed: CTS Turbo product information on our listing
