ECU Emulator is a program written in Delphi that simulates the behaviour of a car's ECU when diagnostic software (hardware?) is connected to it.

Currently the Emulator supports emulation of Jeff's interface, ELM323 based interface and AutoEnginuity ScanTool interface. The behaviour of the interface can be emulated through a Nullmodem cable (a variant of which is Virtual Serial Ports Driver - VSPD) or through a Jeff's interface.

Quick start guide

Start the program and show the configuration pane.

Choose the COM port to which the Emulator will attach it self.

Here are the types of emulation and the way the software is configured:

1. Emulate ELM323 through a nullmodem cable - set the Connection field to "Nullmodem" and the Interface field to "ELM323". In this mode the Emulator will act as a ELM323 emulator i.e. it will respond to commands comming from the other end such as ATZ, ATL(0-1), ATE(0-1), 0100, 0101 etc... Suitable for connecting ELM enabled software to the other end of the nullmodem cable.

2. Emulate Jeff through a nullmodem cable - set the Connection field to "Nullmodem" and the Interface field to "Jeff". In this mode the emulator will act as a car's ECU - it will wait for K-L line 5 bps init and if the address is recognized it will respond with the appropriate keyword bytes (depending on the Protocol field setting). This mode is suitable for connecting software such as VAG-COM on the other end of the nullmodem cable.

3. Emulate Jeff through a Jeff interface - set the Connection field to "Jeff" and the Interface field to "Jeff". This is suitable for testing a Jeff board. The two Jeff boards are interconnected through a simple board (in my case) with two DB9 female connectors straightly connected (pins 1, 9, 4 and 8) and a power jack (at pins 1 and 9) for connecting +12V power supply from an adapter for example. Again VAG-COM can be used on one of the COM ports (Jeff board 1 is for example at COM1 and Jeff board 2 at COM2).

4. Emulate ELM323 through a Jeff interface - same as above, just the Jeff board 1 is replaced with an ELM323 board. ELM enabled software (HyperTerminal for example) can be used to connect to the COM port with the ELM board.

5. Emulate AutoEnginuity interface through a nullmodem cable - sett the Connection field to "Nullmodem" and the Interface field to "AutoEnginuity". In this mode the emulator can talk to AutoEniginuity's ScanTool.

Finally press the "Start emulator" button (or Menu Action -> Start emulator).

To stop the emulation press the "Stop emulator" button (does not work always but it will be fixes :) ).

Notes

Configuration of the program is stored in an .ini file (ECUEMU.ini usually places it self in %WINDOWSROOT% - C:\WINDOWS for example).

L line is actually not used by the soft - it detects pulses on the K line as L and K are pulsed synchroneousely. Slight mods in the Emulator have to be caried in order to make use of the L line as well as changes to the Jeff's interface in case Connection is "Jeff" - one more opto is needed whose transistor drives the serial port CTS signal. Will put a schematic soon of the MOD.

Download:

Current version is alpha. Comments and opinions are welcome through the Yahoo opendiag group.

ECU Emulator executable here

Delphi 5/6 (or others?) Source code here