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 setting | Value |
|---|---|
| Engine Type | Piston 4-Stroke |
| Number of Cylinders | 4, 2.0L capacity |
| Firing Order | 1-3-4-2 |
| Injection Mode | Sequential, 4 injectors |
| Injector flow and current | 265cc factory injectors, High current setting |
| Quick Start | Enabled |
Ignition
| ESP setting | Value | Why |
|---|---|---|
| Ignition Mode | Wasted Spark | Two coil outputs, each firing a pair of cylinders |
| Ignition Dwell Mode | Constant Charge | As used on the reference install |
| Ignition Edge | Falling | Spark on the falling edge of the output |
Trigger and home (USDM vs JDM)
| ESP setting | USDM engine | JDM engine |
|---|---|---|
| ESP Trigger Pattern | FSZE | FSDE |
| Crank (trigger) wheel | 36-1 | Two groups of two unevenly spaced teeth |
| Cam (home) wheel | 3 teeth | 3 teeth |
| TDC Angle | 79 | 435 |
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.
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.
| Signal | Elite 550/750 | Elite 1000-2500 | Haltech wire | Factory pin |
|---|---|---|---|---|
| Ignition Output 1 (coil 1) | 3 | A3 | Yellow/Black | C, red |
| Ignition Output 2 (coil 2) | 4 | A4 | Yellow/Red | C, white |
| 12 V switched (run and start), 10 A, from main relay | - | - | - | A, black/blue |
| Ground | - | - | - | B, black/white |
Crank and cam sensors
| Signal | Elite 550/750 | Elite 1000-2500 | Haltech wire | Factory pin |
|---|---|---|---|---|
| Trigger positive (crank) | 31 | B1 | Yellow | Crank pin 2 |
| Trigger negative (crank) | 33 | B5 | Green | Crank pin 3 |
| Crank sensor ground | - | - | - | Crank pin 1 |
| Home positive (cam) | 32 | B2 | Yellow | Cam pin 1 |
| Home negative (cam) | 34 | B6 | Green | Cam 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
| Signal | Elite 550/750 | Elite 1000-2500 | Haltech wire | Factory pin |
|---|---|---|---|---|
| TPS signal | 14 | A14 | White | TPS pin 2, brown/yellow |
| TPS 5 V supply | 9 | A9 | Orange | TPS pin 3, pink/black |
| TPS signal ground | 11 | B14, B15 or B16 | Black/White | TPS pin 1, orange |
| MAP signal (external sensor) | 15 | A15 | Yellow | MAP pin 2 |
| MAP 5 V supply | 9 | A9 | Orange | MAP pin 1 |
| MAP signal ground | 11 | B14, B15 or B16 | Black/White | MAP pin 3 |
| Coolant temp (pull-up on) | 30 | B4 | Violet | ECT pin 1, violet/yellow |
| Coolant temp ground | 11 | B14, B15 or B16 | Black/White | ECT pin 2, orange |
| Air temp (pull-up on) | 29 | B3 | Gray | AIT pin 1, blue/white |
| Air temp ground | 11 | B14, B15 or B16 | Black/White | AIT 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.
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.
| Device | Factory pin 1 (control) | Factory pin 2 | Elite setup |
|---|---|---|---|
| VICS (dual intake runner) | Pink, to any spare output, active low | White/red, switched battery power | Dual Intake Runner function |
| VTCS | Blue/red, to any spare output, active low | White/red, switched battery power | Generic 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
- Confirm USDM or JDM trigger settings match your engine.
- Check sensor readings with the key on: coolant and air temp near ambient, TPS moving smoothly from 0 to 100%, MAP reading atmospheric.
- Crank with injectors disabled and confirm a steady RPM and trigger sync.
- 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.




