Dialing in the MegaSquirt Startup Sequence

So, you’ve just installed a MegaSquirt, and are having trouble getting the engine started? With MegaSquirt, or any standalone engine management system for that matter, the startup sequence is something that needs to be tuned for your engine. The MS2/Extra and MS3 code have default maps that are often pretty close to what many engines need after you get a few constants dialed in, but sometimes even they need a little fine tuning to get started. So, here’s some tips for how to get this dialed in that will take care of most of the problems encountered at this phase of a MegaSquirt install.

First checks

There are a couple fundemental sensor readings and settings you’ll want to check first, as having these off will throw off your startup sequence.

  • Has the Required Fuel number been set correctly? This is your base pulse width, and it is used to scale almsot all your fueling calculations. (MS1 and the MS2 B&G code use a completely separate table for cranking pulse width, but you’ll want to calculate that based on Required Fuel. MS2/Extra and MS3 scale this based on Required Fuel automatically.) TunerStudio has a calculator to set this off of the engine size, fuel type, number of injectors (note – some firmware versions will show this as the number of cylinders; use the number of injectors here instead), and injector size.
  • Does your coolant temperature sensor reading look correct? It should be close to your air temperature on your first cold start. If this reading is off, try recalibrating the coolant temperature sensor settings.
  • Do you get a steady RPM reading while cranking? If not, the MegaSquirt will not realize you are trying to start the engine.
  • Is your spark timing correct, or at least in the ballpark? This can be checked with a timing light while cranking. Some timing lights may not work particularly well at cranking speeds, but you’ll want to be sure the cranking is within 2-3 degrees of what you’re seeing in TunerStudio, and you can come back and get it nailed down once the engine is running.
  • Is it set up correctly for your firing order? With a distributorless ignition, the spark outputs fire in an alphabetical sequence, and you’ll need to be sure you’ve wired it to match the engine’s firing order.

Getting it tuned

Ok, now that these have been checked (and fixed, if they’re not working), it’s time to dial in the startup fueling. All MegaSquirts use the following sequence for fuel during startup:

  1. When the key is on, the MegaSquirt will turn the fuel pump on for 2 seconds and fire one priming pulse to clear air for the lines. (You can disable this feature by setting the priming pulse to zero in most firmware versions.)
  2. When the engine starts turning, the MegaSquirt will run off the cranking pulse width table in batch fire mode until the RPM rises above the cranking RPM threshold. This usually fires the fuel once per ignition event in batch fire, although the newer MS2/Extra and MS3 codes allow injecting fuel every other event, and MS3 1.3.0 and later allows sequential fire while cranking. Note that you can shut down the fuel when cranking by opening the throttle past the flood clear threshold setting.
  3. Once the RPM rises above the cranking threshold, the MegaSquirt transitions to the main fuel table. It will initially multiply the pulse width from this table by the warmup enrichment (WUE) and afterstart enrichment (ASE) combined.
  4. The ASE tapers off based on a user defined curve. After the ASE tapers away, the MegaSquirt will run on the main fuel table multiplied by WUE.
  5. When the engine reaches normal operating temperature, as defined by the WUE curve, the engine will run on the main fuel table, and the warmup cycle is over.

If the engine stays cranking for a while without catching, adjust the cranking pulse width setting at the temperature where you’re having this problem. It’s often best to start with what you think is not enough pulse width and add more in, since a flooded engine can take a bit longer to clear. A good rule of thumb to figure out which way to go is to try giving it a little bit of throttle and cranking it. If more throttle makes it easier to start, try less cranking pulse width. If it makes things worse, try more. Note that if you’re seeing zero cranking pulse width, you’ve probably triggered flood clear mode. Check your TPS readings, as having this go too high will shut down the injectors.

If you find you’re not getting anywhere with the throttle test, try pulling a spark plug after a failed start, and see if it’s wet with fuel or dry. If it’s wet, reduce the fueling; if it’s dry, add more fuel to the cranking pulse width.

Next, have a look at what happens after the engine catches. In this case, you’ll want to adjust the afterstart enrichment (ASE) by trial and error to keep the engine from stalling. You can try pulling a spark plug after a failed starting attempt to see if it’s wet with fuel (too much) or dry (too little). Give it whatever combination of ASE and throttle keeps the engine going (not necessarily idling – revving it to 1500 RPM to keep it from stalling can be a good idea on an untuned engine) until it warms up, then dial in the VE table with the engine hot, where ASE and warm up enrichment have shut down. Once you have the final values on these, you can dial in final values for warmup enrichment and ASE.

Specific problems

Starter kickback

Having the engine kick back during starting indicates a timing problem: The spark is too advanced while cranking. First, check to be sure the timing is accurate when the engine is running. If the timing is too advanced, fixing your trigger angle or tooth #1 angle (depending on your firmware or spark mode) may fix the problem. If the running timing is accurate, try reducing the cranking timing setting.

But what if you’re running zero cranking timing, the running timing is accurate, and it still kicks back? In this case, it is likely there is too large an angle between the last tooth on the trigger wheel and the point where it fires the spark. When cranking, the RPM can change abruptly, and the more time between a pulse from the crankshaft position or distributor sensor and the time to fire a spark, the further off the timing can be. In that case, you will need to make some adjustments to the sensors to improve the accuracy of your cranking timing. Here are some possible options. Which one to use will depend on what fits your engine best.

  • Adjust the distributor so the sensor triggers at 0 to 14 degrees BTDC. You’ll need to be sure that you can also adjust the distributor rotor for correct phasing at this point.
  • Use a 36-1 or 60-2 crank trigger wheel.
  • For certain Nissans that are especially prone to this problem, we have a series of optical trigger wheels that work better with MegaSquirt and bolt into the stock distributor.

Lean idle on hot starts

If the engine runs lean and roughly after hot starts for about a minute or two, then settles to normal, check your air temperature sensor readings. Often, this is caused by sensor heat soak, where the sensor absorbs more heat from the intake manifold than the air does. There are several approaches you can take to fixing this.

  • If using a closed element air temperature sensor, switch to an open element type.
  • Sensors located in the intake manifold are especially prone to this – try relocating the sensor to the intake piping.
  • Use the “Ignore MAT correction during ASE” option to turn off the air density correction for the time when after start enricment is active.
  • Adjust the MAT correction curve to add more fuel at high air temperatures.

Too much fuel even with zero cranking pulse width

On some cars with very large injectors, you may find yourself having reduced the cranking pulse width to zero, and the engine is still acting like it has too much fuel. The reason is that the code is adding the injector dead time to the cranking pulse width, and if your dead time setting is high enough, it can be enough pulse width on its own to flood the engine. If this happens, reduce the injector dead time. Note that if you already have a fuel table dialed in, you will need to add more fuel in to compensate.

Other tips and tricks

Bowling & Grippo MS2 code has two options for cranking pulse width: Two point and using a table. Two point specifies the cranking pulse width at the coldest and hottes points, and uses a line between them. The table specifies the pulse with at user selectable points. While two point mode means you only need to adjust two points, using a table makes it easier to dial in each temperature separately. We recommend using the table for most installs.

MS3 1.3.0 and later code has a cranking taper curve. This lets you start with a smaller pulse width and ramp in more pulse width, or start at full pulse width and reduce it. Using the cranking taper to “sweep” the pulse width can make getting the exact cranking pulse width setting less critical and result in faster starts.