For decades, BMW has used a unique naming convention for their BMW engines, which can be quite confusing to non-BMW insiders. BMW labels codes their engines under the B, M, N, P or S. In the past, the BMW Engine Codes Naming Convention was certainly simpler than it is today. The M10 was reserved for the four-cylinder unit, the M20 for a low-powered six-cylinder and M30 for high-powered straight sixes.

But over the years, their fleet has expanded, as well as the engine offerings. Yet, some things remained consistent. The M Division labels their engines under the “S” code, while standard engines are categorized under the “M”, “N”, or “B” code. The Motorsport Racing division develops their units under the “P” code. Today, typical BMW engine codes are represented by a carefully ordered numbered and letters, which can be extremely useful for current and future BMW owners. You won’t only learn about your car’s specific power output and displacement, but it can also help you find replacement parts.

To simplify the decoding process, we put together a BMW Engine Naming Convention guide:

BMW M Engine Code

M52B20TUEngine Family
MStandard Engines 1991 - 2005
NStandard Engines 2006 - 2016
BStandard Engines 2016 onward
SBMW M Engines
PBMW Motorsport racing engines
M52B20TUCylinders Count
3Inline 3-cylinder
4Inline 4-cylinder
5Inline 6-cylinder
M52B20TUEngine Variation
0Original engine design
1-9Major Updates
M52B20TUFuel Type
ABenzine (gasoline), transverse mounted. Found in front-wheel drive based
BBenzine (gasoline), longitudinally mounted. Found in rear-wheel drive
CDiesel, transverse mounted. Found in front-wheel drive
DDiesel, longitudinally mounted. Found in rear-wheel drive
GNatural Gas
202.0 liter
252.5 liter
303.0 liter
444.4 liter
M52B20TUTechnical Update
A revision to an existing engine design variant. "TU" stands for Technical Update

The “N” Family of BMW Engines strayed from the initial logic and features some variations:

BMW N Engine Code

N55B30T0Power Level
OObere (Upper)
MMittel (Medium)
UUnterste (Lower)
KKleiner (Reduced)
0New Development
N55B30T0Technical Update
0Original engine design
1-9Minor update to the original design

BMW B Engine Code

It follows the same logic at the “N” BMW Engine Family it replaced.

BMW S Engine Code

Some of the previous BMW “S” engines had a simpler naming convention, like the famous S54B32. The S engine codes initially used the format of the M engine up to the S63 engine.  But the latest units, such as the S55B30O0 in the current M3/M4, follows in the steps of the BMW “B” engines naming convention. Therefore, the same logic applies.  There is also another exception: the W engine codes. If you see a BMW engine with a “W,” that means it was built by an external supplier.