Applications: 1996-2004 Mustangs with the 4.6 modular motor. We’ll also have a couple tips on other vehicles with the 4.6 and 5.4 liter mod motor V8s; the modifications are about the same if you’re working with a Thunderbird, Navigator, Crown Victoria, Lightning, or F150 as well. These motors all use the same sort of crank wheel. You can use either an external EDIS-8 module (found on the OBD-I version of the mod motor), or have Megasquirt fire the coils directly if you are using a V3.0 or later board. Depending on the year and features, you may need to do a parallel installation with the stock ECU controlling gauges and other functions the MS cannot easily take control over. 1999 and later Mustangs have ECU controlled gauges and need a parallel installation if you wish to keep this function. (unless you’re running the MS3Pro PNP which controls that factory dash like stock!)
First off– the easy button option:
The MS3Pro PNP takes away the DIY element in some ways, you don’t have to build or wire anything, you just plug it in, route a vacuum hose, and you’re ready to fire it up and tune until your heart’s content!
MS3Pro PNP for the 1996-2004 GT/Mach1 and 99-02 Cobra
MS3Pro PNP for the 2003-2004 Terminator Cobra
Another bonus of running the MS3Pro PNP is it controls the 99+ computer controlled factory dash like stock!
And then the DIY route using MS1 or MS2!
Generally, we recommend using MS2 with the latest MS2/Extra code to fire wasted spark coils directly. We’ve found MS2/Extra to work great at decoding Ford trigger wheels, and you won’t have to add any external modules. Plus, you can set the rev limit wherever you like and use a spark cut rev limiter. We’ll also cover alternative methods using MS1/Extra and the EDIS modules off OBD-I Crown Victorias and Lincolns.
Hit our support up for MS3/MS3X (DIY Kit style ECU) help for these cars! [email protected]
Direct Coil Control Distributorless Ignition on a Megasquirt-II V3.0 or V3.57 Board
Using MS2/Extra firmware, version 2.0.1 or higher
Hardware mods required:
- Build the VR conditioner circuit, as described in the MSExtra Manual. All our preassembled Megasquirts with the V3.0 or V3.57 board come with this circuit installed.
- Jumper TachSelect to VRIN. (V3.57: Set JP1 to the 1-2 position.)
- Jumper TSEL to VROUT. (V3.57: Set J1 to the 3-4 position.)
- You may need to adjust the VR trim pots, R52 and R56, when this is installed on a running engine. A usual base setting is to turn them all the way counterclockwise.
- Jumper IGBTOUT to IGN to send to IGBT ignition coil driver signal out of pin 36 on the DB37. (not needed on a V3.57)
- Cut out R57 if fitted (This won’t be there on my units, though.).
Now for constructing the outputs…
- Get a 330 ohm 1/4w resistor and cut the leads down to about 1/2″ at each end. Maybe a bit less.
- Tin each end of the resistor with a bit of solder.
- Cut a 5″ piece of hookup wire (22ga is fine) and strip just a 1/8″ or so. Tin the stripped wire with solder.
- Melt the tinned wire tip to one end of the tinned 330 ohm resistor tip and let it cool.
- Heatshrink wrap this wire/resistor assembly.
- Use this wire/resistor combo to jumper the ‘top’ (top as in when you facing the silkscreen side of the PCB, with the text so that you can read it normally) lead of R26 to IGBTIN on the opposite side of the PCB. (On a V3.57, this is kind of tricky. It’s easier to use pin 7 on the U1 socket instead.)
- Now, you will be constructing duplicates of this BIP373 circuit for each coil output you need. You will be using outputs A through D on a V8. You can mount the additional BIP373s on a second heat sink stacked on top of the first, attached on top with long screws. Or you can mount the BIP373s to the case.
- Each BIP373 will need a resistor-on-a-wire assembly, running to its left leg. You will get the BIP373 input signal from the following locations:
Output | Input Location (V3.0) | Input Location (V3.57) |
Spark A | Top of R26 | U1 pin 7 |
Spark B | Top of R29 | U1 pin 8 |
Spark C | Top of R27 | U1 pin 9 |
Spark D | JS10 | JS10 |
- The center leg of the BIP373 is its spark output. We have found that the IAC traces can carry enough current for normal use, so you can use one IAC trace for each spark output. You may need to add an extra connector with the V3.0 on 12 cylinder applications, or if you are running a stepper IAC. You can use this pinout if you are not running a stepper IAC, for up to 8 cylinders.
Output | Board connection | DB37 pin |
Spark A | IGN | 36 |
Spark B | IAC2B | 31 |
Spark C | IAC2A | 29 |
Spark D | IAC1B | 27 |
Our assembled V3.57 MS2s are already built for stepper IAC control, so this is the pinout they use.
Output | Board connection | Output pin |
Spark A | IGN | DB37 pin 36 |
Spark B | IAC2B | DB15 pin 10 |
Spark C | IAC2A | DB15 pin 11 |
Spark D | IAC1B | DB15 pin 12 |
- Connect the right leg of each BIP373 to a ground, such as the proto area ground or SG pins. It’s best if you can find a separate ground for each BIP373.
External wiring:
- Connect the VR sensor to pin 24 and the shielded ground wire.
- Connect the negative terminals of the coil to the pins specified in the above pinout.
TunerStudio settings required:
Under Tach Input / Ignition Settings:
- Set Spark Mode to “Toothed Wheel.”
- Set the trigger angle / offset to 0.
- Set Ignition Input Capture to “Falling Edge.”
- Set Spark Output to “Going High (Inverted).” Setting this wrong can overheat the BIP373s or damage the coils.
- Set Number of Coils to “Wasted Spark.”
- Set Spark A output pin to D14.
Under Trigger Wheel Settings:
Some settings are the same for all engines.
- Trigger Wheel Arrangement: Single wheel with missing teeth
- Trigger Wheel Teeth: 36
- Missing Teeth: 1
- Wheel Speed: Crank Wheel
- Tooth #1 Angle: 40
Enable dwell control and adjust as needed to match the coils you are using. Set the dwell at a very low value to start with (we’ve found Ford EDIS coils have especially short dwell times) and increase it slowly. Back it off if the BIP373s become hot to the touch.
EDIS on a Megasquirt-I V2.2 Board
Using MSnS-E firmware
Hardware mods required:
- Remove D5, D8, R10, and the XG1-XG2 jumper.
- Jumper XG1 to the right hole of D5.
- Install a 1K resistor in place of D8.
- Run a jumper from the bottom hole of R10 and the banded side of the D9 diode.
- Use a 750 ohm to 1K resistor to connect the right side of R23 to the negative side of D17.
- Run a wire from the negative side of D17 to X11 to bring the SAW output out on the DB37 pin 25.
External wiring:
- Connect the EDIS PIP signal to pin 24.
- Connect the EDIS SAW signal to pin 25.
MegaTune settings required:
Under Codebase and Output Functions:
- Set EDIS on, and all other code types off.
- Set LED17(D14) Function to Spark Output A.
- Turn off all other spark outputs.
Under Spark Settings:
- Set Trigger Angle and Trigger Angle Ignition to 0.
- Set Cranking Timing to Trigger Return.
- Set Hold Ignition to 0.
- Set Spark Output Inverted to Yes.
- Do not select oddfire.
Under Dwell Settings:
- Specify Fixed Duty, 50% duty cycle.
DIAutoTune has a detailed write-up about EDIS here
EDIS on a Megasquirt-I V3.0 Board
Using MSnS-E firmware
Hardware mods required:
- Remove C30.
- Run a jumper from the top hole of C30 to S12C.
- If building the board from scratch, you do not need to include D1 or D2, but they do not need to be removed.
- Replace R12 with a 1K resistor.
- Remove the XG1 to XG2 jumper, and jumper XG1 to TachSelect.
- Jumper OPTOUT to TSEL.
- Connect a 750 ohm to 1K resistor from the right side of R24 or the 5V hole in the proto area to the negative lead of D14.
- Run a wire from the negative lead of D14 to the IGN jumper hole on the opposite side of the board to bring the SAW output out to pin 36 of the DB37 connector.
External wiring:
- Connect the EDIS PIP signal to pin 24.
- Connect the EDIS SAW signal to pin 36.
MegaTune settings required:
Under Codebase and Output Functions:
- Set EDIS on, and all other code types off.
- Set LED17(D14) Function to Spark Output A.
- Turn off all other spark outputs.
Under Spark Settings:
- Set Trigger Angle and Trigger Angle Addition to 0.
- Set Cranking Timing to Trigger Return.
- Set Hold Ignition to 0.
- Set Spark Output Inverted to Yes.
- Do not select oddfire.
Under Dwell Settings:
- Specify Fixed Duty, 50% duty cycle.
DIYAutoTune has a detailed write-up about EDIS here.
Direct Coil Control Distributorless Ignition on a Megasquirt-I V3.0 or V3.57 Board
Using MSnS-E firmware
Hardware mods required:
- Build the VR conditioner circuit, as described in the MSExtra Manual. All our preassembled Megasquirts with the V3.0 or V3.57 board come with this circuit installed.
- Jumper TachSelect to VRIN. (V3.57: Set JP1 to the 1-2 position.)
- Jumper TSEL to VROUT. (V3.57: Set J1 to the 3-4 position.)
- You may need to adjust the VR trim pots, R52 and R56, when this is installed on a running engine. A usual base setting is to turn them all the way counterclockwise.
- Jumper IGBTOUT to IGN to send to IGBT ignition coil driver signal out of pin 36 on the DB37. (V3.0 only)
- Cut out R57 if fitted (This won’t be there on my units, though.).
Now for constructing the outputs…
- Get a 330 ohm 1/4w resistor and cut the leads down to about 1/2″ at each end. Maybe a bit less.
- Tin each end of the resistor with a bit of solder.
- Cut a 5″ piece of hookup wire (22ga is fine) and strip just a 1/8″ or so. Tin the stripped wire with solder.
- Melt the tinned wire tip to one end of the tinned 330 ohm resistor tip and let it cool.
- Heatshrink wrap this wire/resistor assembly.
- Use this wire/resistor combo to jumper the ‘top’ (top as in when you facing the silkscreen side of the PCB, with the text so that you can read it normally) lead of R26 to IGBTIN on the opposite side of the PCB. (On a V3.57, this is kind of tricky. It’s easier to use pin 7 on the U1 socket instead.)
- Now, you will be constructing duplicates of this BIP373 circuit for each coil output you need. On these motors, you’ll be using spark outputs A through D. You can mount the additional BIP373s on a second heat sink stacked on top of the first, attached on top with long screws. Or you can mount the BIP373s to the case.
- Each BIP373 will need a resistor-on-a-wire assembly, running to its left leg. You will get the BIP373 input signal from the following locations:
Output | Input Location (V3.0) | Input Location (V3.57) |
Spark A | Top of R26 | U1 pin 7 |
Spark B | Top of R29 | U1 pin 8 |
Spark C | Top of R27 | U1 pin 9 |
Spark D | Bottom of R1 with R1 removed | Bottom of R1 with R1 removed |
- The center leg of the BIP373 is its spark output. We have found that the IAC traces can carry enough current for normal use, so you can use one IAC trace for each spark output. This is our recommended pinout, which we use in our assembled ECUs.
Output | Board connection | DB37 pin |
Spark A | IGN | 36 |
Spark B | IAC2B | 31 |
Spark C | IAC2A | 29 |
Spark D | IAC1B | 27 |
- Connect the right leg of each BIP373 to a ground, such as the proto area ground or SG pins. It’s best if you can find a separate ground for each BIP373.
External wiring:
- Connect the VR sensor to pin 24 and the shielded ground wire.
- Connect the negative terminals of the coil to the pins specified in the above pinout.
MegaTune settings required:
Under Codebase and Output Functions:
- Set Generic Wheel on, and all other code types off.
- Set one spark output for every two cylinders.
- Turn off all unused spark outputs.
Under Wheel Decoder Settings:
Some settings are the same for all engines.
- Wheel decoder base teeth: 36
- 2nd trigger enable: Off
- Missing Teeth: -1
- Dual dizzy mode: Normal
- Wheel decoder routine: 025 style
Use these wheel decoder settings.
Trig pos A | Trig return pos A | Trig pos B | Trig return pos B | Trig pos C | Trig return pos C | Trig pos D | Trig return pos D | Trig pos E | Trig return pos E | Trig pos F | Trig return pos F |
35 | 4 | 8 | 13 | 17 | 22 | 26 | 31 | 0 | 0 | 0 | 0 |
Under Spark Settings:
- Trigger Angle: 60
- Trigger Angle Ignition: 0
- Cranking Timing: Trigger Return.
- Set Spark Output Inverted: Yes. Setting this wrong will overheat the BIP373.
Enable dwell control and adjust as needed to match the coils you are using. Set the dwell at a very low value to start with (we’ve found Ford EDIS coils have especially short dwell times) and increase it slowly. Back it off if the BIP373s become hot to the touch.
EDIS on a Megasquirt-II V3.0 Board
Using standard MS-II Firmware
Hardware mods required:
If you’re assembling your MegaSquirt-II from a kit (Part# MS230-K):
- Build the ECU up to trigger from the Hall/Optical Input.
- Jumper JS10 to IGN to bring the ignition output directly to pin 36.
If you’re modifying a DIYAutoTune.com MS230-C MegaSquirt-II Assembled ECU:
No mods are required; our units are set up for EDIS out of the box.
External wiring:
- Connect the EDIS PIP signal to pin 24.
- Connect the EDIS SAW signal to pin 36.
MegaTune settings required:
Under “Base Ignition Settings,” make the following settings.
- Trigger Offset: 0 degrees
- Predictor Algorithm: Last Interval
- Ignition Input Capture: Rising Edge
- Cranking Trigger: Calculated
- Coil Charging Scheme: EDIS
- Spark Output: Going High (Inverted)
DIYAutoTune has a detailed write-up on using MS-II with EDIS for further reading.
Other things the ECU controls
The ECU on modular motor Mustangs controlled a lot more than fuel and spark. In particular, on 1999 and later cars, we recommend using a parallel installation to keep the stock ECU in control of the gauges. See this article for more tips about parallel installations. 1998 and earlier ones do not need the stock ECU if you have a manual transmission.
Air Conditioning: Most of these cars simply have the ECU activate a relay to cut off the A/C at full throttle; the A/C otherwise works on its own.
Automatic transmission: All OBD2 modular motor cars have the automatic transmission controlled by the stock ECU. If you have one of these, you will need to retain the stock ECU for transmission control.
Cooling fans: These can be run with a relay control mod.
Gauges: On ’99 and later cars, retaining the stock gauges also calls for retaining the stock ECU. On ’98 and earlier Mustangs, the only ECU controlled gauge is the tachometer. This can be controlled from an EDIS tach output, or you can modify the ECU for tachometer control. See the tach output circuits in the MS1/Extra and MS2/Extra guides.
Idle speed: These use a 2 wire PWM idle air control valve which can be controlled using the standard output circuit on a V3.57 board. V2.2 and V3.0 boards can control this using our MK-PWMIAC mod kit.
IMRC: The Intake Manifold Runner Control valve is a simple on/off device that can be controlled with a relay control mod. Used on early versions of the 4.6 and 5.4 DOHC.
Year Specific Ignition Notes
96-98 4.6l Mustangs
Used two 4-tower coil packs, had a 36-1 wheel but no EDIS module.
Best route on these to use the existing 36-1 wheel and VR sensor and add an EDIS-8 module. These vehicles come with stock Motorcraft 4-tower coilpacks that are the same units as used with earlier EDIS systems – i.e., you only need the EDIS module on these cars to make them work. NOTE: You definitely want to run genuine Motorcraft coilpacks, or MSD units as we have seen problems (with forced induction or nitrous motors) with “Niehoff” or “Wells” (or any other non-OEM or non-MSD) units.
These cars also had the “return” type fuel system standard to most EFI vehicles.
99-2004 ‘Modular’ 4.6l mustangs
99+ 4.6 engines (all models) use Coil-On-Plug ignition. They run a 36-1 crank trigger wheel and VR sensor on the crankshaft inside the front engine cover. This is the same trigger wheel and sensor used for the Ford EDIS system, Ford has just modified the system to integrate the ignition module inside the EEC and run COPs instead of a coil pack or two. So you’ve got two options here. Either way you’re using the existing 36-1 trigger wheel and VR sensor, no need to change anything there. You’ll want to add an EDIS-8 module though since we’re no longer using the EEC and it’s integrated ignition module. The VR sensor will now need to be wired to the EDIS-8 module.
Now’s when it comes to decision time:
1) You can use the standard EDIS-8 coil packs and run plug wires. This is the simplest option for sure and plenty adequate for most installations as it’s basically the same setup Ford used on the 96-98 Mustang. They just had the EDIS module built into the EEC.
OR
2) You can run COPs from the EDIS-8 module:
You CAN run the factory COPs with an EDIS module, although this will draw roughly double the average power from your COP power supply. There are many successful reports of this being “no problem” on COP installs, some 03 Cobra’s have made upwards of 775whp using this scheme. Here’s how to wire an EDIS module to COPs:
Channel 1 Trigger (EDIS Pin 8) -> Coil 6 (-)
Channel 2 Trigger (EDIS Pin 9) -> Coil 5 (-)
Channel 3 Trigger (EDIS Pin 11) -> Coil 4 (-)
Channel 4 Trigger (EDIS Pin 12) -> Coil 2 (-)
Coil 6 (+) -> Coil 1 (-)
Coil 5 (+) -> Coil 3 (-)
Coil 4 (+) -> Coil 7 (-)
Coil 2 (+) -> Coil 8 (-)
+12v -> Coil 1 (+)
+12v -> Coil 3 (+)
+12v -> Coil 7 (+)
+12v -> Coil 8 (+)
Either way you go, coil packs or COPs, once you’ve got this wired up and even without the MegaSquirt hooked up to the ignition system the car should fire right up (of course something has to be firing the injectors, either the EEC or the MegaSquirt). This is because the EDIS-8 Module will run the car at 10 degrees BTDC when there is no computer control. This is it’s limp home mode’ base timing.
Note: these years of Mustangs use “returnless” fuel systems. Dieselgeek prefers to replace the returnless system with a return-style system, as we’ve seen pressure fluctuations on higher powered cars running returnless fuel supplies. However, many cars are running 700+whp with their returnless systems successfully. Retrofitting a return-style fuel supply is not too difficult on a later model mustang most run a new -8 line for the feed, and convert the old returnless-feed line to be the new fuel return to the tank. Run a Walbro or similar in-tank pump (or whatever matches your power demands).
Other non-year specific Mustang notes:
Ground the Ford TPS (ground wire) to the block or chassis. Don’t use the factory temp sensors UNLESS you “re-ground” them – Ford’s sensors are on an isolated “ground” that may behave “flaky” causing intermittent, one-second blips in whichever sensors are on this isolated ground. What I usually do is reground the TPS sensor ground to the chassis, then share the TPS signal (0-5v) wire going to the factory ECU with the MegaSquirt. Then I like to run separate GM temp sensors – the GM CLT sensor threads DIRECTLY into the Ford CLT sensor location, and you can remove the Ford CLT sensor entirely (factory computer will know it’s disconnected but will run the IAC fine). Thread the GM IAT into your intake elbow or anywhere just before the throttle body on the intake.
What to Order
If you’re buying an assembled unit, it will need special mods to work with the ignition, as described above. We can install these for you for an extra charge; please contact us for details.
If you’re building your unit from a kit, here is what we recommend.
MS230-K MegaSquirt II V3.0 Kit
4 MK-BIP373s to add coil drivers
MK-PWMIAC to control the IAC valve
MK-RelayCtrl for relay outputs, as needed
JimStim-K JimStim kit
MSHarness12 12′ wiring harness
TuneCable6 serial cable
USB-2920 if your computer doesn’t have an adapter port
If you are doing a parallel installation, we also recommend giving the MS its own coolant and air temperature sensors:
CLTIATwPiggy Closed element CLT sensor
IATwPiggy Open element IAT sensor
We also recommend a wideband oxygen sensor system for tuning.