ECU Programming Overview
- Brandyn Mowat
ECU Programming Overview
Before Programming
Programming an ECU is the process of taking a ROM file and placing it into permanent storage inside the ECU.
If something goes wrong during that process it can cause serious problems, but the following tips will help ensure that your reprogramming is a success.
Minimise Power Drain from the Battery
It is recommended that all non-essential devices are switched off before attempting to program an ECU. This helps to minimise electrical interference to vehicle systems that may interfere with communication between ProECU and the ECU.
For devices within the car, this includes:
- Headlights
- Interior lights
- Air Conditioning, fan cooling & heating
- Any devices powered from the cigarette lighter socket, including mains inverters or laptop power supplies.
As an example of the seemingly unlikely problems you may encounter when reprogramming, it is not possible to program the Nissan GT-R if its interior heater blower is in operation… and the doors of the same manufacturer's Juke model must all be firmly shut before programming, or failure is almost guaranteed!
For devices that are not part of the car, this includes:
- Mobile (cell) phones
- Nearby industrial equipment, such as welders and high power fans.
Third-party devices
Remove any devices that could interfere with the CAN signal. Third-party devices such as the HKS Velocity Advanced Computer Type CM speed delimiter function by interfering with the CAN signal. Such a device causes programming errors if it’s attached to the CAN bus while programming the ECU.
Devices such as the delimiter are not normally needed when tuning with EcuTek ProECU, as speed delimiter and boost-cut delimiter settings can be modified using ProECU.
Connecting to the ECU
To program a car's ECU the programming interface must be connected to the vehicles OBD2 socket:
Plug the EcuTek OBD2 vehicle interface cable into the vehicles diagnostic socket. This is usually located on the lower section of the dashboard just above the drivers throttle pedal.
Connect the other end of the EcuTek vehicle interface cable to a USB port on the laptop.
Entering Programming mode
Follow these steps to enter programming mode:
- Ensure the OBD2 Vehicle Interface is connected.
- Turn on the vehicles Ignition, DO NOT START the engine, just Ignition Lights ON.
- Choose 'Detect Vehicle...' from the 'Tools' menu
- Choose 'Program Engine ECU' when the below window appears and press OK
The following message will be shown if ProECU can't establish communication with the ECU.
Follow the instructions in the above message to try to establish a connection to the ECU.
If the above steps do not resolve the connection problem, close ProECU, unplug the EcuTek vehicle interface and then plug it back, and then restart the software.
The ProECU Programming Tools window will only be displayed if ProECU successfully established a connection to the ECU:
ProECU has two different methods of programming the ECU depending on the vehicle:
- Query ECU: This is the most common method of programming the ECU, as shown in the above screenshot.
- Enter Utility Mode: Most Subaru ECUs and Mitsubishi Diesel use this method.
Please read the below section for more information on the differences between the two programming methods.
Option 1: Query ECU
Before attempting to reprogram an ECU, first select 'Query ECU' to identify the ECU version fitted to the vehicle.
The ECU software version (ROM file name) is shown in the box below the QUERY ECU button, in this example it is 'EU BRZ Manual High (ZA1J700G)'. Other compatible ROMs are shown below the ECU version box.
Option 2: Enter Utility Mode
Before attempting to reprogram an ECU, first select 'Enter Utility Mode' to identify the ECU version fitted to the vehicle. The ECU software version (ROM file name) is shown in the box below the 'Enter Utility Mode' button, in this example it is 'US WRX 2011MY 021 0000)(ad'. Other compatible ROMs are shown below the ECU version box. The correct Communication Protocol will automatically be selected. NOTE: It is required to click the 'Restart ECU' button if you have Entered Utility Mode, but are NOT going to program the ECU.
Choose ROM File
Now select your ROM file you wish to reprogram the ECU with. You can only select a modified ROM file that is based on the original ECU ROM or is a compatible ECU ROM. In the Example above all compatible ROMs are based on the Manual Gearbox version of the Subaru BRZ.
NOTE: It is only possible to program a RaceROM patched file into the ECU or a completely standard ROM that is provided on EcuTek Update.
It is not possible to program a ROM into the ECU that is not shown in the 'Compatible ROM Files' window.
Program ECU
Click on the 'Program ECU' button after choosing a compatible ROM to program the ECU. After programming the ECU, follow the on screen instruction to cycle the Ignition ON, OFF and back ON. It's important that this is done in sequence with the correct time delays. Different ECUs will have different sequences, so take care to read the instructions carefully.
Programming Failures (ECU Recovery)
Programming failures happen occasionally on all vehicles for a variety of reasons. Sometimes the reason is obvious, like a cable falling out or laptop battery running out of charge. Other times it's hard to tell what caused the failure.
The good news is that in almost all cases, the ECU can be fully recovered. Please refer to the appropriate section at the end of this manual.
Comment Field
After choosing your ROM file it is highly recommended that the file name is entered in the 'Comment' box under 'ECU Registration Details' section. This field should be used to store the name of ROM file used, the brand name, or the version or state of tune. This is stored inside the ECU so if the vehicle returns at a later date you can see exactly what ROM file you used in the ECU from the 'Comment' information. This is limited to 18 characters.
Identify ECU Tool
The comment is accessible by any ProECU user. However, this information is not viewable using an OBD2 reader/scanner or the factory diagnostic tools.
The ECU Identify tool in ProECU will identify the CAL ID of any CAN ECU regardless of whether you have purchased the software or not. It will also work if you have a trade sub-dealer or retail dongle type. This allows you to check CAL IDs if you don't have the software for that particular vehicle and ask for stock ROM files from EcuTek or a another tuner to program in using a retail programming kit.
It will also read the current VIN (Vehicle Identification Number) from the vehicle, a screen shot of this from a customer could be used when remote tuning for VIN Locking if it is used, this way you will be 100% sure you have the CAL ID you need to tune and the VIN you need to lock the tuned file to.
To use the ROM compare tool simply open ProECU, go to tools and select the Identify ECU tool.
Once selected it will query the ECU CAL ID and VIN Number and bring up a list of ROMs that have that CAL ID in your C:\EcuTek folder. Below is the result of identify ECU on an EVO X ECU.
This tool does not work with K-Line ECU's (e.g. subaru 2002, Colt CZT, Evo V)
Additionally some cars do not have a VIN in the ECU (JDM models) so it may show as blank.
Read ROM
It is possible to read the ROM from the ECU using the 'Read ROM' feature ONLY if the ECU has never been reprogrammed using EcuTek software before. This can take some time so be prepared for a wait.
If you have previously programmed the ECU using ProECU then you are also allowed the Read the ROM, but if your Programmer ID (licence key ID) does NOT match the previous Programming Dongle ID then you are NOT allowed to Read the ECU ROM.
The ROM file that is saved when the Read ROM feature is used, can be opened for programming and editing using ProECU.
Read Registration Details
The following stored information will be retrieved and displayed from the ECU by clicking on the 'Read Registration Details' button:
- Comment: The comment field as described above.
- Programmer ID: The ID of the user who programmed the ECU – each license key has a unique ID, so the authenticity of an ECU can be confirmed.
- Program Count: The number of times the ECU has been reprogrammed. The rated life of the memory chip is around a 100 reprograms. If you are approaching this value, it is recommended that you program this ECU with a suitable map, and then try to exchange the ECU with another fresh ECU. Manufactures generally quote a low reflash limit, experience has shown no deterioration in the memory chips performance even after 300+ reprograms!
- ECU Version: e.g. JF01C, ZA1J700G, AN330_0182. This will tell you on which base ROM file any tuning must be based on.
This function does not reprogram the ECU; it only retrieves information from the ECU.
Clear DTCs
Click on the 'Clear DTCs' button to clear all the stored trouble codes in the vehicle's various ECUs. This should be done after programming to ensure all DTCs that are caused by the programming sequence are cleared.
Progress Window Data Box and Log files
On the right of the Programming Tool window there is a progress display. This area displays information throughout the reprogramming process. It records and stores information like the ROM file name you have used, your Dongle ID the version of software you are using and the UNIQUE ID code. All this data is recorded in a log file that is continuously updated every time you are in Utilities Mode.
The log file is stored alongside the ProECU executable in the C:\EcuTek folder:
An EcuTek Software Log file is created for each software product.
This file can be opened with Notepad if required.
ProECU-SubaruBRZ.log contains all the Subaru BRZ/Toyota FT-86 ECU programming data.
ProECU-NissanECU.log contains all the Nissan GTR ECU programming data.
Sometimes the log file or file extensions may be hidden by windows, if so then in the C:\EcuTek folder you need to select 'Organize', 'Folder and search options', go to the 'View' tab and then choose 'Show hidden files and folders', then uncheck the 'hide extensions for known file types'. We also recommend you change the View to 'Detailed' as shown above.
You can also right-click on the window bar saying Name, Size, Type and choose the 'More...' options at the bottom then add the very useful column called 'Product Version', also shown above.
EcuTek Information Dump
It is possible that you will come across an ECU version that EcuTek have not seen. It will not be possible for you to program this ECU until EcuTek have been supplied with certain information about the ECU. The 'Dump Details for EcuTek' button saves certain information from this ECU. The information is stored in a file that will be saved into the 'C:\EcuTek\RomDumps' folder. The name of the file will be displayed as it is saved.
This information should be sent to EcuTek using the Website Form, together with a clear photograph of the ECU label and details of the type of car (please include Model Year and Manual or Auto gearbox) from which the ECU originates. EcuTek will then supply an updated version of ProECU that will be capable of programming the ECU.
Please note that it is not something that can be done while-you-wait. Turnaround time is likely to be 3 to 7 days for support of a new ECU. It is therefore important for the tuner to check that the ECU version is supported well before the car is scheduled to be reprogrammed – this will avoid a panic situation for all parties involved.
Please note that it is not possible to open ROM Dumps in ProECU until the file has been emailed to EcuTek.
Programming ECU Overview
Follow the below steps to reprogram an ECU:
- Connect the vehicle interface cable to the OBD2 connector and turn ON the Ignition.
- Open ProECU and choose 'Tools' and 'Detect Vehicle'.
- Choose 'Program Engine ECU'
- Choose 'Query ECU' to identify the ECU version fitted to the vehicle.
- Then select 'Choose ROM File' and select your modified ROM file to program the ECU.
- Enter the ROM file name or your unique name for the ROM file in the 'Comments' box, so in the future you know exactly what ROM is in the ECU.
- Ensure all interior lights, Heater blower, Stereo are turned OFF and Mobile Cellular Phones are away from the vehicle.
- Choose 'Program ECU'.
- After programming the ECU, follow the on screen instruction to cycle the Ignition
- Start the engine.
How to Recover an ECU
In the unlikely event of programming failure you will need to know the first steps to attempt to recover the ECU. Some ECU's have built in recovery methods, some ECU's will require remote assistance for recovery and other may need to be recovered using boot pins (EcuTek offers this service for a fee).
For more information check out our article How to Recover an ECU