LF (MZR) Engine

Technical Library › Engine Information › MazdaUpdated Sep 2026

The 2.0L MZR in the NC Miata is a tough little engine that responds well to a standalone ECU, as long as you plan for drive by wire, variable cam timing and a CAN-heavy chassis. This is our shop guide to wiring and configuring the LF-VE on a Haltech Elite.

The engine in a nutshell

Mazda calls it the LF, and in the NC generation MX-5 Miata it is the LF-VE: a 1999 cc (122 ci) inline four with a 1-3-4-2 firing order. You will also hear it called a Ford Duratec, which confuses people because Ford used the same name on the older, unrelated Zetec engines. Volvo fitted it too, as the B4204S3 and B2404S4. The details below are written around the Miata version, which is mounted front to back. Transverse versions exist in other cars and may differ in sensor placement.

Only the Elite 1500 and Elite 2500 support this engine, so start with an Elite 1500 or Elite 2500.

Know your variant

VariantWhat sets it apartHaltech support
LF-DE10.0:1 compression, no variable cam timing, stainless headers and cat, no balance shaftsYes
LF-VE (NC Miata)10.8:1, S-VT on the intake cam, more intake lift, variable intake length. From 2009 it got a forged crank, new pistons, valve springs and rod bearings, and a 7500 RPM limitYes
LF-VDDirect injection, with exhaust cam timing and 12.1:1 on later versionsNot supported

Check these before you spend money on a tune

Three known issues show up often enough that we look for them on every LF that comes in:

  • Intake swirl plates. Early plastic manifolds carry small plates on a square shaft right at the head flange. The plastic is poor quality, and a plate, or occasionally the whole shaft, can break off and drop into a cylinder. A ticking from the front of the engine is the early warning. It has been seen from around 25,000 miles, with most failures closer to 90,000.
  • Oil use. Past about 100,000 miles, valve stem seals and rod bearing wear are the usual suspects.
  • Thermostats. They tend to fail around 60,000 miles, showing up as overheating or an engine that takes forever to warm up. A bad thermostat will also mess with every coolant-based correction in your tune.

Trigger setup

Both crank and cam sensors are three-wire Hall effect units.

The crank wheel is part of the front pulley. It is based on 36 teeth, with one gap of two missing teeth on one side and, directly across from it, two more two-tooth gaps separated by a single tooth. The cam wheel has four evenly spaced teeth, and two neighboring teeth each carry an extra tooth. That combination lets the ECU find cylinder one quickly.

SensorPinFunctionHaltech wire
CrankA (G/R)Sensor groundTrigger 4-core, blue
CrankB (G/Y)SignalTrigger 4-core, yellow (Trigger +)
CrankC (L/O)5 V supplyTrigger 4-core, orange
CamA (L/B)Sensor groundHome 4-core, blue
CamB (R/B)SignalHome 4-core, yellow
CamC (LG/B)5 V supplyHome 4-core, orange

Haltech has a trigger configuration screenshot for this engine. Need it? Ask us and we'll send it over with advice for your build. As always, confirm base timing with a light before you tune.

Ignition

The coil-on-plug units have their igniters built in, so they wire straight to the ECU's ignition outputs. They rely on the ECU for dwell, so set them to Constant Charge with a Falling edge.

Coil pinFunction
ASwitched 12 V
BGround to the cylinder head
CECU ignition output

Use a dwell table built for these coils rather than a generic value.

Need this diagram? Ask us and we'll send it over with advice for your build.

Drive by wire throttle and pedal

The LF uses one electronic throttle body, which also handles idle speed, so there is no separate idle valve. The table below shows how we wire the throttle and pedal on an Elite. After wiring, run the DBW calibration in Drive By Wire and our Elite DBW wiring notes.

PartPinFunctionHaltech connection
ThrottleAMotor -DBW2
ThrottleBMotor +DBW1
ThrottleCSensor groundSignal Ground
ThrottleDTPS 2AVI-3
ThrottleE5 V5V+
ThrottleFTPS 1AVI-2
PedalA / D5 V (track 2 / track 1)5V+
PedalB / EGround (track 2 / track 1)Signal Ground
PedalCAPP 2AVI-5
PedalFAPP 1AVI-4
Safety first

Before you ever start the engine, confirm both throttle and both pedal tracks move the right way and agree with each other. A crossed pair of motor wires or a swapped TPS track will fault the system or, worse, open the throttle when you did not ask it to.

Other sensors

MAP

There is a factory MAP sensor on the side of the intake manifold: A is ground, B is unused, C is 5 V and D is signal, which we put on a spare AVI such as AVI-9. Haltech has not tested a calibration for it, so the simple alternative is the Elite's internal MAP sensor. If you are adding boost beyond what the internal sensor reads, fit an external sensor on a spare AVI.

Coolant temperature

It sits on the thermostat housing at the back of the engine. It is a two-wire sensor with no polarity: one pin to a spare AVI with the pull-up switched on, the other to signal ground. If your AVI has no selectable pull-up, add a 1k resistor to 5 V, because the calibration assumes one.

Air temperature and MAF

Air temp is built into the MAF in the airbox lid. Most Haltech installs drop the MAF, and if you do, fit a separate air temp sensor in the intake. If you keep the MAF: A is switched 12 V, B is MAF ground, C is MAF signal to a spare AVI, D is air temp signal to a spare AVI with pull-up on, and E is the air temp ground.

Knock

The factory knock sensor works with the Elite: pin A to a knock input, pin B to signal ground. Set it up in Knock Control.

Oxygen sensors

The car has two heated four-wire narrowband sensors. Swap the front one for the Bosch LSU 4.9 that comes with a Haltech WB1 kit. A 22 mm socket or wrench removes them.

Vehicle speed

Only manual NCs without ABS or DSC have a Hall effect speed sensor you can wire to. Every other NC gets road speed from the ABS module over CAN. The chassis uses CAN for the dash, ABS and body control, so plan how those will be handled before you cut anything.

Variable systems on the LF-VE

SystemWhat it doesHow we set it up
S-VT intake camContinuously variable intake cam timingCam Control, with Intake Cam 1 input set to Home. Drive the solenoid from any spare output that is not an ignition output. See Cam Control
Variable intake lengthA switched solenoid changes the runner lengthAny spare output, switched on below 3000 RPM
Tumble valvesPlates near the head in each runner that add tumble when cold or idlingA Generic Output on the Elite

Injectors

Stock LF-VE injectors flow 240 cc/min, rated with the injector held fully open. Two things matter here. First, if your fuel system uses a fixed pressure regulator that is not referenced to manifold pressure, as many returnless systems do, the effective flow changes with boost and vacuum, so it needs to be mapped against manifold pressure. Second, get the dead time right. An injector takes a moment to open and close, and it flows less than its rating while it is moving, so the ECU adds a small amount of time to every pulse to make up for it. Wrong dead times show up as an idle and cruise that never quite settle.

Factory ECU

It lives in the engine bay beside the airbox. Haltech has the factory pinout across several diagrams. Ask us and we'll send them over with advice for your build.

Troubleshooting

SymptomUsually
Ticking from the front of the engineSwirl plates coming loose. Stop and inspect before tuning
Slow warm-up or overheatingTired thermostat
DBW fault on key-onMotor polarity or a TPS/APP track wired to the wrong AVI
No road speedCar gets speed over CAN from ABS, so there is no sensor to wire
Coolant reads wrongAVI pull-up not enabled and no external 1k resistor fitted

LF MZR FAQ

Can a Haltech run the direct injection LF-VD?

No. Only the port injected LF-DE and LF-VE are supported.

Do I need the Elite 2500, or will a 1500 do?

Both support it. The 2500 gives you more spare inputs and outputs for extras like boost control and a wideband. Browse the Duratec Zetec-E guide too if you are comparing Ford-family fours, or book a free consultation and we'll help you choose.