Chrysler 2.2/2.5 MegaSquirt instructions rev 6  -  September 16th, 2013

Above is a picture of the distributor that this mode refers to. It’s found on the turbo version of the 2.2L and 2.5L Chrysler engines that were ubiquitous in Dodge’s Front Wheel Drive lineup from 1981 through 1995. This model of distributor was in use from 1986 till 1992 when the turbo engine was discontinued. It can be swapped into all 2.2/2.5 engines, turbo or not, and must be to use this mode. This distributor was used with a rather finicky and notoriously unreliable pickup module referred to as a HEP (hall effect pickup). This module on the turbo cars has 2 pickups in it. The non turbo models only had one pickup. The vanes in the distributor on the non turbo cars lacked the window that you can see in the top left vane above. You must have a turbo distributor WITH the vane to use this mode in the MegaSquirt.

The top diagram is not very relevant to the end user at all. It’s included for historical reference mostly. It is the angles that were needed to write the “wheel decoder” in the MegaSquirt firmware.

The oscilloscope image below that was also used to write the code, and is included to give you an understanding of what kind of signals are coming out of the two HEP’s in the distributor. They both see the same thing, it’s just 160 degrees (320 crank degrees) apart.

Internal MegaSquirt Configuration

      - Dual HEP Input Circuits

This section removed, due to this mode not actually working on the MegaSquirt.

Coil Output Circuits

You now have a choice to make regarding what kind of ignition system you like. These engines came from the factory with a simple single coil and distributor system. But, MegaSquirt can do far more than this. We’ll call the stock system “single coil”.

The next step up from that would be a dual coil system. We’ll call that “wasted spark” because each spark plug fires twice as often as normal. Once when it would normally fire, and also on the exhaust stroke. Hence the term “wasted spark”. This is the system used on cars in the late ’90’s, such as the Dodge Neon. This system is nice because the spark plug wires tend to be very short, and there are no moving parts to wear out quickly. With two coils, you have twice as much time for dwell as you would have with a single coil. In theory, the plugs will have a hotter spark as well, because the spark doesn’t have to jump a gap inside the distributor before jumping the gap at the end of the plug.

And finally, there’s a four coil system. This is commonly referred to as “Coil-On-Plug”, even though the coil isn’t always ON the plug, such as on the Chevy LS1 motor. This system is excellent for engines that rev very very high, you’ll get full dwell time on each coil, even at rediculously high RPM’s. You also are completely above the “which sparkplug wire is best” debates, as you literally have NO spark plug wire in most COP installs. The coil sits directly on the spark plug. These types of coils are often found on later model V6 Dodge Intrepids.

Ignition settings in TunerStudio

I will not go over the settings you’ll need to set on the MegaSquirt using TunerStudio. Since you won’t be using the 2.2/2.5 mode, you’ll have to mount a 36-1 wheel, somehow, as well as a pickup for it. Settings for doing that are covered in the MS-Extra manual.

Something worth noting about the injectors; Standard Turbo Dodge injectors are low impedance. The onboard PWM injector circuitry is a PITA to “tune” and is often so noisy when it’s working, that the CPU can’t maintain sync with the HEP signals. So I HIGHLY recommend that you look into the “Peak & Hold Board” sold by JBPerf. It gets the injector noise off the MS mainboard, makes the low impedance injectors as simple to use as high impedance injectors, and allows you to run fully sequential injection with the MS2-Extra version 3+ codebase should you choose to do so. Win-Win-Win, and it’s very well priced.

External Alternator Voltage Regulator Wiring

This diagram was done for a Dodge Neon, but is essentially the same on a Turbo Dodge, aside from the VR connections being small bolts with nuts rather than spade connectors.

You will need a Voltage Regulator installed if you have completely removed the stock ECM. This voltage regulator was standard issue on carbureted Dodge vehicles from the 70’s through the 80’s. If you ask for a voltage regulator for a ’85 Dodge Ramcharger at any autoparts store, they should have one of these in stock, for $15. The only place I’ve found that sells the pigtail that plugs into it is Napa. But in a pinch, female bullet connectors fit onto the terminals in the regulator. As the diagram says, it’s very important that the regulator is bolted to a good ground source (clean the paint off first, for best results).

The blue wire from the voltage regulator either goes to the ASD relay output, or an ignition switched power source. If your factory wiring is still in place, you don’t need to worry about the power feed to the altnernator, otherwise, one of the 2 small terminals on the alternator needs that same power source that the blue regulator wire got. The green wire from the voltage regulator goes to the other small terminal on the alternator, if your factory wiring is still in place, consult your wiring schematics to figure out which wire at your factory ECM’s former plug to tap this into. ECM, including the power module, MUST be unplugged if you’re using this voltage regulator.

Update: MS3 now supports alternator control. You can use that rather than the external regualtor, if you want fine control over charging. You’ll still feed the alternator with a switched ignition feed on one of the two field wires (typically blue) and the other wire from the altnerator field (typically green) will be controlled by the MegaSquirt.

Stepper IAC Wiring and initial settings

On the V3 mainboard, you will need JS9 jumpered to S12C to power up the stepper control chip on the CPU. Then you will need to jumper IAC1A, IAC1B, IAC2A and IAC2B to spare pins at the DB37. I almost always use the “SPR1-4” pins. Double check that the harness that you bought with your MS includes wires at these pins, not all vendors populate all of the wires on their harnesses. If it doesn’t, contact your vendor about ordering those 4 wires to add to your harness. To keep things simple, I’m going to continue to refer to the IAC wiring as 1A, 1B, 2A, and 2B.

Keep in mind, if JS9 isn’t jumpered to S12C, your stepper output WILL NOT WORK.

If you have used the idle stop screw in the past to set your idle, you will want to back it off. Generally back it off till the throttle plate is completely closed, but not so far that the plate gets “stuck” shut. If you go too far, you’ll know what I mean about “stuck” shut.


MS Pin           Car Wire

IAC1A ---------  Yellow

IAC1B ---------  Brown

IAC2A ---------  Violet

IAC2B ---------  Grey


The information above is the most important part of this guide. The “car wire” colors are stock wire colors found at the stepper idle plug on the throttle body. You can run the MS directly to them, or you can connect to them at the original PCM plug. If you still have the factory PCM in the car for any reason, MAKE SURE the wires are cut, not just tapped into.

These are known good settings, from the MS3 unit in my Caravan. MS2 is arranged a little bit differently, but will be very similar. The settings here will probably never need “tuning” by you. Make sure your settings match these exactly. The greyed out stuff on the right can be ignored.

These numbers set the position the IAC will be in while you crank the engine over. These should be good numbers for you to start with, if you find the car revs like a madman after starting, turn them down at that temperature, if it starts and dies (and you have the fueling tuned properly), turn them up at that temperature.

This screen is the heart of the action. These are the numbers you will be tuning quite a bit. Start with the numbers I have here. To truly understand what they all do, please refer to the closed loop idle tuning instructions. I’ll quickly go down the list and explain them to the best of my ability.

Idle Open Steps: This is the maximum number of steps you ever want the valve to open. Too low, and under some conditions it won’t open far enough. Too high and you could get stuck with a 3,000rpm idle in some conditions, and it also screws with the PID loop if you have a bad number here.

Idle Valve Closed Steps: This is the minimum number of steps the valve will close to. Remember I mentioned making sure the throttle stop is set to close the plate completely? This is your new throttle stop, this is definitely a number you’ll want to play with. It works in conjunction with the Min steps, which we’ll get to shortly. I generally set this to 1 step less than minimum.

Use VSS to activate PID: This is an MS3 only feature, and totally unneccesary once you have the rest of the numbers tuned properly. If you are using this feature instead of tuning your closed loop numbers properly, you’ll find that your idle hangs high until you come to a complete stop, then suddenly plunges and goes into closed loop.

Idle Activation Adder RPM & Idle Activation TPS threshold & PID lockout detection

This is an important part of the control routines that let MS enter closed loop idle mode.  As such, I’m going to jump around a bit to connect this to the other 3 that work with this. The first two, Adder RPM and TPS threshold define the ideal time to enter closed loop idle. If the target RPM is, say, 900rpm, and the adder is 300, then if the engine is at 1200rpm or less, it meets that condition. The MS then checks the second condition, which is the TPS threshold. If the TPS position is less than that percentage, then it meets that condition to enter closed loop idle. If both conditions are met. It will enter closed loop idle. But on the other hand, sometimes, like after a cold start, and then a bit of a drive, MS will return to the last known good stepper position, which will be well above the adder RPM. This is where the PID lockout detection comes into play. BOTH PID lockout must be met as well as at least one of the previous two variables to override and enter closed loop idle. The first override condition is RPMdot threshold. This refers to how fast the RPM is changing. It generally just checks to confirm that the RPM has stabilized and isn’t still swinging downward. Too low of a number and this condition will never be met. Too high a number and it’ll enter closed loop too soon and risks closing the valve too far and stalling the motor. The other one is called “max decel load” which kind of works oposite from the term “max”. This is the lowest kPa the engine will reach when stuck at a high idle. If this number is too high, say 35, and the engine is stuck at 2200rpm and the kpa is 30, it’ll never enter closed loop idle! This is one place where I got hung up sooo many times while learning this thing. This number HAS to be set correctly. Generally, when the idle gets hung high, and MS won’t enter closed loop idle, note the kPa reading, and set this number just a hair lower than that number.

As I said, these 4 numbers work together. If your MS won’t enter closed loop idle, go through the logic of these 4 to figure out which one it’s getting hung up on.

Dashpot Adder: When in closed loop idle, the MS keeps track of the number of steps it’s idling at. When you step on the gas and it leaves closed loop idle, it remembers that position as the “last known good” position. When the RPM swings down rapidly from a high RPM, the engine can stall if there isn’t just a hair more air than idle, to catch the RPM. This is what the dashpot adder is for. So if your last known good position was 15, when you get off the gas the valve will go to 18 and wait for the previously mentioned conditions to be met before engaging closed loop idle. Too high, and it’ll always use the PID lockout routines (which take longer). Too low, and the engine will stall or at least seriously stumble before the MS can enter closed loop.

Close Delay: When you step on the gas, and are driving normally, the stepper valve gets closed. This sets the amount of time after you step on the gas before the valve goes to it’s closed position. I’ve never played with this number. 2 works well.

Min Steps for PID: This is the farthest closed you want the valve to go while in closed loop idle. This MUST be a larger number than the previously mentioned “Idle Valve Closed Steps”. You will definitely be tuning this number. If it’s too large, you won’t be able to reach your target RPM. You want it just a hair lower than the number of steps it takes you to reach your desired idle. This will vary from car to car and motor to motor. Keep an eye on the IAC steps, and if you are aiming for, say, 800rpm, and you hit 900 at your minimum steps, that means you need to decrease your minimum. If you never ever see it get near your minimum on a stable idle, you can probably increase the minimum some.

RPM with valve closed and valve open: These two mean absolutely nothing. The developers keep talking about removing them from the settings, but so far, they’re still in there. Consult the official MS idle documentation that I linked previously, to see what they really mean. For now, leave those numbers unchanged. They mess with the PID loop’s sensitivity.

PID Delay: This is the amount of time it takes your RPM to fall from where it was before you got off the gas, to the idle RPM range (target+adder). People with aluminum flywheels may need a smaller number than people with bone stock motors. If closed loop kicks in before the engine has stabilized, this number needs to be higher. If it sits there too long before kicking in, this number needs to be lower. 3 is a great starting point, probably on the low end if anything.

Crank to run taper: This is the time after the engine has started before the closed loop can be engaged.  Too low, and the initial RPM flare you get with a start will cause the PID loop to go into a wild swinging fight. Too high, and you might find the engine sitting at a high RPM longer than you’d like after starting.

PID Ramp to Target Time: The amount of time you want to elapse between when Closed Loop engages, and you reach the target RPM. Too much, and it’ll take forever to reach idle. Too little, and it may overshoot the target RPM and stall. My default of 2 should serve you well.

PID Control Interval: This specifies how often the loop of the “Closed Loop” runs. This has an effect on it’s sensitivity, as well as it’s ability to actually reach the target RPM (rather than stopping 50-100rpm away from the target). 100-200 is normal. Too low and it’s more likely to not reach the target, too high, and the adjustments can become sluggish.

PID Gains: This is the heart of the closed loop tuning. This is where you will be tuning to get it to actually control the idle. My numbers might work well for you, but if not, you’ll want to start from scratch. To start from scratch, set P and D to zero. Start with I around 50. Rev the engine some and get into closed loop mode. See if it reaches target. If not, increase it. I usually step up by 5 or 10 at a time till I get close. If it does, or increasing it causes oscillation, back it back down. Generally, you want to increase it until you get some oscillation while trying to reach idle, then back it down a couple steps till the oscillation goes away. The I term is the part of the loop that gets you to your target RPM. Once you have that part working, you will move on to tuning P. Starting at 0, move upwards 10 at a time. So start at 10, and turn on a large electrical load in the car to get the RPM to dive (headlights, heater, defogger, all of the above if necessary). P is the part of the loop that should react to catch that. You’ll turn up P about 10 at a time till it starts catching the RPM dip without too much drama. If it causes it to oscillate, you’ve gone too far, back down 5 or 10. D generally isn’t used in this idle control loop. If you can’t reach the target without oscillation, play with the PID control interval.

PID Disable RPMdot: The idea behind this one is that if the oscillation gets bad enough, or if you let the clutch out while in closed loop idle, it’ll kick out of closed loop. The minimum is 100, I find that even 100 is a bit higher than I’d like, so 100 should work for anyone.

Alert! This wheel decoder has some serious issues if you’re running sequential injection. May also have some issues with wasted spark. Ask James Murray to fix the decoder if you want to use this. Otherwise, I recommend a 36-1 trigger wheel instead. It’s especially bad on the MS3 where he attempted to improve the decoder, but gave up after it got far worse.

You’ve been warned.