Using the crank trigger
Note that we now offer an even easier way to MegaSquirt these cars – check out our newMSPNP for the 325! These are fully assembled and ready to plug right into the stock harness! For those looking to go a more DIY route, here’s how to make it work.
Application(s): This article covers the 1987 through 1992 E30 chassis BMW 325i with the M20B25 motor. (Note: In 1992, the convertable 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, but most users favor 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. Note: For a different approach, see our DIYPNP plug in ECU – we have an installation guide for how to use it on the 325.
On these engines, you can use any of the current MegaSquirt variants – I, II, or III. We recommend the V3.0 board if building one yourself, or the V3.57 if buying one ready made. Most of the installations currently out there are using MS2/Extra. We’ll include notes on MS3 as well, although using an MS3 to its full capability will require an extra sensor added.
|Using the MS-II PCBv3 or V3.57 ECU|
with MS2/Extra 2.0.1 or later code
|Using the MS-III PCB V3.0 or V3.57 ECU|
And 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:
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 (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).
Idle Air Control
These engines use a pulse width modulated (PWM) idle air control motor. A V3.57 board (or MS3X) can control this directly with no additional mods. With a V3.0 board, you will need to add our PWM idle control mod kit to control this valve. For an MS2, connect this output to the opening coil and connect the closing coil to ground through a 30 ohm 50 watt resistor. The MS3X can use the MS3X IDLE output for the closing coil.
Other Things the ECU Controls
The stock ECU controls a couple other devices in these cars besides the injectors, ignition, and IAC valve. Here’s what to do about the ones you will need to control.
Fuel pump: This is a standard output on the Megasquirt. Wire the Megasquirt main board pin 37 to the fuel pump relay wire that went to the stock ECU.
Air conditioning: 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.
Gauges: The tach is sometimes ECU driven – this seems to depend on production year. The MS3 can run the tach through the MS3X tach output (if using this to drive an MSD box, wire the tach to the MSD tach output). For an MS2, connect the tach to pin 25 if you have installed the stepper IAC circuit, and set the tach output to IAC1.
TunerStudio Configuration for MS3 or 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 (MS2 with spark output on D14 circuit) or JS10 (MS3)
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
If you use someone else’s .msq file we do recommend you check the firmware version the .msq file was built on as you cannot always use a file built on one firmware version with an ECU running a different version or a different ignition setup– it’s best to use the .msq files with the same version of the firmware that the file was built on. Alternately you can manually copy the settings over from the borrowed file.
Yes, you can use these input mods for a crank triggered distributorless ignition, with different hardware mods. Software changes are minimal: set Number of Coils to Wasted Spark in MS2/Extra. You will keep the same ignition input mods, but the output mods will be different The mods needed will depend on the coils you’re using. For example, these mods will work if using BIP373s to drive a coil without built in ignitors.
The MS3X has no need of mods for distributorless ignition. Instead, you can wire the MS3X spark outputs A through C (wasted spark) or A through F (coil on plug) to an ignition module or coils with built in ignitors, like LS1 coils or our IGN-1A race coils. Sequential coil on plug requires a cam sensor, but you can run wasted-COP mode without one.
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.
On these motors, you can use a MegaSquirt II or III, although the MegaSquirt-II has the edge. We recommend using a GM open element IAT sensor and removing the air flow meter.
- MegaSquirt-II V3.0 kit
- MegaSquirt-II V3.57 assembled unit
- MegaSquirt-III V3.0 kit and MS3X
- MegaSquirt-III V3.57 with MS3X assembled unit
Mod kits discussed in this article:
- MK-BIP373 for wasted spark output – 2 required for a V3.0, 3 required for a V3.57 (not needed for using the stock distributor and ignition module)
- MK-PWMIAC for idle speed control with a V3.0 board (not needed for a V3.57)
Other recommended parts
- JimStim kit or assembled JimStim
- Stimulator power supply
- 10′ wiring harness or 24″ wiring pigtail
- MS3X harness if using MS3
- GM open element IAT sensor
- 3/8″ NPT bung in aluminum or stainless steel
- 6′ DB9 tuning cable
- USB adapter
- Wideband O2 sensor system
If you have any further information, contributions, or questions about this article, please contact us.