Testing Automotive ECUs

This post is about bench testing automotive computers used for engine management. Engine management is not just EFI, but includes ignition system, idle control and many other features.

What I am showing is based on a system I first developed in 2003 to replace a very primitive D-Jetronic used by VW starting in 1969. I designed the system to be flexible, and have used it on many other cars. I am not selling units, so this is not about advertising my system. It is about how to bench test most any ECU, to check if they work properly. It also helps to make measurements to verify settings are doing what you want.

An ECU has many inputs and outputs. The inputs go to various sensors and switch contacts. The outputs control injectors, ignition coils, relays, tachometer, idle speed, indicator LEDs, and more.

An ECU typically has a sensor supply, often at 5V it supplies the regulated voltage for sensors including, TPS, temperature sensors, MAP. The sensors are powered by the 5V, and the output often varies between 0-5V depending on measured values. There are other types of sensors that use digital signals, but I am skipping that.

The ECU also has digital inputs for engine timing reference sensors. Engines vary much in how these signals are implemented. Some use distributor, cam, crank or a combination of those. When I apply my ECU to different engines, it is necessary to write special code to interpret what the engine delivers.

By knowing the details of the timing reference signals, and measuring the ignition output signals it is possible to measure ignition dwell, spark timing, injector delivery phase and duration. My ECU has the ability to present this information real-time and also logs the activity for future reference. It is also possible to log the information using a logic analyzer. The logic analyzer records in time the on/off of all digital signals. The recorded signals can be imported in to a spread sheet, then math is used to convert times to degrees, RPM and other information as desired.

Instead of trying to bench test real ignition coil and injector signal, it is much safer to use resistive loads and a 5V supply. I use LED bar modules with 1K resistors, and header pins for connecting to logic analyzer. The LEDs light when ECU pulls outputs to ground, the active state.

To make a ECU run it needs signals to replicate engine timing sensors. A distributor shaft chucked in a variable speed drill works, but a micro-controller generating the trigger signal works too. I typically run a test loop that starts with 200 RPM for cranking, followed by idle speed, then an increase in RPM to beyond rev limit, then repeat. The board with all the wires is the simulator, the black box is the ECU.

Potentiometers as voltage dividers, are used to provide 0-5V sensor signals. In my unit the MAP sensor is internal so I use a mity-vac to vary the MAP signal. The potentiometers are slide pots, I use the small red push button for start switch simulation. The blue/black wire pair provides the timing reference signals, I unplug to simulate stalled engine.

I varied pot settings, and MAP value while running the test loop, the captured picture is smaller than expected so it is difficult to see the ECU response.