BMW Engine Codes Explained Without the Jargon

Short answer: BMW engine codes like B58, N55, and S58 identify the engine family and design — the letter (M, N, B, S) marks the generation, and the number is a family identifier, not displacement or power. TU means Technical Update (a revision). Model badges like 330i or M340i are marketing names, not engine codes: a G20 330i uses a B46/B48 engine, an M340i uses a B58, and an M3 uses an S58.

BMW’s engine codes look like alphabet soup until someone explains the system — then they click into place permanently. This guide decodes the whole scheme: what the letters M, N, B, and S mean, why the numbers are not what you think, what TU signifies, and which engines powered each 3 Series generation. Note the boundary of this article: it covers engine codes (B58, N55, S58). The numbers on the trunk — 330i, M340i — are model badges with their own logic, explained in our BMW badge numbers guide.

On this page

The three eras: M, N, and B

BMW engine codes are organized by generation, and the first letter tells you which era an engine belongs to. Think of them as chapters in BMW’s engineering history:

Family letterEraDefining traitExample engines
M~1990–2006Naturally aspirated workhorses; one engine, one jobM52, M54
N~2004–2017The turbo transition; Valvetronic and direct injection spreadN52, N54, N55, N20
B2014–presentModular design: shared architecture across 3, 4, and 6 cylindersB38, B48, B58
SOverlaps all erasM GmbH high-performance engines (not an era — a division)S55, S58, S65

The M engines (not to be confused with M cars) powered the E36 and E46 generations — the beloved M54 3.0-liter inline-six in the E46 330i is the icon of this era. The N generation began with the N52 (one of the last great naturally aspirated sixes) and then pivoted hard to turbocharging with the N54 and N55. The B generation, introduced from 2014, is the modular family: BMW designed a single-cylinder blueprint of roughly 500 cc and built three-, four-, and six-cylinder engines from it, sharing parts, tooling, and engineering across the range. The S prefix is different in kind — it marks engines developed by BMW M GmbH for M cars, and S engines have existed alongside every era.

Anatomy of an engine code

Diagram breaking down a BMW engine code into family letter, identifier number, and TU suffix
Reading a code: the letter is the era, the number is a family identifier — not displacement — and TU marks a technical revision.

Take B58B30O1, the full code for the M340i’s engine, and read it left to right:

  • B — the engine family/era (modular B generation).
  • 58 — the family identifier. This is the single most misunderstood part: 58 is not 5.8 liters, not 5 cylinders, not 8 of anything. It is simply the design’s number within the family. The B58 is a 3.0-liter six; the B48 is a 2.0-liter four. The number distinguishes the design, nothing more.
  • B30 — in the extended code, the nominal displacement class (3.0 liters). Older extended codes used this position consistently; on modern engines treat it as a rough displacement indicator, not a precise measurement.
  • O1 — the output/variant designation (upper output level, first version). BMW uses letters here to distinguish power levels of the same basic engine.

You will also see TU appended — as in B58TU1 — which stands for Technical Update: a significant revision of an existing design (new fuel system, revised cooling, updated turbocharger) rather than a clean-sheet engine. A TU engine is the same family with meaningful improvements, and it matters when ordering parts or researching known issues, because early and TU versions can have different weak points.

One more critical distinction: the short code (B58) is what enthusiasts and parts catalogs use day to day. The long code (B58B30O1) is what appears in BMW’s technical documentation. They refer to the same engine family — the long code just pins down the exact variant.

The N family: the turbo transition

The N generation spans BMW’s pivot from natural aspiration to turbocharging, and it contains both some of BMW’s most beloved and most notorious engines. The key members:

CodeCylindersAspirationKnown forFound in (3 Series)
N52Inline-6, 3.0LNaturalLast of the NA sixes; smooth, reliable, magnesium blockE90 325i/328i/330i
N54Inline-6, 3.0LTwin-turboHuge tuning potential; early fuel-pump and injector issuesE90 335i (2007–2010)
N55Inline-6, 3.0LSingle twin-scroll turboRefined successor to the N54; ValvetronicE90 335i (2011–2013), F30 335i
N20Inline-4, 2.0LTurboReplaced the NA six in base models; timing-chain scrutiny on early carsF30 320i/328i
N26Inline-4, 2.0LTurboSULEV-emissions sibling of the N20 for certain US statesF30 328i (SULEV states)

The N52 deserves a special note: it is the engine nostalgists mean when they talk about the “old BMW” feel — naturally aspirated, silky, with an 7,000-rpm redline and none of the complexity that turbos bring. The N54 is the opposite legend: a tuner’s dream that made enormous power but taught a generation of owners about high-pressure fuel pumps and wastegate rattle. The N55 split the difference, keeping most of the performance with far fewer headaches. And the N20 marked a cultural shift — the moment the volume 3 Series went from six cylinders to four, a move the B48 later perfected.

The B family: the modular era

The B generation is BMW’s most rational engine program ever. Instead of designing each engine separately, BMW engineered one cylinder — roughly 500 cc, with a common bore spacing, cooling concept, and component set — and built everything from it. A three-cylinder is one-and-a-half of the blueprint, a four is two, a six is three. The result is enormous parts commonality: a B48 four-cylinder and a B58 six-cylinder share pistons, valves, injectors, and design logic, which simplifies manufacturing, servicing, and parts supply.

CodeCylindersDisplacementRoleFound in (3 Series)
B38Inline-31.5L turboEfficiency/base models (not in the 3 Series)— (2 Series, MINIs, i8)
B46Inline-42.0L turboUS-market 330i engine; SULEV-focused relative of the B48F30 330i, G20 330i
B48Inline-42.0L turboGlobal 2.0L turbo; the volume engine of the modern lineupF30 330i (outside US), G20 330i (some markets)
B58Inline-63.0L turboThe celebrated six; 322–382 hp depending on variantF30 340i, G20 M340i
B58 TU1Inline-63.0L turboTechnical Update: revised fuel/cooling/turbo; the 382-hp M340i engineG20 M340i

Two things trip people up here. First, B46 vs B48: the B46 is not a lesser engine but a US-emissions-optimized relative of the B48, built to meet SULEV (Super Ultra Low Emission Vehicle) standards. Same displacement, same architecture, same 255 hp in the G20 330i — different emissions hardware and calibration. If you own a US-market 330i, you almost certainly have a B46; the distinction matters mostly when ordering emissions-related parts.

Second, the B58’s reputation is genuinely exceptional. It replaced the N55 starting in 2016, and its closed-deck block, water-to-air intercooling, and robust internals made it both smoother and far more tune-friendly than its predecessor. The TU1 update (fitted to the G20 M340i) raised output to 382 hp and 369 lb-ft — the figure that made the M340i a giant-killer. When enthusiasts call the B58 the best engine BMW currently makes, this is the engine they mean.

BMW inline-six turbocharged engine in an engine bay
The B58: a 3.0-liter turbocharged inline-six from BMW’s modular B family — the heart of the 340i and M340i.

The S family: M engines

S engines are developed by BMW M GmbH — the motorsport division — and they are related to, but distinct from, their production counterparts. The relationship is usually evolutionary: M takes a strong production block and re-engineers it for high-rpm, high-output duty with forged internals, revised cooling, and different turbocharging.

CodeBased onConfigurationFlagship application
S65Clean-sheet M design4.0L NA V8, 8,400-rpm redlineE90/E92 M3
S55N55 architecture3.0L twin-turbo I6, ~425 hpF80 M3 / F82 M4
S58B58 architecture3.0L twin-turbo I6, 473–503 hpG80 M3 / G82 M4
S63N63 architecture4.4L twin-turbo V8F10/F90 M5

The S55-to-N55 and S58-to-B58 relationships are the clearest illustration of what the S prefix means. An S58 shares its basic architecture with the B58 in your neighbor’s M340i, but with a forged crankshaft, different pistons, a revised cylinder head, larger turbochargers, and cooling systems designed for track abuse. Same family DNA; completely different athlete. This is also why S engines cost so much more to maintain — they are hand-assembled in smaller numbers with motorsport-grade components.

Beyond the 3 Series: diesels, V8s, and the codes you will meet elsewhere

The 3 Series is BMW’s heartland, but the same code system covers the whole lineup — and used buyers cross-shop constantly, so it pays to recognize the rest of the family. The diesel codes follow the same generational logic: the N47 2.0-liter four-cylinder diesel (2007–2015) was the workhorse of the E90 320d, replaced by the modular B47, while the B57 3.0-liter diesel six powers the effortless long-distance cruisers like the G30 540d. Diesels are identified the same way — letter for era, number for the design — and the same TU logic applies to their revisions.

The V8s have their own sub-history. The N62 4.4-liter naturally aspirated V8 (E60 545i/550i) was BMW’s last NA eight — silky, but now old enough that valve-stem seals and coolant-pipe issues are part of the ownership conversation. Its successor, the N63 twin-turbo “hot-V” V8 (turbochargers nestled between the cylinder banks), brought enormous power to the F10 550i and G30 M550i — and taught BMW hard lessons about heat management that the later TU versions addressed. The M division’s S63 is the motorsport evolution of that architecture, powering every turbocharged M5 since 2011.

One boundary note: this code system covers combustion engines. BMW’s electric drivetrains (the i4, iX, i7) use a different naming scheme based on motor power output, and hybrids pair a B-family engine with an electric motor rather than getting a new code. If you are cross-shopping electric, the engine-code knowledge still helps — a 330e is a B46/B48 with a motor attached, so the combustion-side maintenance logic carries over.

3 Series engine timeline: E46 to G20

Put it all together and the 3 Series’ engine history reads as a clean handoff between the three eras:

GenerationYearsBase enginePerformance engineM engine
E461999–2006M54 2.5L/3.0L I6M54 3.0L (330i)S54 3.2L I6
E902006–2013N52 3.0L I6N54/N55 3.0L turbo I6 (335i)S65 4.0L V8
F302012–2019N20/N26 then B46/B48 2.0L turbo I4N55 then B58 3.0L turbo I6 (335i/340i)S55 3.0L twin-turbo I6
G202019–presentB46/B48 2.0L turbo I4 (330i)B58 TU1 3.0L turbo I6 (M340i)S58 3.0L twin-turbo I6

Notice the pattern: each generation’s performance engine becomes the next generation’s legend. The E46’s M54 is now the classic everyone wants; the E90’s N54 went from warranty headache to tuner icon; and the B58 is currently living its golden age. Buying a used 3 Series is, in a real sense, buying into one of these engines — which is why decoding the code matters more than reading the badge. Our used 3 Series buying guide builds on this timeline with generation-by-generation buying advice.

Decoding walkthrough: three real examples

Theory is nice; practice is better. Here is how to read three codes you will actually encounter, start to finish.

Example 1: N55 — the F30 335i’s engine

N puts it in the turbo-transition generation (roughly 2004–2017). 55 is the family identifier — it tells you this is the six-cylinder turbo design of that era, not a displacement or power figure. There is no TU suffix, so this is the original version of the design. Put together: a 3.0-liter single-turbo inline-six from the N generation, fitted to the E90 335i (2011–2013) and F30 335i. Its predecessor, the N54, was the twin-turbo version of the same idea; its successor, the B58, is the modular-generation equivalent.

Example 2: B48 — the G20 330i’s engine (non-US)

B marks the modular generation (2014–present). 48 identifies the four-cylinder turbo design of that family — the B38 is the three-cylinder, the B58 the six. So B48 = the modular 2.0-liter turbo four, making 255 hp in the G20 330i. If your 330i is a US-market car, you will find B46 on the build sheet instead: same architecture, SULEV emissions calibration. Same code-reading logic, one extra emissions wrinkle.

Example 3: S58 — the G80 M3’s engine

S means BMW M GmbH developed it — this is a motorsport-division engine, not a production engine. 58 reveals its lineage: it is the M version of the B58 architecture, just as the S55 was the M version of the N55. So S58 = the M GmbH twin-turbo 3.0-liter inline-six derived from the B58, producing 473–503 hp depending on variant. The S prefix is the most financially significant letter in this guide: it signals M-level parts prices and M-level service intensity.

How to find your BMW’s engine code

Knowing how to read codes is only useful if you can find yours. Three reliable methods:

  • VIN decoder or build sheet: the most reliable method. BMW’s own VIN lookup, a dealer printout, or a reputable VIN decoder will list the exact engine code (often the long form, e.g., B58B30O1). This is the method to use before ordering parts.
  • Under the hood: many BMWs carry an emissions or engine-information sticker on the underside of the hood or on the strut tower that includes the engine code. It can be grimy — bring a flashlight.
  • Model + year + market: the tables and the finder tool in this guide will get you the right answer in most cases, since BMW rarely fitted two different engines to the same model in the same year and market. The exceptions (N20 vs N26, B46 vs B48) are emissions-driven and documented above.

What not to trust: the trunk badge (it is a marketing designation, as our badge guide explains), the seller’s memory, and generic auto-parts websites that list “fits 330i” without distinguishing B46 from B48. When money is on the line — parts, a pre-purchase inspection, or a tune — verify with the VIN.

Why BMW keeps changing the system

A fair question: why not one code system forever? Because each generation answered a different engineering problem. The M era was about perfecting the naturally aspirated inline-six. The N era was about surviving emissions regulations and the industry’s pivot to turbocharging — BMW had to learn forced induction at scale, and the N54’s teething problems were the tuition. The B era is about cost and flexibility: one modular cylinder design serving everything from a 1.5-liter three-cylinder to a 3.0-liter six lets BMW build engines cheaper, update them faster, and share parts across millions of cars.

The S prefix persists through all of it because M GmbH’s job never changes: take the best production architecture available and re-engineer it for the M cars. Today’s S58 will likely become tomorrow’s legend, just as the S54 (E46 M3) and S65 (E90 M3) did before it. If there is a lesson in the code system, it is this: the letter tells you the era’s engineering philosophy, the number tells you which design — and together they tell you what kind of ownership experience you are buying into.

Interactive: BMW engine-code decoder

Select any of the 21 engine codes below for a full decode: family, configuration, era, reputation, and where to find it.

Interactive: which engine is in this BMW?

Pick a model and the finder tells you the exact engine code — handy when shopping for a used BMW.

Common confusions, cleared up

Close-up of BMW trunk badges 330i and M340i
Badges are marketing; codes are engineering. A 330i badge can hide a B46 or B48; an M340i badge always means a B58.

“My 330i has a 2.0-liter — is the badge lying?”

No. Since the F30 generation, BMW’s model numbers have indicated relative performance position, not displacement. The 330i badge means “the quick mainstream 3 Series,” and the engine delivering that is the 2.0-liter B46/B48. The full logic is in our badge numbers guide — the short version is that badges rank cars while codes identify engines, and the two systems stopped tracking each other years ago.

“Is a B46 just a detuned B48?”

Effectively they are siblings, not parent and child. The B46 is the SULEV-emissions variant of the same 2.0-liter modular architecture, with different emissions hardware and calibration to meet stricter US standards. Same 255 hp in the G20 330i. Do not assume every component is identical when ordering parts — but do not treat them as different engines, either.

“Does TU mean it’s a different engine?”

No — TU (Technical Update) means a significant revision of the same engine. A B58 TU1 is still a B58, with updated fueling, cooling, and turbocharger. It matters for parts ordering and for researching known issues, because the early and TU versions can fail in different ways.

“Are S engines just tuned production engines?”

More than tuned, less than clean-sheet. M GmbH starts from the production architecture and re-engineers the internals, turbocharging, and cooling for sustained high output. An S58 shares DNA with the B58 but has forged internals and track-grade cooling the production engine lacks. Budget M-level maintenance accordingly — our 3 Series maintenance schedule shows how service intensity scales with performance.

What engine codes do not tell you

Engine codes are precise about what the engine is and silent about how it has lived — and the second question matters more when buying used. A B58 with 120,000 miles of documented dealer servicing is a better buy than a B58 with 60,000 miles and no records. The code cannot tell you whether the timing chain was serviced, whether the car was tuned, or whether the cooling system was maintained. It also does not tell you the power output on its own: a B58 made 320 hp in the F30 340i and 382 hp in the G20 M340i, and only the variant designation (or the model badge) distinguishes them.

Codes also do not capture running changes within a production run. BMW updates parts continuously — a 2018 B58 and a 2020 B58 are the same code but may have different revisions of individual components. For parts ordering, the VIN plus the production date beats the engine code every time. Think of the code as the chapter title: essential for orientation, but the full story is in the service records. That is why every buying guide we publish, including our used 3 Series guide, treats history as more important than hardware.

Engine code FAQs

What does the number in a BMW engine code mean?

It is a family identifier, not a measurement. The 58 in B58 does not mean 5.8 liters or 58 of anything — the B58 is a 3.0-liter six-cylinder. The letter (M, N, B, S) tells you the engine generation; the number distinguishes the design within that generation.

What does TU mean in BMW engine codes?

TU stands for Technical Update — a significant revision of an existing engine design (new fuel system, revised cooling, updated turbocharger) rather than a new engine. Example: the B58 TU1 in the G20 M340i makes 382 hp versus the original B58’s lower outputs.

Is a 330i’s engine called a 330i engine?

No. 330i is a model badge; the engine is a B46 (US) or B48 2.0-liter turbo four-cylinder. Likewise, an M340i uses a B58 engine and an M3 uses an S58. Badges indicate performance position; codes identify the actual engine.

What is the difference between the B46 and B48?

The B46 is the SULEV-emissions-optimized US-market relative of the global B48. Same 2.0-liter modular architecture and same 255 hp in the G20 330i, with different emissions hardware and calibration. Most US-market 330i cars have the B46.

Which BMW engine is the most reliable?

Among modern engines, the B58 six-cylinder and B48 four-cylinder have the strongest reputations, with no systemic defect on the scale of the N54’s early fuel-pump issues. Among classics, the naturally aspirated M54 and N52 sixes are famously long-lived. In every case, documented maintenance history matters more than the code on the block.

Similar Posts