FS-DET Engine

Technical Library › Engine Information › MazdaUpdated Sep 2026

The FS-DET is the turbocharged 2.0L from the Mazdaspeed Protege, and underneath it's the same FS-DE found in a long list of Mazda and Ford models. This is our quick reference for putting a Haltech Elite on one: the base settings that get it running, and where every factory sensor and actuator lands on the ECU.

About the FS-DET

For 2003, Mazdaspeed in the US took the regular FS-DE 2.0L four-cylinder, added a turbocharger and put it in the Mazdaspeed Protege. Rated output was 170 hp (127 kW) and 160 lb-ft (217 Nm). That's the same horsepower figure as Japan's naturally aspirated Mazdaspeed Familia FS-ZE, but the turbo engine delivers it with a punchier torque curve. Internally the FS-DET matches the standard FS-DE, so everything below also applies to non-turbo FS engines, with the obvious exception of boost-related setup.

The later FS-DE picked up a handful of useful features compared with earlier versions: piston oil squirters, a windage tray, VICS (Variable Inertia Charge System) and VTCS (Variable Tumble Control System). The last two are electrically controlled and are covered in the wiring section.

Where you'll find the FS family

  • Mazda 626 (1993-2002) and MX-6 (1993-1997)
  • Mazda Protege (2001-2003) and Capella (1999-2003)
  • Mazda MPV, Japanese market (1999-2001)
  • Ford Probe (1993-1997) and Telstar (1993-1999)
  • Kia Carens (1999-2006)

Before you start

The reference install was done on an Elite 750, and pin numbers are given below for both the Elite 550/750 and the larger Elite 1000-2500 range, such as the Elite 2500. Plug-in adapters for this engine are available from Boomslang, which saves cutting the factory harness. For a base map, Haltech suggests starting from the MX-5 SE Turbo map, which is a sensible foundation for a turbo four of this size. Read our base map basics before you load it.

Elite base settings

These get the engine synced and firing. Note that the trigger settings differ between US-market (USDM) and Japanese-market (JDM) engines, so identify yours before you enter anything.

Engine and fuel

ESP settingValue
Engine TypePiston 4-Stroke
Number of Cylinders4, 2.0L capacity
Firing Order1-3-4-2
Injection ModeSequential, 4 injectors
Injector flow and current265cc factory injectors, High current setting
Quick StartEnabled

Ignition

ESP settingValueWhy
Ignition ModeWasted SparkTwo coil outputs, each firing a pair of cylinders
Ignition Dwell ModeConstant ChargeAs used on the reference install
Ignition EdgeFallingSpark on the falling edge of the output

Trigger and home (USDM vs JDM)

ESP settingUSDM engineJDM engine
ESP Trigger PatternFSZEFSDE
Crank (trigger) wheel36-1Two groups of two unevenly spaced teeth
Cam (home) wheel3 teeth3 teeth
TDC Angle79435

Both sensors are reluctor (VR) types on both versions. Set trigger and home to Reluctor with a Falling edge, filter level 0 and ground reference enabled. Pull-ups and home minimum RPM don't apply.

Always verify timing

Treat the TDC angles above as a starting point. Lock the timing and check it with a timing light before you tune, as covered in our TDC offset angle tech tip.

Wiring reference

In the tables below, "Factory pin" is the pin and wire color on the Mazda side. The Haltech wire color refers to the Elite universal loom.

Ignition coils

The FS uses a coil pack that fires two cylinders per output, which is why wasted spark is used.

SignalElite 550/750Elite 1000-2500Haltech wireFactory pin
Ignition Output 1 (coil 1)3A3Yellow/BlackC, red
Ignition Output 2 (coil 2)4A4Yellow/RedC, white
12 V switched (run and start), 10 A, from main relay---A, black/blue
Ground---B, black/white

Crank and cam sensors

SignalElite 550/750Elite 1000-2500Haltech wireFactory pin
Trigger positive (crank)31B1YellowCrank pin 2
Trigger negative (crank)33B5GreenCrank pin 3
Crank sensor ground---Crank pin 1
Home positive (cam)32B2YellowCam pin 1
Home negative (cam)34B6GreenCam pin 2

If the engine won't sync, swapping the positive and negative wires of a reluctor sensor is the first thing to try. Our trigger wiring article explains why.

Throttle, MAP and temperature sensors

SignalElite 550/750Elite 1000-2500Haltech wireFactory pin
TPS signal14A14WhiteTPS pin 2, brown/yellow
TPS 5 V supply9A9OrangeTPS pin 3, pink/black
TPS signal ground11B14, B15 or B16Black/WhiteTPS pin 1, orange
MAP signal (external sensor)15A15YellowMAP pin 2
MAP 5 V supply9A9OrangeMAP pin 1
MAP signal ground11B14, B15 or B16Black/WhiteMAP pin 3
Coolant temp (pull-up on)30B4VioletECT pin 1, violet/yellow
Coolant temp ground11B14, B15 or B16Black/WhiteECT pin 2, orange
Air temp (pull-up on)29B3GrayAIT pin 1, blue/white
Air temp ground11B14, B15 or B16Black/WhiteAIT pin 2, orange

The reference car used the Elite's internal MAP sensor instead of an external one, which is the simplest option if your ECU has it. See internal MAP sensor for plumbing tips.

Air temp sensor gotcha

The factory air temp sensor is a two-wire, non-polarized sensor on the intake manifold, and its plug is identical to the idle air control valve plug. Mix them up and the air temp reading will fail. The factory sensor is also slow to respond, so many owners switch to an open-element sensor like the Haltech 1/4" NPT air temp sensor, which we recommend on a turbo build.

Vehicle speed sensor

The VSS is a three-wire sensor: pin 1 is ground, pin 2 takes switched 12 V and pin 3 is the signal. Wire the signal to any free SPI or DPI and configure it under vehicle speed sensors.

VICS and VTCS actuators

VICS changes the effective intake manifold volume to widen the powerband. Be aware of its history: on some engines the screws holding the VICS butterflies worked loose and were swallowed by the engine, sometimes badly enough to need a replacement engine. If you have the manifold apart, check those screws.

VTCS is a set of butterflies that close at low engine speeds during cold starts to improve combustion for emissions. They're known to get noisy with age.

DeviceFactory pin 1 (control)Factory pin 2Elite setup
VICS (dual intake runner)Pink, to any spare output, active lowWhite/red, switched battery powerDual Intake Runner function
VTCSBlue/red, to any spare output, active lowWhite/red, switched battery powerGeneric output at 50 Hz

Our generic outputs article covers building the VTCS logic.

Idle air control and power steering switch

The idle valve is a two-wire BAC type that any Elite can drive. Pin 1 (brown) goes to a spare low-side output configured for idle control. Pin 2 (gray) is 12 V ignition power, but on the factory harness that feed comes from the factory ECU. If you're running the Elite in parallel with the stock ECU, or removing the stock ECU, make sure this pin still gets a proper switched 12 V supply.

The power steering pressure switch grounds its wire when the steering is under load. Connect it to any spare input with the pull-up enabled, and use it to add idle duty so the idle doesn't sag during parking maneuvers. Set it up with power steering switch and idle control.

First start checklist

  1. Confirm USDM or JDM trigger settings match your engine.
  2. Check sensor readings with the key on: coolant and air temp near ambient, TPS moving smoothly from 0 to 100%, MAP reading atmospheric.
  3. Crank with injectors disabled and confirm a steady RPM and trigger sync.
  4. Lock timing and verify it with a light before tuning.

Working on another Mazda four-cylinder? See our pages on the BP-4W and BP-Z3 (BP-VE). Need the connector diagrams? Ask us and we'll send them over with advice for your build.