MegaSquirt installation on BMW M20 and M30 engines, using the factory crank trigger
MSPNP ALERT!
Check out our out of the box plug & play solution for 87-92 BMW E30 325i, ready to plug into your factory harness! Typical installation takes around an hour. It’s ready to run this engine out of the box, with no modifications required.
DIYers not looking at the MSPNP, we love you too! Keep reading!
Application(s): This article covers the 1987 through 1992 E30 chassis BMW 325i with the M20B25 motor. (Note: In 1992, the convertible was an E30 chassis, while all other models had migrated to the E36 chassis and the newer M50 engine. For everything else, the E30 stopped after 1991.) The same mods and ignition settings apply to other M20B25 cars like the ’89-’90 525, as well as to some M30 and S38 powered cars, including the ’89-93 535, ’91-’93 M5, and ’88-’92 735. Using this on the earlier 325e eta motor (M20B27) or other early M20, M30, or S38 versions with flywheel speed sensors will require swapping in the crank trigger assembly from the later engines. It reportedly bolts right up.
Level of control: Full Standalone EMS– Fuel and Ignition Control
There have been several ways to install MegaSquirt on these engines. An entry level installation can use MS2/Extra. MS3 adds the possibility of sequential fuel injection, but to make this feature work requires modifying the distributor for a one tooth cam sensor.
- MSPNP Gen 2 (Links to MegaSquirt PNP website)
Note that the MSPNP2 does not need any of the modifications that would be added to a V3.0 or V3.57 board. - MS3Pro (includes Gen 1, EVO, and Ultimate)
- MicroSquirt
- MS2 V3.0
- MS2 V3.57
- MS3 V3.0
- MS3 V3.57
MS3Pro
All three wire-in MS3Pro versions use the same wiring and settings for this engine.
Wiring
MS3Pro ECUs – the original version, the MS3Pro EVO, and the MS3Pro Ultimate – do not require any internal modifications to run this engine. Mostly, you’ll use the wiring diagrams in section 4 of the manual for your specific ECU. Here are the main application specific wiring details to keep in mind.
- The crankshaft position sensor will wire to CKP+ and CKP- (pins 6 and 15 on the white connector). To prevent sync loss at high RPM, you will want to install a 10K resistor in parallel with the crankshaft position sensor. If you still experience sync loss, try a lower value resistor.
- If using the stock ignition coil, you will need an external ignition module. You can use a Chevy Vortec ignition module wired to spark output A (pin 27 on the gray connector) or an aftermarket CDI box with its points input wired to the tach output (pin 24 on the white connector).
- The IAC valve is a 3 wire IAC design. You can use PWM Out 1 to open the valve and PWM Out 2 to close it (pins 14 and 29 of the white connector, respectively).
- To use the A/C idle up function, wire Digital Switched 12V In (gray connector pin 19) to the factory A/C input. The wiring supplies a 12 volt signal to tell the ECU to increase idle speed.
- The tach is sometimes ECU driven – this seems to depend on production year. The MS3 can run the tach through the its dedicated tach output on pin 24 of the white connector. If using the tach output to drive an MSD box, wire the tach to the MSD tach output instead.
TunerStudio Configuration for MS3Pro
Set the following under Ignition Options / Wheel Decoder.
- Spark mode: Toothed Wheel
- Trigger Angle / Offset: 0
- Ignition Input Capture: Falling Edge
- Spark Output: Going High It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil.
- Number of coils: Single Coil
- Spark Hardware In Use:
- Spark for if using a Vortec ignition module
- Tachout if using a CDI box
Dwell settings will depend on the coil used; 2.5 to 3.0 msec is a safe starting point. A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.
Use these trigger wheel settings.
- Trigger wheel arrangement: Single Wheel with Missing Teeth
- Trigger wheel teeth: 60
- Missing teeth: 2
- Tooth #1 Angle: 97 (this may need to be adjusted slightly due to production tolerances)
- Wheel speed: Crank Wheel
Sequential injection for MS3Pro
The factory sensors do not support sequential injection, but it is possible to modify the distributor with a one tooth trigger wheel and cam position sensor to allow sequential injection You will need to change the trigger wheel setting to Dual Wheel with Missing Teeth. Note that you may need to add 360 degrees to the Tooth #1 Angle setting if adding a cam sensor.
Suggested Parts for MS3Pro Installation
-
- MS3Pro EVO with 8′ harness or MS3Pro Ultimate with 8′ harness
- GM open element IAT sensor
- 3/8″ NPT bung in aluminum or stainless steel
MicroSquirt
The MicroSquirt, like the MS3Pro, does not require any internal modifications to run this engine.
Wiring
Mostly, you’ll use the wiring diagrams in the MS2/Extra MicroSquirt Hardware Manual. Here are the main application specific wiring details to keep in mind.
- The crankshaft position sensor will wire to VR1+ and VR1- (pins 32 and 33). To prevent sync loss at high RPM, you will want to install a 10K resistor in parallel with the crankshaft position sensor. If you still experience sync loss, try a lower value resistor.
- If using the stock ignition coil, you will need an external ignition module. You can use a Chevy Vortec ignition module wired to IGN1 (pin 12) or an aftermarket CDI box with its points input wired to the WLED output (pin 17).
- The IAC valve uses a 3-wire design. You can use FIDLE to open the valve (pin 7) and connect the closing coil to ground through a 30 ohm 50 watt resistor.
- The tach is sometimes ECU driven – this seems to depend on production year. The MicroSquirt can run the tach through the its dedicated tach output on pin 35 of the white connector.
TunerStudio Configuration for MicroSquirt
Set the following under Tach Input / Ignition Settings.
- Spark mode: Toothed Wheel
- Trigger Angle / Offset: 0
- Ignition Input Capture: Falling Edge
- Spark Output: Going High It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil.
- Number of coils: Single Coil
- Spark A output pin:
- IGN1 if using a Vortec ignition module
- WLED if using a with CDI box
Dwell settings will depend on the coil used; 2.5 to 3.0 msec is a safe starting point. A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.
Use these trigger wheel settings.
- Trigger wheel arrangement: Single Wheel with Missing Teeth
- Trigger wheel teeth: 60
- Missing teeth: 2
- Tooth #1 Angle: 97 (this may need to be adjusted slightly due to production tolerances)
- Wheel speed: Crank Wheel
Suggested parts for MicroSquirt installation:
MS2 V3.0
ECU Modifications
Driving the factory coil will require a BIP373 transistor, sold separately. Optionally, you can add three BIP373s for distributorless ignition – see section 5.3.1.2 of the MS2 V3.57 hardware manual for details.
Modifying the MS-II V3.0 ECU
That’s it! |
Wiring
Connect the crankshaft position sensor to pin 24 and a ground pin. Note that many of these sensors need a 10K resistor inline with the wire to pin 24 to avoid having the crank signal break up at high RPM.
Connect the coil negative terminal to pin 36.
These engines use a pulse width modulated (PWM) idle air control motor. Use our PWM idle control mod kit to control this valve. Connect the IAC output on pin 30 to the opening coil and connect the closing coil to ground through a 30 ohm 50 watt resistor.
The tach is sometimes ECU driven – this seems to depend on production year. If your car has an ECU driven tach, connect the tach to pin 25 and set the tach output to IAC1.
TunerStudio Configuration for MS2/Extra
Set the following under Tach Input / Ignition Settings.
- Spark mode: Toothed Wheel
- Trigger Angle / Offset: 0
- Ignition Input Capture: Falling Edge
- Spark Output: Going High It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil.
- Number of coils: Single Coil
- Spark A output pin: D14
Dwell settings will depend on the coil used; 2.5 to 3.0 msec is a safe starting point. A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.
Use these trigger wheel settings.
- Trigger wheel arrangement: Single Wheel with Missing Teeth
- Trigger wheel teeth: 60
- Missing teeth: 2
- Tooth #1 Angle: 97 (this may need to be adjusted slightly due to production tolerances)
- Wheel speed: Crank Wheel
Suggested Parts for MS2 V3.0:
- MegaSquirt-II V3.0 kit
- MK-BIP373 for spark output – 1 required for stock distributor ignition, 3 required for wasted spark
- MK-PWMIAC for idle speed control with a V3.0 board (not needed for a V3.57)
- JimStim kit or assembled JimStim
- Stimulator power supply
- 8′ wiring harness or 24″ wiring pigtail
- GM open element IAT sensor
- 3/8″ NPT bung in aluminum or stainless steel
- 6′ DB9 tuning cable
- USB adapter
- Wideband O2 sensor system
MS2 V3.57
ECU Modifications
Driving the factory coil will require a BIP373 transistor, sold separately.
Wiring
Connect the crankshaft position sensor to pin 24 and a ground pin. Note that many of these sensors need a 10K resistor inline with the wire to pin 24 to avoid having the crank signal break up at high RPM.
Connect the coil negative terminal to pin 36.
These engines use a pulse width modulated (PWM) idle air control motor. Connect the PWM idle output on pin 30 to the opening coil and connect the closing coil to ground through a 30 ohm 50 watt resistor.
The tach is sometimes ECU driven – this seems to depend on production year. If your car has an ECU driven tach, connect the tach to pin 25 and set the tach output to IAC1.
TunerStudio Configuration for MS2/Extra
Set the following under Tach Input / Ignition Settings.
- Spark mode: Toothed Wheel
- Trigger Angle / Offset: 0
- Ignition Input Capture: Falling Edge
- Spark Output: Going High It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil.
- Number of coils: Single Coil
- Spark A output pin: D14
Dwell settings will depend on the coil used; 2.5 to 3.0 msec is a safe starting point. A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.
Use these trigger wheel settings.
- Trigger wheel arrangement: Single Wheel with Missing Teeth
- Trigger wheel teeth: 60
- Missing teeth: 2
- Tooth #1 Angle: 97 (this may need to be adjusted slightly due to production tolerances)
- Wheel speed: Crank Wheel
Suggested Parts for MS2 V3.57:
- MegaSquirt-II V3.57 assembled unit
- MK-BIP373 for spark output – 1 required for stock distributor ignition, 3 required for wasted spark
- Assembled JimStim
- Stimulator power supply
- 8′ wiring harness or 24″ wiring pigtail
- GM open element IAT sensor
- 3/8″ NPT bung in aluminum or stainless steel
- 6′ DB9 tuning cable
- USB adapter
- Wideband O2 sensor system
MS3 V3.0 with MS3X
Modifying the MS-III PCB V3.0 ECUUsing the MS3X expansion board
There are two ways to control the coil. If using an MSD box, you can use the MS3X tach output to control the coil by connecting the tach output to the MSD white wire. Alternatively, you can use a built in high current coil driver:
That’s it! |
Wiring – MS3 V3.0
Connect the crankshaft position sensor to main board pin 24 and a ground pin. Note that many of these sensors need a 10K resistor inline with the wire to pin 24 to avoid having the crank signal break up at high RPM.
Connect the coil negative terminal to main board pin 36 (unless using the MS3X tach output to drive an MSD box, in which case you will wire the MS3X tach output to the MSD white wire).
These engines use a pulse width modulated (PWM) idle air control motor. You can use the IDLE output on the MS3X card for the opening coil output, and any unused mid current output on the MS3X for the closing coil.
The air conditioning operates separately from the ECU. The ECU does get a 12 volt signal which can be used for idle up input. For an MS3, connect this to the MS3X nitrous output if you wish to use this feature.
The tach is sometimes ECU driven – this seems to depend on production year. The MS3 can run the tach through the its dedicated tach output on the MS3 connector (if using this to drive an MSD box, wire the tach to the MSD tach output).
TunerStudio Configuration for MS3 V3.0
Set the following under Tach Input / Ignition Settings.
- Spark mode: Toothed Wheel
- Trigger Angle / Offset: 0
- Ignition Input Capture: Falling Edge
- Spark Output: Going High It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil.
- Number of coils: Single Coil
- Spark Hardware In Use:
- JS10 with direct coil control mods
- Tachout if using MS3X tach output to run a CDI box
Dwell settings will depend on the coil used; 2.5 to 3.0 msec is a safe starting point. A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.
Use these trigger wheel settings.
- Trigger wheel arrangement: Single Wheel with Missing Teeth
- Trigger wheel teeth: 60
- Missing teeth: 2
- Tooth #1 Angle: 97 (this may need to be adjusted slightly due to production tolerances)
- Wheel speed: Crank Wheel
Sequential injection
The stock sensors on an E30 do not support sequential injection, but you could modify the distributor to add a 1 tooth cam trigger to add this feature when using MS3. You will need to change the trigger wheel setting to Dual Wheel with Missing Teeth. Note that you may need to add 360 degrees to the Tooth #1 Angle setting if adding a cam sensor. See section 6.9.8 of the MS3 Hardware Manual for details.
Suggested Parts for MS3 V3.0:
- MegaSquirt-III V3.0 kit and MS3X
- MK-BIP373 for spark output
- JimStim kit or assembled JimStim
- Stimulator power supply
- 8′ wiring harness or 24″ wiring pigtail
- MS3X harness or 24″ MS3X pigtail
- GM open element IAT sensor
- 3/8″ NPT bung in aluminum or stainless steel
- MS3 USB tuning cable
- Wideband O2 sensor system
MS3 V3.57 with MS3X
Modifying the MS-III V3.57 ECUAnd the MS3X expansion board
There are two ways to control the coil. If using an MSD box, you can use the MS3X tach output to control the coil by connecting the tach output to the MSD white wire. Alternatively, you can use a built in high current coil driver:
That’s it! |
Wiring – MS3
Connect the crankshaft position sensor to main board pin 24 and a ground pin. Note that many of these sensors need a 10K resistor inline with the wire to pin 24 to avoid having the crank signal break up at high RPM.
Connect the coil negative terminal to main board pin 36 (unless using the MS3X tach output to drive an MSD box, in which case you will wire the MS3X tach output to the MSD white wire).
These engines use a pulse width modulated (PWM) idle air control motor. You can use the IDLE output on the MS3X card for the opening coil output, and any unused mid current output on the MS3X (or main board pin 30 for the FIDLE output) for the closing coil.
The air conditioning operates separately from the ECU. The ECU does get a 12 volt signal which can be used for idle up input. For an MS3, connect this to the MS3X nitrous output if you wish to use this feature.
The tach is sometimes ECU driven – this seems to depend on production year. The MS3 can run the tach through the its dedicated tach output on the MS3 connector (if using this to drive an MSD box, wire the tach to the MSD tach output).
TunerStudio Configuration for MS3
Set the following under Tach Input / Ignition Settings.
- Spark mode: Toothed Wheel
- Trigger Angle / Offset: 0
- Ignition Input Capture: Falling Edge
- Spark Output: Going High It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil.
- Number of coils: Single Coil
- Spark Hardware In Use:
- JS10 with direct coil control mods
- Tachout if using MS3X tach output to run a CDI box
Dwell settings will depend on the coil used; 2.5 to 3.0 msec is a safe starting point. A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.
Use these trigger wheel settings.
- Trigger wheel arrangement: Single Wheel with Missing Teeth
- Trigger wheel teeth: 60
- Missing teeth: 2
- Tooth #1 Angle: 97 (this may need to be adjusted slightly due to production tolerances)
- Wheel speed: Crank Wheel
Sequential injection
The stock sensors on an E30 do not support sequential injection, but you could modify the distributor to add a 1 tooth cam trigger to add this feature when using MS3. You will need to change the trigger wheel setting to Dual Wheel with Missing Teeth. Note that you may need to add 360 degrees to the Tooth #1 Angle setting if adding a cam sensor. See section 6.9.8 of the MS3 Hardware Manual for details.
Suggested Parts for MS3 V3.57:
- MegaSquirt-III V3.57 with MS3X assembled unit
- Assembled JimStim
- Stimulator power supply
- 8′ wiring harness or 24″ wiring pigtail
- MS3X harness or 24″ MS3X pigtail
- GM open element IAT sensor
- 3/8″ NPT bung in aluminum or stainless steel
- MS3 USB tuning cable
- Wideband O2 sensor system
Feedback welcome
If you have any further information, contributions, or questions about this article, please contact us.