M50 Engine

Technical Library › Engine Information › BMWUpdated Sep 2026

The BMW M50 is a great straight six to put on a Haltech, but it hides a few surprises: its coils have no igniters, early and late cam sensors are different types, and there is no MAP sensor at all. This is our reference for wiring an M50 or M50TU the right way.

M50 at a glance

The M50 is BMW's early-1990s DOHC inline six, found in E34 5 Series and E36 3 Series cars. It's a common swap and track-car engine, and it takes to standalone management well. Unless we say otherwise, everything below applies to both the original M50 and the later M50TU.

SpecDetail
CylindersSix, inline
Firing order1-5-3-6-2-4
Displacement by codeB20: 121 ci (1991 cc), B24: 146 ci (2394 cc), B25: 152 ci (2494 cc). The S50 performance versions go to B30: 182.5 ci (2990 cc) and B32: 195.3 ci (3201 cc)

Which M50 do you have?

"TU" stands for Technical Update. The TU engines, from 1992 on, added single VANOS on the intake cam, and that single change affects your cam sensor wiring and your variable cam setup. So identify your engine before you start.

EngineKey detailsTypical cars
M50B20No VANOS, 10.5:1, iron block with aluminum head, 6500 rpm limitE34 520i (1990-92), E36 320i (1991-92)
M50B20TUSingle VANOS, 11.0:1E36 320i (1992-94), E34 520i (1992-96)
M50B24TUThai-market engine, 10.5:1, a shorter-stroke B25TUE36 325iA/2.4 (1993-95), E34 525iA/2.4 (1992-96)
M50B25No VANOS, 10.0:1E34 525i and 525ix (1990-92), E36 325i and 325is (1991-92)
M50B25TUSingle VANOS, 10.5:1E36 325i and 325is (1993-95), E34 525i and 525ix (1992-96)

The S50B30 and S50B32 are the high-performance "S" relatives, with individual throttles and higher rev limits. They're a different engine and aren't covered here. If you have the later engine, see our M52 page.

Crank and cam triggers

The crank trigger is a 60-2 wheel built into the crank pulley at the front of the engine: sixty tooth positions with two missing to give the ECU a reference. The cam trigger is a single-tooth ring bolted to the end of the camshaft, so you end up with a missing-tooth crank plus a once-per-cycle cam signal.

What changes between engines is the cam sensor. Non-VANOS engines use a reluctor (magnetic) cam sensor, while the VANOS TU engines switched to a Hall effect sensor with a different trigger ring. Wire and configure for the sensor that's actually on your engine.

Crank sensor (all M50)

A reluctor sensor at the front of the engine reads the pulley wheel. You can bench-check it with a meter: expect roughly 540 ohms across pins 1 and 2, and it should sit about 1 mm (0.04 in) from the wheel.

PinHaltech trigger 4-coreRole
1Yellow (Trigger +)Positive side of the signal
2Green (Trigger -)Negative side of the signal
3Leave unconnectedShield

Cam sensor, early non-TU engines

This one is also a reluctor, but note the pin order is reversed compared with the crank sensor. Confirm which ECU input it lands on against your harness documentation before you crimp anything.

PinHaltech 4-coreRole
1Green (Trigger -)Negative side of the signal
2Yellow (Trigger +)Positive side of the signal
3Leave unconnectedShield

Cam sensor, late TU engines

The TU Hall effect sensor needs power and ground as well as a signal, and all three come from the Home 4-core:

PinHaltech Home 4-coreRole
1Red (12V+)Sensor power
2Yellow (Home +)Cam signal
3Blue (signal ground)Sensor ground

With a reluctor sensor, a reversed pair usually shows up as a weak or unstable signal rather than no signal at all, so if sync is flaky on an early engine, check the polarity first.

Ignition: you need an igniter

This is the M50 detail that catches people out. The factory coils have three pins but no built-in igniter. BMW put the igniters inside the factory ECU, so when the OEM ECU goes, the switching has to happen somewhere else. We fit an external igniter such as the Haltech HPI6 six-channel igniter between the ECU outputs and the coils.

Coil pinUsual wire colorGoes to
1Varies by cylinderIgniter output for that cylinder
2BrownGround at the cylinder head
3Green12V+

If you'd rather move to coils with built-in igniters, we also carry a BMW M50/M52 IGN-1A coil bracket kit. Haltech publishes a suggested dwell chart for the factory coils. Ask us and we'll send it over with advice for your build.

Throttle, idle and MAP

Throttle position sensor

The factory TPS is a standard three-wire unit: pin 1 to signal ground, pin 2 to a spare AVI for the signal, and pin 3 to 5V+.

Idle valve

The M50 uses a three-pin idle air valve. The center pin gets 12V+, and the two outer pins each go to a spare ECU output, which lets the ECU drive the valve in both directions.

MAP sensor

There isn't one. The M50 was a MAF engine. For a naturally aspirated build, the ECU's internal MAP sensor is all you need. If you're adding boost beyond what that sensor reads, fit an external MAP sensor to a spare AVI instead.

Variable cam: single VANOS on TU engines

BMW's VANOS (short for variable Nockenwellensteuerung) on the M50TU is simple: it's either on or off, it only moves the intake cam, and when it's on it advances that cam by 25 degrees. In the Haltech, set it up with the Cam Control Switched function. BMW's own strategy was to leave it off at idle, switch it on at low rpm with the throttle open, and switch it back off somewhere around 4000 to 5000 rpm. That's a sensible place to start, then confirm where it makes the most torque on the dyno.

Temperature sensors

The coolant and intake air sensors are both two-wire thermistors that don't care about polarity. One pin goes to a spare AVI and the other to signal ground. Use an AVI that has a selectable pullup and turn it on. If none is free, add an external 1k pullup resistor to 5V.

Knock, O2 and MAF

  • Knock: the M50 carries two knock sensors. The Haltech HT-011100 Bosch knock sensor is the recommended replacement.
  • O2: we'd fit a wideband no matter what. A Haltech WB1 kit with its LSU 4.9 sensor goes in place of the pre-cat sensor. You'll need a 22 mm socket or wrench.
  • MAF: normally removed when a Haltech goes on, though you can keep it. Pin 1 is chassis ground, pin 2 signal ground (black/white), pin 3 switched 12V, and pin 4 is the signal to a spare AVI.

Injector data

Two injector numbers matter for the fuel model. Flow rate is what the injector delivers when held fully open. If the fuel pressure regulator isn't referenced to manifold pressure, the pressure across the injector changes with load, so flow needs mapping against manifold pressure to stay accurate. Dead time is the part of each commanded pulse where fuel isn't flowing at full rate: the time the solenoid takes to open, the time it takes to close, and the partly open moments in between. Get dead time wrong and idle and light cruise fueling will never be quite right.

Factory ECU pinouts

If you're building a harness that reuses the factory loom, the OEM ECU pinouts are the map you need. Early M50B20 engines and the TU engines, which use an MS40.1, have different pinouts, so match the diagram to your engine. Ask us and we'll send it over with advice for your build.

Troubleshooting

SymptomUsually
No spark but good triggerCoils wired straight to the ECU with no igniter in between
Won't sync, early engineCam sensor polarity reversed, or configured as Hall when it's a reluctor
Won't sync, TU engineHall cam sensor missing its 12V or ground
Temperatures read wrong or maxed outPullup not enabled on the AVI, or no external 1k pullup fitted
Idle hunts or won't dropIdle valve outputs swapped, or 12V missing from the center pin

M50 FAQ

Can I run M50 coils straight from a Haltech?

No. They have no igniter inside, so you need an external igniter, or a coil upgrade with built-in igniters.

Does the M50 need a MAP sensor?

The engine never came with one, but the Haltech has one built in, and that covers naturally aspirated use. Turbo builds need an external sensor rated for the boost.

What trigger setup does the M50 use?

A 60-2 crank wheel and a single-tooth cam. If you have the later engine, the M52 page covers it. Not sure what you have? Book a free consultation.