BMW 3 Series E36 1990–2000 (M50/M52) → Speeduino Speeduino v0.4 (auto)
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.
| Status | draft · not yet verified: nobody has reported building and running this harness |
|---|---|
| Open errors | 6: read the Findings page before cutting any wire |
| Size of the job | 40 wires · 4 connectors · 1 part lines |
| Tools | Crimp and extraction tools for each terminal family (see Connectors) · wire strippers · multimeter · heat gun + heat-shrink |
| Order of work | 1. 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 Ω.
| Wire | From | To | Gauge | Colour | Cut | Label | Crimp A | Crimp B | Pin A | Pin B | Continuity |
|---|---|---|---|---|---|---|---|---|---|---|---|
| W1 | OEM-X-15 | SP-GND-1 | 0.85 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W2 | OEM-X-34 | SP-GND-1 | 0.85 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W3 | OEM-X-55 | SP-GND-1 | 0.85 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W4 | OEM-X-6 | SP-GND-1 | 0.85 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W5 | SP-GND-1 | SPEEDUINO-A-10 | 0.85 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W6 | SP-GND-1 | SPEEDUINO-A-9 | 0.85 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W7 | OEM-X-28 | SP-0V-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W8 | OEM-X-40 | SP-0V-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W9 | OEM-X-43 | SP-0V-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W10 | OEM-X-44 | SP-0V-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W11 | OEM-X-71 | SP-0V-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W12 | SP-0V-1 | SPEEDUINO-A-12 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W13 | SP-0V-1 | SPEEDUINO-A-23 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W14 | OEM-X-59 | SPEEDUINO-A-13 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W15 | OEM-X-16 | SPEEDUINO-A-25 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W16 | OEM-X-17 | SPEEDUINO-A-24 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W17 | OEM-X-50 | SPEEDUINO-A-7 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W18 | OEM-X-51 | SPEEDUINO-A-34 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W19 | OEM-X-52 | SPEEDUINO-A-33 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W20 | OEM-X-23 | SPEEDUINO-A-8 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W21 | OEM-X-33 | SPEEDUINO-A-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W22 | OEM-X-32 | SPEEDUINO-A-2 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W23 | OEM-X-31 | SPEEDUINO-A-3 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W24 | OEM-X-5 | SPEEDUINO-A-5 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W25 | OEM-X-3 | SPEEDUINO-A-1 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W26 | OEM-X-4 | SPEEDUINO-A-2 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W27 | OEM-X-1 | SPEEDUINO-A-16 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W28 | OEM-X-27 | SPEEDUINO-A-15 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W29 | OEM-X-38 | SPEEDUINO-A-36 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W30 | OEM-X-2 | SPEEDUINO-A-37 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W31 | OEM-X-29 | SPEEDUINO-A-35 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W32 | OEM-X-36 | SPEEDUINO-A-38 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W33 | OEM-X-7 | SPEEDUINO-A-31 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W34 | OEM-X-8 | SPEEDUINO-A-32 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W35 | OEM-X-47 | SPEEDUINO-A-17 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W36 | OEM-X-73 | SPEEDUINO-A-22 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W37 | OEM-X-13 | SPEEDUINO-A-21 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W38 | OEM-X-78 | SPEEDUINO-A-19 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W39 | OEM-X-77 | SPEEDUINO-A-20 | 0.5 | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | ☐ | |
| W40 | OEM-X-42 | SPEEDUINO-A-14 | 0.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 A | Probe B | Expect | Why | Reading |
|---|---|---|---|---|---|
| 1 | SPEEDUINO-A-10 | SPEEDUINO-A-13 | open (OL) | power ground must not touch 5 V sensor reference | |
| 2 | SPEEDUINO-A-12 | SPEEDUINO-A-13 | open (OL) | sensor ground must not touch 5 V sensor reference |
If any reading doesn't match, stop and get help before powering up.
Revisions
| Rev | Label | By | Date |
|---|---|---|---|
| No revisions yet. | |||
Schematic
Connectors
OEM-X
| Cavity | Function | Signal | Wire | Colour | Gauge (mm²) | Destination | Terminal | Seal | Plug |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Fuel pump relay control | — | W27 | — | 0.5 | SPEEDUINO-A-16 | — | — | — |
| 13 | O2 sensor signal | — | W37 | — | 0.5 | SPEEDUINO-A-21 | — | — | — |
| 15 | Ground | — | W1 | — | 0.85 | SP-GND-1 | — | — | — |
| 16 | Crank position sensor (+) | — | W15 | — | 0.5 | SPEEDUINO-A-25 | — | — | — |
| 17 | Camshaft position sensor (Hall) | — | W16 | — | 0.5 | SPEEDUINO-A-24 | — | — | — |
| 2 | Idle speed control valve (close winding) | — | W30 | — | 0.5 | SPEEDUINO-A-37 | — | — | — |
| 23 | Ignition coil cylinder 4 | — | W20 | — | 0.5 | SPEEDUINO-A-8 | — | — | — |
| 24 | Ignition coil cylinder 6 | — | — | — | — | — | — | — | — |
| 25 | Ignition coil cylinder 5 | — | — | — | — | — | — | — | — |
| 26 | Battery voltage (constant +12V) | — | — | — | — | — | — | — | — |
| 27 | Main relay control | — | W28 | — | 0.5 | SPEEDUINO-A-15 | — | — | — |
| 28 | Ground (electronics + sensor shielding) | — | W7 | — | 0.5 | SP-0V-1 | — | — | — |
| 29 | Idle speed control valve (open winding) | — | W31 | — | 0.5 | SPEEDUINO-A-35 | — | — | — |
| 3 | Injector cylinder 5 | — | W25 | — | 0.5 | SPEEDUINO-A-1 | — | — | — |
| 31 | Injector cylinder 3 | — | W23 | — | 0.5 | SPEEDUINO-A-3 | — | — | — |
| 32 | Injector cylinder 2 | — | W22 | — | 0.5 | SPEEDUINO-A-2 | — | — | — |
| 33 | Injector cylinder 1 | — | W21 | — | 0.5 | SPEEDUINO-A-1 | — | — | — |
| 34 | Ground (output stages) | — | W2 | — | 0.85 | SP-GND-1 | — | — | — |
| 36 | Evap purge solenoid | — | W32 | — | 0.5 | SPEEDUINO-A-38 | — | — | — |
| 38 | O2 sensor heater relay control | — | W29 | — | 0.5 | SPEEDUINO-A-36 | — | — | — |
| 4 | Injector cylinder 6 | — | W26 | — | 0.5 | SPEEDUINO-A-2 | — | — | — |
| 40 | O2 sensor signal ground | — | W8 | — | 0.5 | SP-0V-1 | — | — | — |
| 41 | Mass air flow (MAF) signal | — | — | — | — | — | — | — | — |
| 42 | Vehicle speed signal | — | W40 | — | 0.5 | SPEEDUINO-A-14 | — | — | — |
| 43 | Crank position sensor (-) | — | W9 | — | 0.5 | SP-0V-1 | — | — | — |
| 44 | Sensor ground (IAT/ECT/TPS) | — | W10 | — | 0.5 | SP-0V-1 | — | — | — |
| 45 | Shield ground | — | — | — | — | — | — | — | — |
| 47 | Tachometer output | — | W35 | — | 0.5 | SPEEDUINO-A-17 | — | — | — |
| 5 | Injector cylinder 4 | — | W24 | — | 0.5 | SPEEDUINO-A-5 | — | — | — |
| 50 | Ignition coil cylinder 1 | — | W17 | — | 0.5 | SPEEDUINO-A-7 | — | — | — |
| 51 | Ignition coil cylinder 2 | — | W18 | — | 0.5 | SPEEDUINO-A-34 | — | — | — |
| 52 | Ignition coil cylinder 3 | — | W19 | — | 0.5 | SPEEDUINO-A-33 | — | — | — |
| 54 | ECU power (+14V from main relay) | — | — | — | — | — | — | — | — |
| 55 | Ground (ignition) | — | W3 | — | 0.85 | SP-GND-1 | — | — | — |
| 56 | Ignition switch (terminal 15) | — | — | — | — | — | — | — | — |
| 59 | +5V sensor supply | — | W14 | — | 0.5 | SPEEDUINO-A-13 | — | — | — |
| 6 | Ground (injector output stages) | — | W4 | — | 0.85 | SP-GND-1 | — | — | — |
| 69 | Knock sensor cylinders 4-6 | — | — | — | — | — | — | — | — |
| 7 | VANOS intake camshaft solenoid | — | W33 | — | 0.5 | SPEEDUINO-A-31 | — | — | — |
| 70 | Knock sensor cylinders 1-3 | — | — | — | — | — | — | — | — |
| 71 | Knock sensor ground/shield | — | W11 | — | 0.5 | SP-0V-1 | — | — | — |
| 73 | Throttle position (TPS) | — | W36 | — | 0.5 | SPEEDUINO-A-22 | — | — | — |
| 77 | Intake air temperature (IAT) | — | W39 | — | 0.5 | SPEEDUINO-A-20 | — | — | — |
| 78 | Engine coolant temperature (ECT) | — | W38 | — | 0.5 | SPEEDUINO-A-19 | — | — | — |
| 8 | Check engine light (MIL) | — | W34 | — | 0.5 | SPEEDUINO-A-32 | — | — | — |
SP-0V
| Cavity | Function | Signal | Wire | Colour | Gauge (mm²) | Destination | Terminal | Seal | Plug |
|---|---|---|---|---|---|---|---|---|---|
| 1 | — | — | W7 | — | 0.5 | OEM-X-28 | — | — | — |
| 1 | — | — | W8 | — | 0.5 | OEM-X-40 | — | — | — |
| 1 | — | — | W9 | — | 0.5 | OEM-X-43 | — | — | — |
| 1 | — | — | W10 | — | 0.5 | OEM-X-44 | — | — | — |
| 1 | — | — | W11 | — | 0.5 | OEM-X-71 | — | — | — |
| 1 | — | — | W12 | — | 0.5 | SPEEDUINO-A-12 | — | — | — |
| 1 | — | — | W13 | — | 0.5 | SPEEDUINO-A-23 | — | — | — |
SP-GND
| Cavity | Function | Signal | Wire | Colour | Gauge (mm²) | Destination | Terminal | Seal | Plug |
|---|---|---|---|---|---|---|---|---|---|
| 1 | — | — | W1 | — | 0.85 | OEM-X-15 | — | — | — |
| 1 | — | — | W2 | — | 0.85 | OEM-X-34 | — | — | — |
| 1 | — | — | W3 | — | 0.85 | OEM-X-55 | — | — | — |
| 1 | — | — | W4 | — | 0.85 | OEM-X-6 | — | — | — |
| 1 | — | — | W5 | — | 0.85 | SPEEDUINO-A-10 | — | — | — |
| 1 | — | — | W6 | — | 0.85 | SPEEDUINO-A-9 | — | — | — |
SPEEDUINO-A
| Cavity | Function | Signal | Wire | Colour | Gauge (mm²) | Destination | Terminal | Seal | Plug |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Injector 1 | — | W21 | — | 0.5 | OEM-X-33 | — | — | — |
| 1 | Injector 1 | — | W25 | — | 0.5 | OEM-X-3 | — | — | — |
| 10 | Ground | — | W5 | — | 0.85 | SP-GND-1 | — | — | — |
| 11 | MAP sensor (0-5V) | — | — | — | — | — | — | — | — |
| 12 | Ground | — | W12 | — | 0.5 | SP-0V-1 | — | — | — |
| 13 | 5V | — | W14 | — | 0.5 | OEM-X-59 | — | — | — |
| 14 | Proto area 1 (flex fuel) | — | W40 | — | 0.5 | OEM-X-42 | — | — | — |
| 15 | Proto area 2 (fan) | — | W28 | — | 0.5 | OEM-X-27 | — | — | — |
| 16 | Proto area 3 (fuel pump) | — | W27 | — | 0.5 | OEM-X-1 | — | — | — |
| 17 | Proto area 4 (tachometer) | — | W35 | — | 0.5 | OEM-X-47 | — | — | — |
| 18 | Proto area 5 (clutch) | — | — | — | — | — | — | — | — |
| 19 | Coolant temp (CLT) | — | W38 | — | 0.5 | OEM-X-78 | — | — | — |
| 2 | Injector 2 | — | W22 | — | 0.5 | OEM-X-32 | — | — | — |
| 2 | Injector 2 | — | W26 | — | 0.5 | OEM-X-4 | — | — | — |
| 20 | Inlet air temp (IAT) | — | W39 | — | 0.5 | OEM-X-77 | — | — | — |
| 21 | O2 sensor | — | W37 | — | 0.5 | OEM-X-13 | — | — | — |
| 22 | TPS input | — | W36 | — | 0.5 | OEM-X-73 | — | — | — |
| 23 | Ground | — | W13 | — | 0.5 | SP-0V-1 | — | — | — |
| 24 | Cam input / VR2+ | — | W16 | — | 0.5 | OEM-X-17 | — | — | — |
| 25 | Crank input / VR1+ | — | W15 | — | 0.5 | OEM-X-16 | — | — | — |
| 26 | VR2- | — | — | — | — | — | — | — | — |
| 27 | VR1- | — | — | — | — | — | — | — | — |
| 28 | 5V | — | — | — | — | — | — | — | — |
| 29 | Idle stepper 2B | — | — | — | — | — | — | — | — |
| 3 | Injector 3 | — | W23 | — | 0.5 | OEM-X-31 | — | — | — |
| 30 | Idle stepper 2A | — | — | — | — | — | — | — | — |
| 31 | Idle stepper 1A | — | W33 | — | 0.5 | OEM-X-7 | — | — | — |
| 32 | Idle stepper 1B | — | W34 | — | 0.5 | OEM-X-8 | — | — | — |
| 33 | Ignition 3 | — | W19 | — | 0.5 | OEM-X-52 | — | — | — |
| 34 | Ignition 2 | — | W18 | — | 0.5 | OEM-X-51 | — | — | — |
| 35 | Boost | — | W31 | — | 0.5 | OEM-X-29 | — | — | — |
| 36 | Idle 2 (3-wire idle) | — | W29 | — | 0.5 | OEM-X-38 | — | — | — |
| 37 | PWM idle | — | W30 | — | 0.5 | OEM-X-2 | — | — | — |
| 38 | VVT | — | W32 | — | 0.5 | OEM-X-36 | — | — | — |
| 5 | Injector 4 | — | W24 | — | 0.5 | OEM-X-5 | — | — | — |
| 7 | Ignition 1 | — | W17 | — | 0.5 | OEM-X-50 | — | — | — |
| 8 | Ignition 4 | — | W20 | — | 0.5 | OEM-X-23 | — | — | — |
| 9 | Ground | — | W6 | — | 0.85 | SP-GND-1 | — | — | — |
Pin map
| OEM point | OEM function | OEM family | Target point | Target function | Target family | Wire colour | Evidence |
|---|---|---|---|---|---|---|---|
| OEM-X-1 | Fuel pump relay control | low_side_out | SPEEDUINO-A-16 | Proto area 3 (fuel pump) | low_side_out | corroborated | |
| OEM-X-13 | O2 sensor signal | lambda_nb_in | SPEEDUINO-A-21 | O2 sensor | lambda_nb_in | corroborated | |
| OEM-X-15 | Ground | ground | SPEEDUINO-A-10 + SPEEDUINO-A-9 | Ground + Ground | ground | corroborated | |
| OEM-X-16 | Crank position sensor (+) | trigger_in | SPEEDUINO-A-25 | Crank input / VR1+ | trigger_in | corroborated | |
| OEM-X-17 | Camshaft position sensor (Hall) | trigger_in | SPEEDUINO-A-24 | Cam input / VR2+ | trigger_in | corroborated | |
| OEM-X-2 | Idle speed control valve (close winding) | low_side_out | SPEEDUINO-A-37 | PWM idle | low_side_out | corroborated | |
| OEM-X-23 | Ignition coil cylinder 4 | ignition_out | SPEEDUINO-A-8 | Ignition 4 | ignition_out | corroborated | |
| OEM-X-24 | Ignition coil cylinder 6 | ignition_out | — | — | — | corroborated | |
| OEM-X-25 | Ignition coil cylinder 5 | ignition_out | — | — | — | corroborated | |
| OEM-X-26 | Battery voltage (constant +12V) | power_in | — | — | — | corroborated | |
| OEM-X-27 | Main relay control | low_side_out | SPEEDUINO-A-15 | Proto area 2 (fan) | low_side_out | corroborated | |
| OEM-X-28 | Ground (electronics + sensor shielding) | sensor_ground | SPEEDUINO-A-12 + SPEEDUINO-A-23 | Ground + Ground | sensor_ground | corroborated | |
| OEM-X-29 | Idle speed control valve (open winding) | low_side_out | SPEEDUINO-A-35 | Boost | low_side_out | corroborated | |
| OEM-X-3 | Injector cylinder 5 | injector_out | SPEEDUINO-A-1 | Injector 1 | injector_out | corroborated | |
| OEM-X-31 | Injector cylinder 3 | injector_out | SPEEDUINO-A-3 | Injector 3 | injector_out | corroborated | |
| OEM-X-32 | Injector cylinder 2 | injector_out | SPEEDUINO-A-2 | Injector 2 | injector_out | corroborated | |
| OEM-X-33 | Injector cylinder 1 | injector_out | SPEEDUINO-A-1 | Injector 1 | injector_out | corroborated | |
| OEM-X-34 | Ground (output stages) | ground | SPEEDUINO-A-10 + SPEEDUINO-A-9 | Ground + Ground | ground | corroborated | |
| OEM-X-36 | Evap purge solenoid | low_side_out | SPEEDUINO-A-38 | VVT | low_side_out | corroborated | |
| OEM-X-38 | O2 sensor heater relay control | low_side_out | SPEEDUINO-A-36 | Idle 2 (3-wire idle) | low_side_out | corroborated | |
| OEM-X-4 | Injector cylinder 6 | injector_out | SPEEDUINO-A-2 | Injector 2 | injector_out | corroborated | |
| OEM-X-40 | O2 sensor signal ground | sensor_ground | SPEEDUINO-A-12 + SPEEDUINO-A-23 | Ground + Ground | sensor_ground | corroborated | |
| OEM-X-41 | Mass air flow (MAF) signal | analog_in | — | — | — | corroborated | |
| OEM-X-42 | Vehicle speed signal | digital_in | SPEEDUINO-A-14 | Proto area 1 (flex fuel) | digital_in | corroborated | |
| OEM-X-43 | Crank position sensor (-) | sensor_ground | SPEEDUINO-A-12 + SPEEDUINO-A-23 | Ground + Ground | sensor_ground | corroborated | |
| OEM-X-44 | Sensor ground (IAT/ECT/TPS) | sensor_ground | SPEEDUINO-A-12 + SPEEDUINO-A-23 | Ground + Ground | sensor_ground | corroborated | |
| OEM-X-45 | Shield ground | shield | — | — | — | corroborated | |
| OEM-X-47 | Tachometer output | tacho_out | SPEEDUINO-A-17 | Proto area 4 (tachometer) | tacho_out | corroborated | |
| OEM-X-5 | Injector cylinder 4 | injector_out | SPEEDUINO-A-5 | Injector 4 | injector_out | corroborated | |
| OEM-X-50 | Ignition coil cylinder 1 | ignition_out | SPEEDUINO-A-7 | Ignition 1 | ignition_out | corroborated | |
| OEM-X-51 | Ignition coil cylinder 2 | ignition_out | SPEEDUINO-A-34 | Ignition 2 | ignition_out | corroborated | |
| OEM-X-52 | Ignition coil cylinder 3 | ignition_out | SPEEDUINO-A-33 | Ignition 3 | ignition_out | corroborated | |
| OEM-X-54 | ECU power (+14V from main relay) | power_in | — | — | — | corroborated | |
| OEM-X-55 | Ground (ignition) | ground | SPEEDUINO-A-10 + SPEEDUINO-A-9 | Ground + Ground | ground | corroborated | |
| OEM-X-56 | Ignition switch (terminal 15) | digital_in | — | — | — | corroborated | |
| OEM-X-59 | +5V sensor supply | vref | SPEEDUINO-A-13 | 5V | vref | corroborated | |
| OEM-X-6 | Ground (injector output stages) | ground | SPEEDUINO-A-10 + SPEEDUINO-A-9 | Ground + Ground | ground | corroborated | |
| OEM-X-69 | Knock sensor cylinders 4-6 | knock_in | — | — | — | corroborated | |
| OEM-X-7 | VANOS intake camshaft solenoid | low_side_out | SPEEDUINO-A-31 | Idle stepper 1A | hbridge_out | corroborated | |
| OEM-X-70 | Knock sensor cylinders 1-3 | knock_in | — | — | — | corroborated | |
| OEM-X-71 | Knock sensor ground/shield | sensor_ground | SPEEDUINO-A-12 + SPEEDUINO-A-23 | Ground + Ground | sensor_ground | corroborated | |
| OEM-X-73 | Throttle position (TPS) | analog_in | SPEEDUINO-A-22 | TPS input | analog_in | corroborated | |
| OEM-X-77 | Intake air temperature (IAT) | temp_in | SPEEDUINO-A-20 | Inlet air temp (IAT) | temp_in | corroborated | |
| OEM-X-78 | Engine coolant temperature (ECT) | temp_in | SPEEDUINO-A-19 | Coolant temp (CLT) | temp_in | corroborated | |
| OEM-X-8 | Check engine light (MIL) | low_side_out | SPEEDUINO-A-32 | Idle stepper 1B | hbridge_out | corroborated |
Cut list
| Wire | From | To | Gauge (mm²) | Colour | Length | Signal | Ident |
|---|---|---|---|---|---|---|---|
| W1 | OEM-X-15 | SP-GND-1 | 0.85 | no route | Ground | — | |
| W2 | OEM-X-34 | SP-GND-1 | 0.85 | no route | Ground (output stages) | — | |
| W3 | OEM-X-55 | SP-GND-1 | 0.85 | no route | Ground (ignition) | — | |
| W4 | OEM-X-6 | SP-GND-1 | 0.85 | no route | Ground (injector output stages) | — | |
| W5 | SP-GND-1 | SPEEDUINO-A-10 | 0.85 | no route | Ground | — | |
| W6 | SP-GND-1 | SPEEDUINO-A-9 | 0.85 | no route | Ground | — | |
| W7 | OEM-X-28 | SP-0V-1 | 0.5 | no route | Ground (electronics + sensor shielding) | — | |
| W8 | OEM-X-40 | SP-0V-1 | 0.5 | no route | O2 sensor signal ground | — | |
| W9 | OEM-X-43 | SP-0V-1 | 0.5 | no route | Crank position sensor (-) | — | |
| W10 | OEM-X-44 | SP-0V-1 | 0.5 | no route | Sensor ground (IAT/ECT/TPS) | — | |
| W11 | OEM-X-71 | SP-0V-1 | 0.5 | no route | Knock sensor ground/shield | — | |
| W12 | SP-0V-1 | SPEEDUINO-A-12 | 0.5 | no route | Ground | — | |
| W13 | SP-0V-1 | SPEEDUINO-A-23 | 0.5 | no route | Ground | — | |
| W14 | OEM-X-59 | SPEEDUINO-A-13 | 0.5 | no route | +5V sensor supply | — | |
| W15 | OEM-X-16 | SPEEDUINO-A-25 | 0.5 | no route | Crank position sensor (+) | — | |
| W16 | OEM-X-17 | SPEEDUINO-A-24 | 0.5 | no route | Camshaft position sensor (Hall) | — | |
| W17 | OEM-X-50 | SPEEDUINO-A-7 | 0.5 | no route | Ignition coil cylinder 1 | — | |
| W18 | OEM-X-51 | SPEEDUINO-A-34 | 0.5 | no route | Ignition coil cylinder 2 | — | |
| W19 | OEM-X-52 | SPEEDUINO-A-33 | 0.5 | no route | Ignition coil cylinder 3 | — | |
| W20 | OEM-X-23 | SPEEDUINO-A-8 | 0.5 | no route | Ignition coil cylinder 4 | — | |
| W21 | OEM-X-33 | SPEEDUINO-A-1 | 0.5 | no route | Injector cylinder 1 | — | |
| W22 | OEM-X-32 | SPEEDUINO-A-2 | 0.5 | no route | Injector cylinder 2 | — | |
| W23 | OEM-X-31 | SPEEDUINO-A-3 | 0.5 | no route | Injector cylinder 3 | — | |
| W24 | OEM-X-5 | SPEEDUINO-A-5 | 0.5 | no route | Injector cylinder 4 | — | |
| W25 | OEM-X-3 | SPEEDUINO-A-1 | 0.5 | no route | Injector cylinder 5 | — | |
| W26 | OEM-X-4 | SPEEDUINO-A-2 | 0.5 | no route | Injector cylinder 6 | — | |
| W27 | OEM-X-1 | SPEEDUINO-A-16 | 0.5 | no route | Fuel pump relay control | — | |
| W28 | OEM-X-27 | SPEEDUINO-A-15 | 0.5 | no route | Main relay control | — | |
| W29 | OEM-X-38 | SPEEDUINO-A-36 | 0.5 | no route | O2 sensor heater relay control | — | |
| W30 | OEM-X-2 | SPEEDUINO-A-37 | 0.5 | no route | Idle speed control valve (close winding) | — | |
| W31 | OEM-X-29 | SPEEDUINO-A-35 | 0.5 | no route | Idle speed control valve (open winding) | — | |
| W32 | OEM-X-36 | SPEEDUINO-A-38 | 0.5 | no route | Evap purge solenoid | — | |
| W33 | OEM-X-7 | SPEEDUINO-A-31 | 0.5 | no route | VANOS intake camshaft solenoid | — | |
| W34 | OEM-X-8 | SPEEDUINO-A-32 | 0.5 | no route | Check engine light (MIL) | — | |
| W35 | OEM-X-47 | SPEEDUINO-A-17 | 0.5 | no route | Tachometer output | — | |
| W36 | OEM-X-73 | SPEEDUINO-A-22 | 0.5 | no route | Throttle position (TPS) | — | |
| W37 | OEM-X-13 | SPEEDUINO-A-21 | 0.5 | no route | O2 sensor signal | — | |
| W38 | OEM-X-78 | SPEEDUINO-A-19 | 0.5 | no route | Engine coolant temperature (ECT) | — | |
| W39 | OEM-X-77 | SPEEDUINO-A-20 | 0.5 | no route | Intake air temperature (IAT) | — | |
| W40 | OEM-X-42 | SPEEDUINO-A-14 | 0.5 | no route | Vehicle speed signal | — |
Bill of materials
| Category | Part number | Manufacturer | Description | Qty | Unit |
|---|---|---|---|---|---|
| connector | BMW-E36-DME-CONN | BMW | E36 DME (M3.1/M3.3.1) harness connector | 1.000 | ea |
ECU setup sheet
| Role | Engine ref | Engine signal | Sensor | ECU point | ECU function | ECU class | Setup flag |
|---|---|---|---|---|---|---|---|
| No configured channels. | |||||||
Findings
Open (9)
| Severity | Code | Subject | Message |
|---|---|---|---|
| error | NET_MERGED | OEM-X-3 + OEM-X-33 + SPEEDUINO-A-1 | 2 different OEM functions share one net: OEM-X-3 Injector cylinder 5; OEM-X-33 Injector cylinder 1 |
| error | NET_MERGED | OEM-X-32 + OEM-X-4 + SPEEDUINO-A-2 | 2 different OEM functions share one net: OEM-X-32 Injector cylinder 2; OEM-X-4 Injector cylinder 6 |
| error | REQUIRED_UNMAPPED | OEM-X-24 | Required OEM function "Ignition coil cylinder 6" (ignition_out) is not connected to the new ECU. |
| error | REQUIRED_UNMAPPED | OEM-X-25 | Required OEM function "Ignition coil cylinder 5" (ignition_out) is not connected to the new ECU. |
| error | REQUIRED_UNMAPPED | OEM-X-41 | Required OEM function "Mass air flow (MAF) signal" (analog_in) is not connected to the new ECU. |
| error | REQUIRED_UNMAPPED | OEM-X-54 | Required OEM function "ECU power (+14V from main relay)" (power_in) is not connected to the new ECU. |
| warn | NET_FAMILY | OEM-X-7 ↔ SPEEDUINO-A-31 | OEM-X-7 "VANOS intake camshaft solenoid" [low_side_out] is wired to SPEEDUINO-A-31 "Idle stepper 1A" [hbridge_out]. A half-bridge can act as a low-side switch only if configured that way. |
| warn | NET_FAMILY | OEM-X-8 ↔ SPEEDUINO-A-32 | OEM-X-8 "Check engine light (MIL)" [low_side_out] is wired to SPEEDUINO-A-32 "Idle stepper 1B" [hbridge_out]. A half-bridge can act as a low-side switch only if configured that way. |
| info | UNMAPPED | OEM | 4 optional OEM pins are not mapped: OEM-X-45 Shield ground; OEM-X-56 Ignition switch (terminal 15); OEM-X-69 Knock sensor cylinders 4-6; OEM-X-70 Knock sensor cylinders 1-3 |
Accepted (1)
| Code | Subject | Reason | By |
|---|---|---|---|
| REQUIRED_UNMAPPED | OEM-X-26 | Battery-constant (memory) feed of the stock ECU: the new ECU has no such input, so it is not needed. | mapping-proposal |
Notes
Auto-mapped by auto_map() from the library pin data on 2026-10-11. Review every wire against both manuals before building. Open items: - Main-relay feed: no ecu_main_power pin on the stock or the new ECU - OEM-X 25: Ignition coil cylinder 5: no free ignition output on Speeduino Speeduino - OEM-X 24: Ignition coil cylinder 6: no free ignition output on Speeduino Speeduino - OEM-X 41: Mass air flow (MAF) signal: no free maf/analog_0_5 on Speeduino Speeduino - OEM-X 54: ECU power (+14V from main relay): no rule for class ecu_main_power; wire by hand Not wired: - OEM-X 26: Battery voltage (constant +12V): Speeduino Speeduino has no battery-constant input; not needed - OEM-X 70: Knock sensor cylinders 1-3: no free knock input on Speeduino Speeduino - OEM-X 69: Knock sensor cylinders 4-6: no free knock input on Speeduino Speeduino - OEM-X 45: Shield ground: no shield pin on Speeduino Speeduino - OEM-X 56: Ignition switch (terminal 15): key-on 12 V sense — optional in a swap (the main relay is energized from keyed 12 V, not from this pin); Speeduino Speeduino has no dedicated key-on input
Sources
| Reliability | Kind | Title | URL | Archive | Captured | SHA-256 |
|---|---|---|---|---|---|---|
| 4 | vendor_doc | Link BMWLink E36X (G4X) plug-in install manual | https://linkecu.com/documentation/E36X.pdf | archive | 2026-10-05 | 010cda3acd08 |
| 4 | vendor_doc | Speeduino Manual (08/04/25) — V0.4 board IDC40 pinout & features | https://speeduino.com/Speeduino_manual.pdf | archive | 2026-10-05 | 21806bd29ef0 |
| 2 | community_copy | bimmer-service: Bosch Motronic M3.3.1 pinout (E36 M50) | https://www.bimmer-service.com/2025/11/17/bosch-motronic-m3-3-1-pinout-wiring-diagram/ | — | — | — |