← Back

BMW 3 Series E46 1998–2006 (M54) → MoTeC M800 universal (auto)

BMW 3 Series E46 1998–2006 (M54) — MoTeC — M800
⚠ NOT CHECKED. Don't build from this.
Drawn by Michael Gnankou · Rev 0 · draft · 2026-10-11

Before you start

Not confident with automotive wiring? Have a professional harness builder or tuner do it, or check your work before first power-up. A wiring mistake can damage the ECU, the engine or the car, or start a fire.

Statusdraft · not yet verified: nobody has reported building and running this harness
Open errors3: read the Findings page before cutting any wire
Size of the job65 wires · 11 connectors · 4 part lines
ToolsCrimp and extraction tools for each terminal family (see Connectors) · wire strippers · multimeter · heat gun + heat-shrink
Terminals3-1447221-4
Order of work1. Check every part against the parts list. 2. Cut and label every wire (labels: Export → Wire labels). 3. Crimp and pin connector by connector, ticking the build checklist. 4. Run the bench test with nothing plugged in and the battery disconnected. 5. Only then connect the ECU and power up.

Build checklist

Tick each box as you go. Continuity: meter from end to end, expect under 1 Ω.

WireFromToGaugeColourCutLabelCrimp ACrimp BPin APin BContinuity
W1OEM-X60001-8SP-14V-10.85☐☐☐☐☐☐☐
W2OEM-X60001-9SP-14V-10.85☐☐☐☐☐☐☐
W3SP-14V-1M800-A-260.85☐☐☐☐☐☐☐
W4OEM-X60001-4SP-GND-10.85☐☐☐☐☐☐☐
W5OEM-X60001-5SP-GND-10.85☐☐☐☐☐☐☐
W6OEM-X60001-6SP-GND-10.85☐☐☐☐☐☐☐
W7OEM-X60005-5SP-GND-10.85☐☐☐☐☐☐☐
W8SP-GND-1M800-A-100.85☐☐☐☐☐☐☐
W9SP-GND-1M800-A-110.85☐☐☐☐☐☐☐
W10OEM-X60002-20SP-0V-10.5☐☐☐☐☐☐☐
W11OEM-X60002-21SP-0V-10.5☐☐☐☐☐☐☐
W12OEM-X60002-22SP-0V-10.5☐☐☐☐☐☐☐
W13OEM-X60002-24SP-0V-10.5☐☐☐☐☐☐☐
W14OEM-X60003-15SP-0V-10.5☐☐☐☐☐☐☐
W15OEM-X60003-17SP-0V-10.5☐☐☐☐☐☐☐
W16OEM-X60003-18SP-0V-10.5☐☐☐☐☐☐☐
W17OEM-X60003-20SP-0V-10.5☐☐☐☐☐☐☐
W18OEM-X60003-21SP-0V-10.5☐☐☐☐☐☐☐
W19OEM-X60003-23SP-0V-10.5☐☐☐☐☐☐☐
W20OEM-X60003-25SP-0V-10.5☐☐☐☐☐☐☐
W21OEM-X60003-28SP-0V-10.5☐☐☐☐☐☐☐
W22OEM-X60004-12SP-0V-10.5☐☐☐☐☐☐☐
W23OEM-X60004-7SP-0V-10.5☐☐☐☐☐☐☐
W24SP-0V-1M800-B-140.5☐☐☐☐☐☐☐
W25SP-0V-1M800-B-150.5☐☐☐☐☐☐☐
W26SP-0V-1M800-B-160.5☐☐☐☐☐☐☐
W27OEM-X60003-7SP-5V1-10.5☐☐☐☐☐☐☐
W28OEM-X60004-14SP-5V1-10.5☐☐☐☐☐☐☐
W29OEM-X60004-9SP-5V1-10.5☐☐☐☐☐☐☐
W30SP-5V1-1M800-A-20.5☐☐☐☐☐☐☐
W31OEM-X60003-8M800-B-10.5☐☐☐☐☐☐☐
W32OEM-X60003-2M800-B-20.5☐☐☐☐☐☐☐
W33OEM-X60005-3M800-A-30.5☐☐☐☐☐☐☐
W34OEM-X60005-2M800-A-40.5☐☐☐☐☐☐☐
W35OEM-X60005-1M800-A-50.5☐☐☐☐☐☐☐
W36OEM-X60005-9M800-A-60.5☐☐☐☐☐☐☐
W37OEM-X60005-8M800-A-70.5☐☐☐☐☐☐☐
W38OEM-X60005-7M800-A-80.5☐☐☐☐☐☐☐
W39OEM-X60003-33M800-A-190.5☐☐☐☐☐☐☐
W40OEM-X60003-34M800-A-200.5☐☐☐☐☐☐☐
W41OEM-X60003-35M800-A-210.5☐☐☐☐☐☐☐
W42OEM-X60003-36M800-A-220.5☐☐☐☐☐☐☐
W43OEM-X60003-37M800-A-270.5☐☐☐☐☐☐☐
W44OEM-X60003-38M800-A-280.5☐☐☐☐☐☐☐
W45OEM-X60001-1M800-A-180.5☐☐☐☐☐☐☐
W46OEM-X60002-23M800-A-10.5☐☐☐☐☐☐☐
W47OEM-X60004-10M800-A-230.5☐☐☐☐☐☐☐
W48OEM-X60002-1M800-A-240.5☐☐☐☐☐☐☐
W49OEM-X60002-13M800-A-310.5☐☐☐☐☐☐☐
W50OEM-X60002-19M800-A-320.5☐☐☐☐☐☐☐
W51OEM-X60002-7M800-A-330.5☐☐☐☐☐☐☐
W52OEM-X60003-40M800-A-340.5☐☐☐☐☐☐☐
W53OEM-X60003-41M800-A-290.5☐☐☐☐☐☐☐
W54OEM-X60003-42M800-A-300.5☐☐☐☐☐☐☐
W55OEM-X60003-1M800-A-140.5☐☐☐☐☐☐☐
W56OEM-X60003-19M800-A-150.5☐☐☐☐☐☐☐
W57OEM-X60004-8M800-A-160.5☐☐☐☐☐☐☐
W58OEM-X60003-10M800-A-170.5☐☐☐☐☐☐☐
W59OEM-X60004-13M800-A-250.5☐☐☐☐☐☐☐
W60OEM-X60002-14M800-B-200.5☐☐☐☐☐☐☐
W61OEM-X60002-15M800-B-210.5☐☐☐☐☐☐☐
W62OEM-X60002-16M800-B-220.5☐☐☐☐☐☐☐
W63OEM-X60003-24M800-B-30.5☐☐☐☐☐☐☐
W64OEM-X60003-22M800-B-40.5☐☐☐☐☐☐☐
W65OEM-X60003-27M800-B-50.5☐☐☐☐☐☐☐

Bench test (before first power-up)

Battery disconnected, ECU and every sensor unplugged. Meter on resistance. Each pair below must read open (OL): a reading means a pinched wire, a stray strand or a mis-pinned cavity. Then check continuity of every wire (last column of the build checklist).

#Probe AProbe BExpectWhyReading
1M800-A-26M800-B-14open (OL)+12 V supply must not touch sensor ground
2M800-A-10M800-A-2open (OL)power ground must not touch 5 V sensor reference
3M800-A-10M800-A-26open (OL)power ground must not touch +12 V supply
4M800-A-26M800-A-2open (OL)+12 V supply must not touch 5 V sensor reference
5M800-B-14M800-A-2open (OL)sensor ground must not touch 5 V sensor reference

If any reading doesn't match, stop and get help before powering up.

Revisions

RevLabelByDate
No revisions yet.

Schematic

M800-AM800-BOEM-X60001OEM-X60002OEM-X60003OEM-X60004OEM-X60005SP-0VSP-14VSP-5V1SP-GND

Connectors

M800-A

Mating face
M800-A-1 · AUX21M800-A-2 · 5V Engine Sensor Supply2M800-A-3 · IGN13M800-A-4 · IGN24M800-A-5 · IGN35M800-A-6 · IGN46M800-A-7 · IGN57M800-A-8 · IGN68M800-A-9 · 5V Auxiliary Sensor Supply9M800-A-10 · GND Battery Negative10M800-A-11 · GND Battery Negative11M800-A-12 · 8V Engine Sensor Supply12M800-A-13 · 8V Auxiliary Sensor and CAN Supply13M800-A-14 · AV114M800-A-15 · Analog Voltage Input 215M800-A-16 · Analog Voltage Input 316M800-A-17 · Analog Voltage Input 417M800-A-18 · AUX118M800-A-19 · INJ119M800-A-20 · INJ220M800-A-21 · INJ321M800-A-22 · INJ422M800-A-23 · AUX323M800-A-24 · AUX424M800-A-25 · Analog Voltage Input 525M800-A-26 · VBAT Battery Positive26M800-A-27 · INJ527M800-A-28 · INJ628M800-A-29 · INJ729M800-A-30 · INJ830M800-A-31 · AUX531M800-A-32 · AUX632M800-A-33 · AUX733M800-A-34 · AUX834
Wire side
M800-A-1 · AUX21M800-A-2 · 5V Engine Sensor Supply2M800-A-3 · IGN13M800-A-4 · IGN24M800-A-5 · IGN35M800-A-6 · IGN46M800-A-7 · IGN57M800-A-8 · IGN68M800-A-9 · 5V Auxiliary Sensor Supply9M800-A-10 · GND Battery Negative10M800-A-11 · GND Battery Negative11M800-A-12 · 8V Engine Sensor Supply12M800-A-13 · 8V Auxiliary Sensor and CAN Supply13M800-A-14 · AV114M800-A-15 · Analog Voltage Input 215M800-A-16 · Analog Voltage Input 316M800-A-17 · Analog Voltage Input 417M800-A-18 · AUX118M800-A-19 · INJ119M800-A-20 · INJ220M800-A-21 · INJ321M800-A-22 · INJ422M800-A-23 · AUX323M800-A-24 · AUX424M800-A-25 · Analog Voltage Input 525M800-A-26 · VBAT Battery Positive26M800-A-27 · INJ527M800-A-28 · INJ628M800-A-29 · INJ729M800-A-30 · INJ830M800-A-31 · AUX531M800-A-32 · AUX632M800-A-33 · AUX733M800-A-34 · AUX834
CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1AUX2—W46—0.5OEM-X60002-23———
25V Engine Sensor Supply—W30—0.5SP-5V1-1———
3IGN1—W33—0.5OEM-X60005-3———
4IGN2—W34—0.5OEM-X60005-2———
5IGN3—W35—0.5OEM-X60005-1———
6IGN4—W36—0.5OEM-X60005-9———
7IGN5—W37—0.5OEM-X60005-8———
8IGN6—W38—0.5OEM-X60005-7———
95V Auxiliary Sensor Supply————————
10GND Battery Negative—W8—0.85SP-GND-1———
11GND Battery Negative—W9—0.85SP-GND-1———
128V Engine Sensor Supply————————
138V Auxiliary Sensor and CAN Supply————————
14AV1—W55—0.5OEM-X60003-1———
15Analog Voltage Input 2—W56—0.5OEM-X60003-19———
16Analog Voltage Input 3—W57—0.5OEM-X60004-8———
17Analog Voltage Input 4—W58—0.5OEM-X60003-10———
18AUX1—W45—0.5OEM-X60001-1———
19INJ1—W39—0.5OEM-X60003-33———
20INJ2—W40—0.5OEM-X60003-34———
21INJ3—W41—0.5OEM-X60003-35———
22INJ4—W42—0.5OEM-X60003-36———
23AUX3—W47—0.5OEM-X60004-10———
24AUX4—W48—0.5OEM-X60002-1———
25Analog Voltage Input 5—W59—0.5OEM-X60004-13———
26VBAT Battery Positive—W3—0.85SP-14V-1———
27INJ5—W43—0.5OEM-X60003-37———
28INJ6—W44—0.5OEM-X60003-38———
29INJ7—W53—0.5OEM-X60003-41———
30INJ8—W54—0.5OEM-X60003-42———
31AUX5—W49—0.5OEM-X60002-13———
32AUX6—W50—0.5OEM-X60002-19———
33AUX7—W51—0.5OEM-X60002-7———
34AUX8—W52—0.5OEM-X60003-40———

M800-B

Mating face
M800-B-1 · Crank Reference Timing Input1M800-B-2 · Cam Sync Timing Input2M800-B-3 · Analog Temperature Input 13M800-B-4 · Analog Temperature Input 24M800-B-5 · Analog Temperature Input 35M800-B-6 · Analog Temperature Input 46M800-B-7 · Analog Temperature Input 57M800-B-8 · Digital Input 18M800-B-9 · Digital Input 29M800-B-10 · Digital Input 310M800-B-11 · Digital Input 411M800-B-12 · Lambda2 Sense Voltage12M800-B-13 · Lambda2 Pump Current13M800-B-14 · 0V Comms Reference14M800-B-15 · 0V Auxiliary Sensor Supply15M800-B-16 · 0V Engine Sensor Supply16M800-B-17 · RS232 Transmit Data17M800-B-18 · RS232 Receive Data18M800-B-19 · Analog Temperature Input 619M800-B-20 · Analog Voltage Input 620M800-B-21 · AV721M800-B-22 · AV822M800-B-23 · CAN Bus High23M800-B-24 · CAN Bus Low24M800-B-25 · Lambda1 Sense Voltage25M800-B-26 · Lambda1 Pump Current26
Wire side
M800-B-1 · Crank Reference Timing Input1M800-B-2 · Cam Sync Timing Input2M800-B-3 · Analog Temperature Input 13M800-B-4 · Analog Temperature Input 24M800-B-5 · Analog Temperature Input 35M800-B-6 · Analog Temperature Input 46M800-B-7 · Analog Temperature Input 57M800-B-8 · Digital Input 18M800-B-9 · Digital Input 29M800-B-10 · Digital Input 310M800-B-11 · Digital Input 411M800-B-12 · Lambda2 Sense Voltage12M800-B-13 · Lambda2 Pump Current13M800-B-14 · 0V Comms Reference14M800-B-15 · 0V Auxiliary Sensor Supply15M800-B-16 · 0V Engine Sensor Supply16M800-B-17 · RS232 Transmit Data17M800-B-18 · RS232 Receive Data18M800-B-19 · Analog Temperature Input 619M800-B-20 · Analog Voltage Input 620M800-B-21 · AV721M800-B-22 · AV822M800-B-23 · CAN Bus High23M800-B-24 · CAN Bus Low24M800-B-25 · Lambda1 Sense Voltage25M800-B-26 · Lambda1 Pump Current26
CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1Crank Reference Timing Input—W31—0.5OEM-X60003-8———
2Cam Sync Timing Input—W32—0.5OEM-X60003-2———
3Analog Temperature Input 1—W63—0.5OEM-X60003-24———
4Analog Temperature Input 2—W64—0.5OEM-X60003-22———
5Analog Temperature Input 3—W65—0.5OEM-X60003-27———
6Analog Temperature Input 4————————
7Analog Temperature Input 5————————
8Digital Input 1————————
9Digital Input 2————————
10Digital Input 3————————
11Digital Input 4————————
12Lambda2 Sense Voltage————————
13Lambda2 Pump Current————————
140V Comms Reference—W24—0.5SP-0V-1———
150V Auxiliary Sensor Supply—W25—0.5SP-0V-1———
160V Engine Sensor Supply—W26—0.5SP-0V-1———
17RS232 Transmit Data————————
18RS232 Receive Data————————
19Analog Temperature Input 6————————
20Analog Voltage Input 6—W60—0.5OEM-X60002-14———
21AV7—W61—0.5OEM-X60002-15———
22AV8—W62—0.5OEM-X60002-16———
23CAN Bus High————————
24CAN Bus Low————————
25Lambda1 Sense Voltage————————
26Lambda1 Pump Current————————

OEM-X60001

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1Injector/unloader relay control (terminal 15)—W45—0.5M800-A-18———
4Power ground—W4—0.85SP-GND-1———
5Power ground—W5—0.85SP-GND-1———
6Power ground—W6—0.85SP-GND-1———
7Battery constant (terminal 30)————————
8ECU main power (terminal 87 via main relay)—W1—0.85SP-14V-1———
9Voltage supply (injector / fuse carrier)—W2—0.85SP-14V-1———

OEM-X60002

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1O2 sensor heater, bank 1 pre-cat—W48—0.5M800-A-24———
13O2 sensor heater, bank 2 pre-cat—W49—0.5M800-A-31———
14O2 sensor signal, bank 1 pre-cat—W60—0.5M800-B-20———
15O2 sensor signal, bank 2 pre-cat—W61—0.5M800-B-21———
16O2 sensor signal, bank 1 post-cat—W62—0.5M800-B-22———
18O2 sensor signal, bank 2 post-cat————————
19O2 sensor heater, bank 2 post-cat—W50—0.5M800-A-32———
20O2 sensor ground, bank 1 pre-cat—W10—0.5SP-0V-1———
21O2 sensor ground, bank 2 pre-cat—W11—0.5SP-0V-1———
22O2 sensor ground, bank 1 post-cat—W12—0.5SP-0V-1———
23Main relay control—W46—0.5M800-A-1———
24O2 sensor ground, bank 2 post-cat—W13—0.5SP-0V-1———
7O2 sensor heater, bank 1 post-cat—W51—0.5M800-A-33———

OEM-X60003

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1Mass air flow (MAF) signal—W55—0.5M800-A-14———
10Throttle position sensor 2—W58—0.5M800-A-17———
15Exhaust camshaft ground—W14—0.5SP-0V-1———
17MAF ground—W15—0.5SP-0V-1———
18Intake camshaft ground—W16—0.5SP-0V-1———
19Throttle position sensor 1—W56—0.5M800-A-15———
2Exhaust camshaft position—W32—0.5M800-B-2———
20Throttle ground—W17—0.5SP-0V-1———
21Crankshaft ground—W18—0.5SP-0V-1———
22Intake air temperature (IAT)—W64—0.5M800-B-4———
23IAT ground—W19—0.5SP-0V-1———
24Engine coolant temperature (ECT)—W63—0.5M800-B-3———
25ECT ground—W20—0.5SP-0V-1———
27Engine oil temperature—W65—0.5M800-B-5———
28Oil temperature ground—W21—0.5SP-0V-1———
29Knock sensor, cylinders 1-3 (A)————————
30Knock sensor, cylinders 1-3 (B)————————
31Knock sensor, cylinders 4-6 (A)————————
32Knock sensor, cylinders 4-6 (B)————————
33Injector cylinder 1—W39—0.5M800-A-19———
34Injector cylinder 2—W40—0.5M800-A-20———
35Injector cylinder 3—W41—0.5M800-A-21———
36Injector cylinder 4—W42—0.5M800-A-22———
37Injector cylinder 5—W43—0.5M800-A-27———
38Injector cylinder 6—W44—0.5M800-A-28———
40VANOS intake solenoid—W52—0.5M800-A-34———
41VANOS exhaust solenoid—W53—0.5M800-A-29———
42Evap purge valve—W54—0.5M800-A-30———
43Throttle motor drive 1 (H-bridge)————————
44Throttle motor drive 2 (H-bridge)————————
45Map-controlled thermostat————————
46Idle speed control, close————————
47Idle speed control, open————————
48Knock sensor shield————————
49DISA intake flap————————
5Intake camshaft position————————
7Throttle body +5V supply—W27—0.5SP-5V1-1———
8Crankshaft position—W31—0.5M800-B-1———

OEM-X60004

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
10Fuel pump relay control—W47—0.5M800-A-23———
12Pedal ground 2—W22—0.5SP-0V-1———
13Pedal position signal 2—W59—0.5M800-A-25———
14Pedal +5V supply 2—W28—0.5SP-5V1-1———
7Pedal ground 1—W23—0.5SP-0V-1———
8Pedal position signal 1—W57—0.5M800-A-16———
9Pedal +5V supply 1—W29—0.5SP-5V1-1———

OEM-X60005

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1Ignition coil 3—W35—0.5M800-A-5———
2Ignition coil 2—W34—0.5M800-A-4———
3Ignition coil 1—W33—0.5M800-A-3———
5Ignition ground—W7—0.85SP-GND-1———
7Ignition coil 6—W38—0.5M800-A-8———
8Ignition coil 5—W37—0.5M800-A-7———
9Ignition coil 4—W36—0.5M800-A-6———

SP-0V

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1——W10—0.5OEM-X60002-20———
1——W11—0.5OEM-X60002-21———
1——W12—0.5OEM-X60002-22———
1——W13—0.5OEM-X60002-24———
1——W14—0.5OEM-X60003-15———
1——W15—0.5OEM-X60003-17———
1——W16—0.5OEM-X60003-18———
1——W17—0.5OEM-X60003-20———
1——W18—0.5OEM-X60003-21———
1——W19—0.5OEM-X60003-23———
1——W20—0.5OEM-X60003-25———
1——W21—0.5OEM-X60003-28———
1——W22—0.5OEM-X60004-12———
1——W23—0.5OEM-X60004-7———
1——W24—0.5M800-B-14———
1——W25—0.5M800-B-15———
1——W26—0.5M800-B-16———

SP-14V

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1——W1—0.85OEM-X60001-8———
1——W2—0.85OEM-X60001-9———
1——W3—0.85M800-A-26———

SP-5V1

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1——W27—0.5OEM-X60003-7———
1——W28—0.5OEM-X60004-14———
1——W29—0.5OEM-X60004-9———
1——W30—0.5M800-A-2———

SP-GND

CavityFunctionSignalWireColourGauge (mm²)DestinationTerminalSealPlug
1——W4—0.85OEM-X60001-4———
1——W5—0.85OEM-X60001-5———
1——W6—0.85OEM-X60001-6———
1——W7—0.85OEM-X60005-5———
1——W8—0.85M800-A-10———
1——W9—0.85M800-A-11———

Pin map

OEM pointOEM functionOEM familyTarget pointTarget functionTarget familyWire colourEvidence
OEM-X60001-1Injector/unloader relay control (terminal 15)low_side_outM800-A-18AUX1switch_outcorroborated
OEM-X60001-4Power groundgroundM800-A-10 + M800-A-11GND Battery Negative + GND Battery Negativegroundcorroborated
OEM-X60001-5Power groundgroundM800-A-10 + M800-A-11GND Battery Negative + GND Battery Negativegroundcorroborated
OEM-X60001-6Power groundgroundM800-A-10 + M800-A-11GND Battery Negative + GND Battery Negativegroundcorroborated
OEM-X60001-7Battery constant (terminal 30)power_in———corroborated
OEM-X60001-8ECU main power (terminal 87 via main relay)power_inM800-A-26VBAT Battery Positivepower_incorroborated
OEM-X60001-9Voltage supply (injector / fuse carrier)power_inM800-A-26VBAT Battery Positivepower_incorroborated
OEM-X60002-1O2 sensor heater, bank 1 pre-catlow_side_outM800-A-24AUX4switch_outcorroborated
OEM-X60002-13O2 sensor heater, bank 2 pre-catlow_side_outM800-A-31AUX5switch_outcorroborated
OEM-X60002-14O2 sensor signal, bank 1 pre-catlambda_nb_inM800-B-20Analog Voltage Input 6analog_incorroborated
OEM-X60002-15O2 sensor signal, bank 2 pre-catlambda_nb_inM800-B-21AV7analog_incorroborated
OEM-X60002-16O2 sensor signal, bank 1 post-catlambda_nb_inM800-B-22AV8analog_incorroborated
OEM-X60002-18O2 sensor signal, bank 2 post-catlambda_nb_in———corroborated
OEM-X60002-19O2 sensor heater, bank 2 post-catlow_side_outM800-A-32AUX6switch_outcorroborated
OEM-X60002-20O2 sensor ground, bank 1 pre-catsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60002-21O2 sensor ground, bank 2 pre-catsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60002-22O2 sensor ground, bank 1 post-catsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60002-23Main relay controllow_side_outM800-A-1AUX2switch_outcorroborated
OEM-X60002-24O2 sensor ground, bank 2 post-catsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60002-7O2 sensor heater, bank 1 post-catlow_side_outM800-A-33AUX7switch_outcorroborated
OEM-X60003-1Mass air flow (MAF) signalanalog_inM800-A-14AV1analog_incorroborated
OEM-X60003-10Throttle position sensor 2analog_inM800-A-17Analog Voltage Input 4analog_incorroborated
OEM-X60003-15Exhaust camshaft groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-17MAF groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-18Intake camshaft groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-19Throttle position sensor 1analog_inM800-A-15Analog Voltage Input 2analog_incorroborated
OEM-X60003-2Exhaust camshaft positiontrigger_inM800-B-2Cam Sync Timing Inputtrigger_incorroborated
OEM-X60003-20Throttle groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-21Crankshaft groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-22Intake air temperature (IAT)temp_inM800-B-4Analog Temperature Input 2temp_incorroborated
OEM-X60003-23IAT groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-24Engine coolant temperature (ECT)temp_inM800-B-3Analog Temperature Input 1temp_incorroborated
OEM-X60003-25ECT groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-27Engine oil temperaturetemp_inM800-B-5Analog Temperature Input 3temp_incorroborated
OEM-X60003-28Oil temperature groundsensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60003-29Knock sensor, cylinders 1-3 (A)knock_in———corroborated
OEM-X60003-30Knock sensor, cylinders 1-3 (B)knock_in———corroborated
OEM-X60003-31Knock sensor, cylinders 4-6 (A)knock_in———corroborated
OEM-X60003-32Knock sensor, cylinders 4-6 (B)knock_in———corroborated
OEM-X60003-33Injector cylinder 1injector_outM800-A-19INJ1injector_outcorroborated
OEM-X60003-34Injector cylinder 2injector_outM800-A-20INJ2injector_outcorroborated
OEM-X60003-35Injector cylinder 3injector_outM800-A-21INJ3injector_outcorroborated
OEM-X60003-36Injector cylinder 4injector_outM800-A-22INJ4injector_outcorroborated
OEM-X60003-37Injector cylinder 5injector_outM800-A-27INJ5injector_outcorroborated
OEM-X60003-38Injector cylinder 6injector_outM800-A-28INJ6injector_outcorroborated
OEM-X60003-40VANOS intake solenoidlow_side_outM800-A-34AUX8switch_outcorroborated
OEM-X60003-41VANOS exhaust solenoidlow_side_outM800-A-29INJ7injector_outcorroborated
OEM-X60003-42Evap purge valvelow_side_outM800-A-30INJ8injector_outcorroborated
OEM-X60003-43Throttle motor drive 1 (H-bridge)hbridge_out———corroborated
OEM-X60003-44Throttle motor drive 2 (H-bridge)hbridge_out———corroborated
OEM-X60003-45Map-controlled thermostatlow_side_out———corroborated
OEM-X60003-46Idle speed control, closehbridge_out———corroborated
OEM-X60003-47Idle speed control, openhbridge_out———corroborated
OEM-X60003-48Knock sensor shieldshield———corroborated
OEM-X60003-49DISA intake flaplow_side_out———corroborated
OEM-X60003-5Intake camshaft positiontrigger_in———corroborated
OEM-X60003-7Throttle body +5V supplyvrefM800-A-25V Engine Sensor Supplyvrefcorroborated
OEM-X60003-8Crankshaft positiontrigger_inM800-B-1Crank Reference Timing Inputtrigger_incorroborated
OEM-X60004-10Fuel pump relay controllow_side_outM800-A-23AUX3switch_outcorroborated
OEM-X60004-12Pedal ground 2sensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60004-13Pedal position signal 2analog_inM800-A-25Analog Voltage Input 5analog_incorroborated
OEM-X60004-14Pedal +5V supply 2vrefM800-A-25V Engine Sensor Supplyvrefcorroborated
OEM-X60004-7Pedal ground 1sensor_groundM800-B-14 + M800-B-15 + M800-B-160V Comms Reference + 0V Auxiliary Sensor Supply + 0V Engine Sensor Supplysensor_groundcorroborated
OEM-X60004-8Pedal position signal 1analog_inM800-A-16Analog Voltage Input 3analog_incorroborated
OEM-X60004-9Pedal +5V supply 1vrefM800-A-25V Engine Sensor Supplyvrefcorroborated
OEM-X60005-1Ignition coil 3ignition_outM800-A-5IGN3ignition_outcorroborated
OEM-X60005-2Ignition coil 2ignition_outM800-A-4IGN2ignition_outcorroborated
OEM-X60005-3Ignition coil 1ignition_outM800-A-3IGN1ignition_outcorroborated
OEM-X60005-5Ignition groundgroundM800-A-10 + M800-A-11GND Battery Negative + GND Battery Negativegroundcorroborated
OEM-X60005-7Ignition coil 6ignition_outM800-A-8IGN6ignition_outcorroborated
OEM-X60005-8Ignition coil 5ignition_outM800-A-7IGN5ignition_outcorroborated
OEM-X60005-9Ignition coil 4ignition_outM800-A-6IGN4ignition_outcorroborated

Cut list

WireFromToGauge (mm²)ColourLengthSignalIdent
W1OEM-X60001-8SP-14V-10.85no routeECU main power (terminal 87 via main relay)—
W2OEM-X60001-9SP-14V-10.85no routeVoltage supply (injector / fuse carrier)—
W3SP-14V-1M800-A-260.85no routeVBAT Battery Positive—
W4OEM-X60001-4SP-GND-10.85no routePower ground—
W5OEM-X60001-5SP-GND-10.85no routePower ground—
W6OEM-X60001-6SP-GND-10.85no routePower ground—
W7OEM-X60005-5SP-GND-10.85no routeIgnition ground—
W8SP-GND-1M800-A-100.85no routeGND Battery Negative—
W9SP-GND-1M800-A-110.85no routeGND Battery Negative—
W10OEM-X60002-20SP-0V-10.5no routeO2 sensor ground, bank 1 pre-cat—
W11OEM-X60002-21SP-0V-10.5no routeO2 sensor ground, bank 2 pre-cat—
W12OEM-X60002-22SP-0V-10.5no routeO2 sensor ground, bank 1 post-cat—
W13OEM-X60002-24SP-0V-10.5no routeO2 sensor ground, bank 2 post-cat—
W14OEM-X60003-15SP-0V-10.5no routeExhaust camshaft ground—
W15OEM-X60003-17SP-0V-10.5no routeMAF ground—
W16OEM-X60003-18SP-0V-10.5no routeIntake camshaft ground—
W17OEM-X60003-20SP-0V-10.5no routeThrottle ground—
W18OEM-X60003-21SP-0V-10.5no routeCrankshaft ground—
W19OEM-X60003-23SP-0V-10.5no routeIAT ground—
W20OEM-X60003-25SP-0V-10.5no routeECT ground—
W21OEM-X60003-28SP-0V-10.5no routeOil temperature ground—
W22OEM-X60004-12SP-0V-10.5no routePedal ground 2—
W23OEM-X60004-7SP-0V-10.5no routePedal ground 1—
W24SP-0V-1M800-B-140.5no route0V Comms Reference—
W25SP-0V-1M800-B-150.5no route0V Auxiliary Sensor Supply—
W26SP-0V-1M800-B-160.5no route0V Engine Sensor Supply—
W27OEM-X60003-7SP-5V1-10.5no routeThrottle body +5V supply—
W28OEM-X60004-14SP-5V1-10.5no routePedal +5V supply 2—
W29OEM-X60004-9SP-5V1-10.5no routePedal +5V supply 1—
W30SP-5V1-1M800-A-20.5no route5V Engine Sensor Supply—
W31OEM-X60003-8M800-B-10.5no routeCrankshaft position—
W32OEM-X60003-2M800-B-20.5no routeExhaust camshaft position—
W33OEM-X60005-3M800-A-30.5no routeIgnition coil 1—
W34OEM-X60005-2M800-A-40.5no routeIgnition coil 2—
W35OEM-X60005-1M800-A-50.5no routeIgnition coil 3—
W36OEM-X60005-9M800-A-60.5no routeIgnition coil 4—
W37OEM-X60005-8M800-A-70.5no routeIgnition coil 5—
W38OEM-X60005-7M800-A-80.5no routeIgnition coil 6—
W39OEM-X60003-33M800-A-190.5no routeInjector cylinder 1—
W40OEM-X60003-34M800-A-200.5no routeInjector cylinder 2—
W41OEM-X60003-35M800-A-210.5no routeInjector cylinder 3—
W42OEM-X60003-36M800-A-220.5no routeInjector cylinder 4—
W43OEM-X60003-37M800-A-270.5no routeInjector cylinder 5—
W44OEM-X60003-38M800-A-280.5no routeInjector cylinder 6—
W45OEM-X60001-1M800-A-180.5no routeInjector/unloader relay control (terminal 15)—
W46OEM-X60002-23M800-A-10.5no routeMain relay control—
W47OEM-X60004-10M800-A-230.5no routeFuel pump relay control—
W48OEM-X60002-1M800-A-240.5no routeO2 sensor heater, bank 1 pre-cat—
W49OEM-X60002-13M800-A-310.5no routeO2 sensor heater, bank 2 pre-cat—
W50OEM-X60002-19M800-A-320.5no routeO2 sensor heater, bank 2 post-cat—
W51OEM-X60002-7M800-A-330.5no routeO2 sensor heater, bank 1 post-cat—
W52OEM-X60003-40M800-A-340.5no routeVANOS intake solenoid—
W53OEM-X60003-41M800-A-290.5no routeVANOS exhaust solenoid—
W54OEM-X60003-42M800-A-300.5no routeEvap purge valve—
W55OEM-X60003-1M800-A-140.5no routeMass air flow (MAF) signal—
W56OEM-X60003-19M800-A-150.5no routeThrottle position sensor 1—
W57OEM-X60004-8M800-A-160.5no routePedal position signal 1—
W58OEM-X60003-10M800-A-170.5no routeThrottle position sensor 2—
W59OEM-X60004-13M800-A-250.5no routePedal position signal 2—
W60OEM-X60002-14M800-B-200.5no routeO2 sensor signal, bank 1 pre-cat—
W61OEM-X60002-15M800-B-210.5no routeO2 sensor signal, bank 2 pre-cat—
W62OEM-X60002-16M800-B-220.5no routeO2 sensor signal, bank 1 post-cat—
W63OEM-X60003-24M800-B-30.5no routeEngine coolant temperature (ECT)—
W64OEM-X60003-22M800-B-40.5no routeIntake air temperature (IAT)—
W65OEM-X60003-27M800-B-50.5no routeEngine oil temperature—

Bill of materials

CategoryPart numberManufacturerDescriptionQtyUnit
connector3-1437290-7TESuperseal 1.0 26-way plug1.000ea
connector4-1437290-0TESuperseal 1.0 34-way plug, Key 11.000ea
connectorBMW-E46-MS43-CONNBMWE46 DME (MS43) harness connector1.000ea
terminal3-1447221-4TESuperseal 1.0 socket terminal, 20 AWG (0.5 sq mm)42.000ea

ECU setup sheet

RoleEngine refEngine signalSensorECU pointECU functionECU classSetup flag
No configured channels.

Findings

Open (14)

SeverityCodeSubjectMessage
errorREQUIRED_UNMAPPEDOEM-X60003-43Required OEM function "Throttle motor drive 1 (H-bridge)" (hbridge_out) is not connected to the new ECU.
errorREQUIRED_UNMAPPEDOEM-X60003-44Required OEM function "Throttle motor drive 2 (H-bridge)" (hbridge_out) is not connected to the new ECU.
errorREQUIRED_UNMAPPEDOEM-X60003-5Required OEM function "Intake camshaft position" (trigger_in) is not connected to the new ECU.
infoNET_FAMILYOEM-X60001-1 ↔ M800-A-18OEM-X60001-1 "Injector/unloader relay control (terminal 15)" [low_side_out] is wired to M800-A-18 "AUX1" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60002-1 ↔ M800-A-24OEM-X60002-1 "O2 sensor heater, bank 1 pre-cat" [low_side_out] is wired to M800-A-24 "AUX4" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60002-13 ↔ M800-A-31OEM-X60002-13 "O2 sensor heater, bank 2 pre-cat" [low_side_out] is wired to M800-A-31 "AUX5" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60002-19 ↔ M800-A-32OEM-X60002-19 "O2 sensor heater, bank 2 post-cat" [low_side_out] is wired to M800-A-32 "AUX6" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60002-23 ↔ M800-A-1OEM-X60002-23 "Main relay control" [low_side_out] is wired to M800-A-1 "AUX2" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60002-7 ↔ M800-A-33OEM-X60002-7 "O2 sensor heater, bank 1 post-cat" [low_side_out] is wired to M800-A-33 "AUX7" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60003-40 ↔ M800-A-34OEM-X60003-40 "VANOS intake solenoid" [low_side_out] is wired to M800-A-34 "AUX8" [switch_out]. Configure this output as low side.
infoNET_FAMILYOEM-X60003-41 ↔ M800-A-29OEM-X60003-41 "VANOS exhaust solenoid" [low_side_out] is wired to M800-A-29 "INJ7" [injector_out]. Injector drivers can usually run general low-side loads; check current and PWM frequency.
infoNET_FAMILYOEM-X60003-42 ↔ M800-A-30OEM-X60003-42 "Evap purge valve" [low_side_out] is wired to M800-A-30 "INJ8" [injector_out]. Injector drivers can usually run general low-side loads; check current and PWM frequency.
infoNET_FAMILYOEM-X60004-10 ↔ M800-A-23OEM-X60004-10 "Fuel pump relay control" [low_side_out] is wired to M800-A-23 "AUX3" [switch_out]. Configure this output as low side.
infoUNMAPPEDOEM10 optional OEM pins are not mapped: OEM-X60002-18 O2 sensor signal, bank 2 post-cat; OEM-X60003-29 Knock sensor, cylinders 1-3 (A); OEM-X60003-30 Knock sensor, cylinders 1-3 (B); OEM-X60003-31 Knock sensor, cylinders 4-6 (A); OEM-X60003-32 Knock sensor, cylinders 4-6 (B); OEM-X60003-45 Map-controlled thermostat; OEM-X60003-46 Idle speed control, close; OEM-X60003-47 Idle speed control, open; OEM-X60003-48 Knock sensor shield; OEM-X60003-49 DISA intake flap

Accepted (1)

CodeSubjectReasonBy
REQUIRED_UNMAPPEDOEM-X60001-7Battery-constant (memory) feed of the stock ECU: the new ECU has no such input, so it is not needed.mapping-proposal

Notes

Fit check: needs add-on. Resolve these before building: - Drive-by-wire only with an add-on: MoTeC DBW4 expander (obsolete) - Needs CAN (E46 K-bus/CAN); not documented for this ECU - No knock input; the stock knock sensor would be unused - This car has EWS 3.3 (rolling code) immobilizer; needs a delete/bypass - Trigger pattern for BMW M54 not checked yet Auto-mapped by auto_map() from the library pin data on 2026-10-11. Review every wire against both manuals before building. Open items: - OEM-X60003 5: Intake camshaft position: no free cam_hall/cam_vr/frequency_in input on MoTeC M800 - OEM-X60003 43: Throttle motor drive 1 (H-bridge): no free hbridge on MoTeC M800 - OEM-X60003 44: Throttle motor drive 2 (H-bridge): no free hbridge on MoTeC M800 Not wired: - OEM-X60001 7: Battery constant (terminal 30): MoTeC M800 has no battery-constant input; not needed - OEM-X60003 29: Knock sensor, cylinders 1-3 (A): no free knock input on MoTeC M800 - OEM-X60003 30: Knock sensor, cylinders 1-3 (B): no free knock input on MoTeC M800 - OEM-X60003 31: Knock sensor, cylinders 4-6 (A): no free knock input on MoTeC M800 - OEM-X60003 32: Knock sensor, cylinders 4-6 (B): no free knock input on MoTeC M800 - OEM-X60003 48: Knock sensor shield: no shield pin on MoTeC M800 - OEM-X60003 46: Idle speed control, close: no free hbridge on MoTeC M800 - OEM-X60003 47: Idle speed control, open: no free hbridge on MoTeC M800 - OEM-X60003 45: Map-controlled thermostat: no free low_side/ls_hs/injector/hbridge on MoTeC M800 - OEM-X60003 49: DISA intake flap: no free low_side/ls_hs/injector/hbridge on MoTeC M800 - OEM-X60002 18: O2 sensor signal, bank 2 post-cat: no free o2_narrowband/analog_0_5 on MoTeC M800

Sources

ReliabilityKindTitleURLArchiveCapturedSHA-256
4vendor_docMoTeC M400/M600/M800/M880 Manual — Appendix L: Pin list by Functionhttps://starracecars.com/wp-content/uploads/resources/M400_M600_M800_M880_Manual_A5.pdfarchive2026-10-05b69bb8ffb674
4vendor_docMoTeC M800 OEM WRX56 Installationhttps://motec.com.auarchive2026-10-052ca4be92bb65
2community_copyms4x.net: Siemens MS43 Pinouthttps://www.ms4x.net/index.php?title=Siemens_MS43_Pinout———
2community_copyrusefi wiki: 2002 BMW 325 / 2004 BMW 330Ci E46 DME pinout (M54/MS43)https://github.com/rusefi/rusefi/wiki/2002-BMW-325-and-2004-BMW-330Ci-E46-DME-pinout———