ECM
4-cylinder GM - AC Delco MPFI



The ECM

Anyone who knows will tell you that this is one of my favorite subjects, but not by choice.

Beginning in MY89, Lotus started using the General Motors electronic Multi-port Fuel Injection system. This system involves independently controlled fuel injectors under the command of an Electronic Control Module (ECM). The ECM calculates and controls the amount of fuel required by the engine under the operating conditions at any particular time. The information is fed to the ECM by a series of sensors measuring air and coolant temperature, inlet manifold pressure, throttle position, engine and vehicle speed, and exhaust gas oxygen content. On the basis of these and other signals, the ECM also controls the ignition timing, turbocharger boost pressure, engine idle speed, radiator cooling fans, and the a/c compressor clutch.

The system also uses a distributor-less Direct Ignition (DI) module along with two separate ignition coils, a flywheel position sensor, and an Electronic Spark Timing (EST) control circuitry incorporated into the ECM.

In addition to these functions, the ECM monitors the signals received from various sensors and compares them with pre-programmed tolerance bands to enable it to recognize faults in the system and indicate them to the driver via a "Check Engine" light on the dash. It also stores in its memory a trouble code for the particular type of fault detected in memory to assist a technician in diagnosing the problem.

A facility is also provided for the data monitored by the ECM to be tapped via a hand-held electronic scanner known as a Tech-1 which contains an LCD panel and a keypad. This tool aids in rapid diagnosis by displaying all sensor readings and trouble codes. The tool is connected to either one of two Assembly Line Diagnostic (ALDL) ports on the vehicle. One of these is located underneath the glovebox. The other is in the Engine Bay Relay Box located immediately aft of the engine bay. The connector has ten pins arranged in two rows of five.

Note:  For a thorough cross-reference list of GM components used in the Esprits multi-port fuel injection check out the great research  that Tony Grasso has done by clicking here.

Back to top of document



Reading ECM codes

It is possible to read the trouble codes stored in the ECM using nothing more than a small piece of wire. Strip it at both ends. Put it into pins A and B of either ALDL connector (yes, it's labeled, but hard to read), put your ignition key in the On position (with the engine off) and count the flashes of the Check Engine light to determine the codes. The codes are displayed by the lamp quickly flashing the first digit of the (two-digit) number with a brief pause before the second digit is similarly flashed. The first code you will read is a 12 (1flash, pause, 2 flashes). This simply indicates that the ECM is in diagnostic mode. Each two-digit code flashes 3 times before moving on to the next one. Once all codes have been displayed, the cycle repeats with code 12 again. If no trouble codes have been stored, code 12 will flash repeatedly.

Back to top of document



Resetting the ECM

The ECM implements fuzzy logic to "learn" about certain driving parameters as you drive. Under some conditions, it may become necessary to reset the ECM to make it forget those values it has stored. The method discussed here is one of the three possible ways to clear a trouble code from the ECM memory. The other two are via the Tech-1 scanner, or automatically after 50 starts, if the problem has been corrected.

The easiest way I know to reset the ECM is to remove the ECM Power fuse for approximately 30 seconds. If you open the Engine Bay Relay Box you will see it. It is the second fuse from the RIGHT (10 Amp). To the right of it is the Fuel Pump fuse and to the right of that is the Fuel Pump Inertia Switch (with the pushbutton on the top). CAUTION: To avoid damage to the ECM, the ignition should be in the OFF position when you remove the ECM Power fuse. Just remove the key from the ignition to be safe.

I'm in the relay box so often resetting the ECM, that I only have the 3 top screws in place. I'm even contemplating putting in a switch to allow me to disconnect the fuse without having to get into the relay box! (Would also make a great theft deterrent)

Back to top of document



Interfacing a PC to the ECM

Many people have been interested in interfacing the ECM in an Esprit with a PC so they can monitor the performance of the vehicle or just tinker around. In addition, this could come in quite handy while diagnosing engine problems. Many of the steps outlined in the Lotus manuals call for the use of a Tech-1 scan tool which, along with the proper software, costs about $2,000. 

Well, if you own an Esprit with the GM multi-port fuel injection (any SE, S4, S4s, or GT3) you're now in luck. Some of your fellow owners have come to the rescue and put together the hardware and software needed to hook up your handy laptop to the ALDL port on your car. 

First you'll need the proper interface cable. This will have a DB9 connector or one end, and an ALDL connector in the other and the proper level conversion circuitry in between. There are several designs for accomplishing the task. By far the cleanest and simplest design is that of Sanjaya Vatuk. Contact him to see if you can purchase one from him or build your own. 

The software needed is the amazing FreeScan software written by Andy Whittaker. As the name implies, this software is currently FREE and Andy has done an awesome job of putting it together and maintaining it. Go visit his web site to learn more about it.

Back to top of document



Idle Speed and the ECM

If your car's idle is erratic, too high, too low, etc., you may want to try giving your car the cold boot (reset) to get things working again. You accomplish this by removing the ECM fuse in the rear relay box for 30 seconds and then replacing it. (Note: look for the section titled "Resetting the ECM")

Detail:

The MPFI manual has all sorts of tests in section 6 for diagnosing intermittent faults without ECM trouble codes. All of these tests suggest the same procedure for testing problems with an individual cylinder. The procedure involves: 

  1. starting the engine 
  2. disconnecting the IAC (Idle Air Control) valve 
  3. Removing one spark plug at a time and grounding each wire against the engine to check for a drop in engine speed. 
For those of you not familiar with an IAC valve, it is a little stepper-motor-driven device mounted on the inlet manifold. It controls an airway passage to the engine that bypasses the throttle plates. By adjusting the size of the airway's opening, the IAC can control idle speed, while preventing stalls due to changes in engine loads.

The ECM controls the IAC by moving it in "counts" or steps. The count values vary between 0 at fully closed to 170 at fully open. The ECM resets the IAC valve by moving it to the zero count position and then drawing it back to the desired position. This reset occurs only once during each ignition cycle once the vehicle speed has exceeded 20 mph. Another IAC reset will not occur until the ignition has been shut off, restarted, and again driven above this speed.

So what does this have to do with anything? Well according to the same manual: 

"... When servicing the IAC valve, it should ONLY be disconnected or connected after the ignition has been off for at least 10 seconds. This allows time for the ECM to move the IAC valve to the 170 position where it is 'parked' while the ignition is off. If this procedure is not followed, the ECM will lose track of the IAC valve position resulting in starting or idle control problems." 
So the manual kind of contradicts itself, or at the very least, fails to mention that performing any of the tests in section 6 can result in problems until you "cold-boot" your ECM.

I reset my ECM and restarted the car; right away I noticed that something was different. The car was not stumbling after it started and the engine didn't stall. I let the car sit for a few hours to cool down and then re-started it. For the first time in weeks, it went through its normal warm-up cycle where the RPMs are higher for about 2 minutes until the engine is warm enough. This morning I tested it again, once the engine had cooled overnight and behold, another normal warm-up cycle!

So it seems the problem has been fixed. If any of you have been having the same cold-start problem, you might try resetting the ECM. It doesn't take any hard work or special tools to do, and it could save you lots of money at the repair shop!

Bob's mechanical solution to bump the throttle will probably work. The only thing is that using this method the throttle position sensor (TPS) never sends the ECM a 0% throttle opening value. This is probably OK; the ECM will always adjust fuel delivery of the injectors based on the current throttle position. Be aware that you will have higher fuel consumption, of course.

As far as a way to mechanically bump the throttle, there is a cable adjuster and 2 locking nuts located directly underneath the short flexible hose that interconnects your chargecooler to your intake plenum. You can probably get to these without moving the chargecooler using a pair of 10mm open-end wrenches. If you have enough room on the thread, you may be able to adjust the cable in such a way that the throttle is pulled slightly even when the accelerator pedal is not pressed. Be VERY careful when tightening the locking nut, however. Due to the high temperatures in this area, the metal used for the thread gets very brittle. I was tightening mine with barely any force and the thread broke. Now I have a 1/4" piece of thread riding back and forth on the throttle cable that I need to remove.

Back to top of document



Engine Stalling

Some owners of multi-port fuel injected Esprits have suffered problems with engine stalls when downshifting or lifting off the throttle. The problem appears to be caused by the software in the ECM.

The ECM uses the Throttle Position Sensor (TPS) to determine how long to keep the injectors open for. When you take your foot off the throttle (as in a "coasting-down" condition), the ECM shuts off fuel delivery to the engine as a method of improving fuel economy. At this point, it is the wheels (via the transmission, clutch and flywheel) combined with the forward momentum of the car that are actually making the engine spin. During these conditions, the ECM shuts down the ignition because there is no fuel to burn.

When you press in the clutch pedal, you disconnect the link between the wheels and the engine. The engine RPMs start to drop because the throttle is still closed. Usually, the ECM should detect this condition and start fuel delivery and ignition again to bring the engine speed back to idle. If this happens as it's supposed to, the engine will kick in again as the RPMs are making their way back down to the 1000RPM idle speed. If for some reason, the ECM takes too long to kick the ignition and fuel delivery back on, the
RPMs will drop below the idle speed and will surge back up once it kicks in. If it takes a little longer, the engine stalls because the RPMs drop to zero and now you need to use the starter or the drive wheels to get the engine spinning again.

The ECM uses vehicle speed (via the Vehicle Speed Sensor - VSS), engine speed (via the Flywheel Sensor), and throttle position (via the TPS ) to determine when to turn on or off the ignition and fuel delivery. The question is why is it taking so long to start them back up again. I don't have an answer for that one yet, but I do have a solution. Lotus has issued a software upgrade for the S4s ECM especially to take of this problem. Owners of the Esprit SE can also take advantage of this upgrade and "slightly" improve the performance of their cars at the same time. The repair involves removing the ECM's MemCal cartridge and having it reprogrammed. My friend Sanjaya Vatuk (a definite Esprit guru in his own right) has detailed instructions on how to perform this modification. Click here to see his step-by-step guide.

Back to top of document